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]

Reply via email to