JunRuiLee opened a new pull request, #523: URL: https://github.com/apache/paimon-rust/pull/523
### Purpose The C binding (`bindings/c`) exposed only comparison, null, and IN/NOT IN predicates. String-pattern and range operators — already implemented in the core `PredicateBuilder` — were unreachable from C, so C consumers (e.g. engine integrations) could not push those filters down. ### Brief change log - Add C FFI functions for `starts_with` / `ends_with` / `contains` / `like` / `between` / `not_between`, each with a default (case-sensitive) and a `_with_case_sensitive` variant. - Reuse the existing `build_leaf_predicate_datum` / `build_leaf_predicate_datums` helpers; `like` maps its escape byte via a small `escape_char_from_c` helper (`0` → core default `\`) and passes it through a closure, so no error-handling path is duplicated. Non-`\` escapes are rejected by core. - Pin the six new base symbols with compile-time signature assertions, matching the existing convention that guards C-linked predicate symbols against accidental ABI changes. - Binding-only: no changes to the core crate. ### Tests - `cargo test -p paimon-c` — added unit tests covering the happy path, a rejected non-`\` escape, a non-string datum error, the `low > high` short-circuit, and a smoke test touching every `_with_case_sensitive` variant. ### API and Format - Adds new C API symbols; no change to existing symbols or to any storage format. ### Documentation - Doc comments on each new function; no separate docs needed. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
