jianguotian opened a new pull request, #849: URL: https://github.com/apache/paimon-rust/pull/849
## Purpose Paimon Java can write `range-bitmap` file indexes, but the Rust reader currently ignores them. As a result, selective predicates cannot turn those indexes into row selections, including for Mosaic row-group scheduling. ## Changes - Decode the Java V1 range-bitmap header, chunk dictionaries, and BSI bitmaps. - Evaluate equality, set, range, between, and null predicates into `FileIndexResult::Selection`. - Support Java-compatible primitive, decimal, date/time, timestamp, and string encodings. - Preserve Rust predicate semantics for signed zero and fail open for NaN cases that cannot be proven safely. - Correctly select every row for all-null chunks and validate offsets, bitmap cardinality, and payload bounds. - Fail open on malformed or newer payloads rather than incorrectly pruning data. This PR is query-side only: it reads Java-written range-bitmap indexes. A Rust writer can be added independently. ## Verification - `cargo test -p paimon --lib`: 2,821 passed, 2 ignored - `cargo clippy -p paimon --lib --tests -- -D warnings` - Java-generated golden payloads for integer, string, and float columns - Regression coverage for all-null chunks, truncation, signed zero, NaN, and each supported predicate ## Related Java work - apache/paimon#9140 - apache/paimon#9141 - apache/paimon#9742 -- 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]
