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]

Reply via email to