liwuhen opened a new pull request, #953: URL: https://github.com/apache/paimon-rust/pull/953
### Purpose PR #876 added end-to-end compatibility tests for Java-generated Bitmap and Bloom Filter tables. This change extends the same fixture framework to Range Bitmap. The goal is to verify that Rust can load and query tables written and committed through Apache Paimon Java's normal table-writing path, with the Range Bitmap index stored either in manifest metadata or in a `.index` sidecar. This is test coverage only; it does not address a known interoperability bug. ### Brief change log - Add two Java-generated, committed table fixtures: `range_bitmap_embedded` and `range_bitmap_sidecar`. - Extend the existing Java generator without changing the four Bitmap and Bloom Filter fixtures. - Use deterministic rows containing duplicate values and `NULL`. The Range Bitmap tables contain IDs `1` and `9`, leaving a missing range within the data file's `[1, 9]` statistics. - Extend the Rust integration test to verify matching and non-matching range queries, index-enabled and index-disabled results, residual filtering, and both index storage locations. - Update the fixture documentation with the inputs, expected results, and regeneration instructions. The fixtures were generated from Apache Paimon Java commit `1d368b4a5932f8221fd28e2555001abdb8fb12ee` (`2.2-SNAPSHOT`) through its catalog, append writer, commit, snapshot, and manifest paths. ### Tests - `reads_java_written_file_indexes_and_prunes_data_files` passes for all six tables. - For each Range Bitmap table, `id BETWEEN 1 AND 3` returns both rows with ID `1`, while `id BETWEEN 3 AND 7` returns no rows, whether FileIndex reads are enabled or disabled. - The missing-range query remains in the scan plan and is not pruned by manifest data statistics. With FileIndex reads enabled, it does not open the Parquet data file; with reads disabled, it does. - The Java fixture generator completed successfully. Commands run locally: ```text cargo test --offline --locked -p paimon --test file_index_java_fixture_test cargo test --offline --locked -p paimon --no-default-features --test file_index_java_fixture_test --no-run cargo clippy --offline --locked -p paimon --test file_index_java_fixture_test -- -D warnings cargo fmt --all -- --check bash -n crates/paimon/testdata/file_index/regenerate.sh git diff --check ``` ### API and Format No public API, production logic, or persisted format changes. This change adds only Java-generated fixtures, generator coverage, integration assertions, and documentation. It does not add a new index type or writing mode. ### Documentation Update the existing FileIndex fixture README to describe the Range Bitmap tables, their Java provenance and configuration, input rows, expected range-query results, and the predicate used to demonstrate FileIndex pruning. -- 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]
