@@ -133,5 +133,30 @@ class PAIMON_EXPORT PredicateBuilder {
133133 // /
134134 // / @param predicate A shared pointer to the predicate to be negated, which must not be nullptr.
135135 static Result<std::shared_ptr<Predicate>> Not (const std::shared_ptr<Predicate>& predicate);
136+
137+ // / Create a starts-with predicate (field like 'abc%' or field like 'abc_').
138+ // /
139+ // / Tests whether the field value starts with the provided literal value.
140+ static std::shared_ptr<Predicate> StartsWith (int32_t field_index, const std::string& field_name,
141+ const FieldType& field_type,
142+ const Literal& literal);
143+
144+ // / Create an ends-with predicate (field like '%abc' or field like '_abc').
145+ // /
146+ // / Tests whether the field value ends with the provided literal value.
147+ static std::shared_ptr<Predicate> EndsWith (int32_t field_index, const std::string& field_name,
148+ const FieldType& field_type, const Literal& literal);
149+
150+ // / Create a contains predicate (field like '%abc%').
151+ // /
152+ // / Tests whether the field value contains the provided literal value.
153+ static std::shared_ptr<Predicate> Contains (int32_t field_index, const std::string& field_name,
154+ const FieldType& field_type, const Literal& literal);
155+
156+ // / Create a like predicate (field like literal).
157+ // /
158+ // / Tests whether the field value like the provided literal value.
159+ static std::shared_ptr<Predicate> Like (int32_t field_index, const std::string& field_name,
160+ const FieldType& field_type, const Literal& literal);
136161};
137162} // namespace paimon
0 commit comments