JunRuiLee opened a new pull request, #110: URL: https://github.com/apache/paimon-vector-index/pull/110
## Summary Expose the core range-search functionality from #108 through the existing C ABI/generated header, C++, JNI/Java, and Python bindings. - Support IVF-Flat, IVF-SQ, IVF-PQ, and IVF-RQ with L2, cosine, and inner product, for single/batch queries with or without a serialized Roaring allow-list. - Delegate raw half-open distance bands and public endpoint conversion to core, including structural unboundedness, strict/inclusive boundaries, and inner-product direction reversal. - Return variable-length CSR results with per-query statistics, call-level list reads, and reader capability queries. - Add explicit native-result ownership, exception-safe cleanup, checked lengths/conversions, and validation/error propagation. - Preserve existing top-K APIs and behavior. Python still imports and executes top-K against older/partial native libraries; unavailable range APIs report a clear upgrade error. ## Tests and documentation - Add a core-only oracle generator and 168 shared cases consumed independently by C, C++, Java, and Python. Cases cover the full family/metric/API matrix, bounded/unbounded/empty bands, and absent/non-empty/empty filters. - Compare per-query label/distance-bit multisets, CSR offsets, and all counters without imposing an ordering guarantee absent from core. - Add boundary, overflow, malformed-input, ownership, callback/reentry, old-library compatibility, and unaligned-NumPy-input regression tests. - Document each language API and ownership contract; wire oracle generation and consumption into all four binding CI jobs. ## Validation Validated locally on macOS: - `cargo fmt --all -- --check` - `cargo clippy --all-targets --workspace -- -D warnings` - `cargo test --workspace`: **676 passed, 2 ignored** - C11/C++17 strict builds (`-Wall -Wextra -Werror`), existing and new binding tests, and ASan/UBSan runs: passed; **168 oracle cases per binding** - Java Maven API tests, native validation/panic-boundary/handle-safety tests, and the range oracle under `-Xcheck:jni`: passed; **168 oracle cases** - Python tests with `PVI_RANGE_FIXTURES` enabled: **497 passed**, including **168 oracle cases** - ASF license-header checks and `git diff --check`: passed Independent pre-PR reviews were completed; the older-native-library and unaligned-input findings were fixed and re-reviewed. C++/JNI allocation-failure paths were reviewed but are not exhaustively fault-injected. Cross-platform CI remains to run on this PR. ## Scope and compatibility Based on main at `0e25175` (#108). No core source/tests, storage-format, algorithm, or performance-tuning changes are included. DiskANN remains unsupported for range search. No data migration is required; rollback is a revert of this PR. -- 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]
