JingsongLi opened a new pull request, #1133:
URL: https://github.com/apache/paimon-rust/pull/1133

   ### Purpose
   
   Support the existing PyPaimon `with_global_index_result` read path in Rust 
core. Primary-key vector/full-text results carry physical IndexedSplits, not 
global row IDs. Ordinary scans currently cannot consume those captured 
selections, forcing the Python scanner path.
   
   Match Java `PrimaryKeyBatchScan` and `DataEvolutionBatchScan`: preserve PK 
result snapshots/splits before ordinary planning, and apply DE row-ID 
selections and scores to the final planned ranges. Query-authorized scans 
ignore external raw-index selections.
   
   ### Brief change log
   
   - Add core `GlobalIndexResult` for global row ranges, scored row IDs, and 
snapshot-scoped PK splits.
   - Add `TableScan::with_global_index_result`, 
`IncrementalScan::with_global_index_result`, and 
`SearchResult::to_global_index_result`.
   - Keep DE incremental snapshot windows and final score alignment in core; 
reject incompatible coordinate spaces and selection modes.
   - Retain scored Java IndexedSplit frames, validate score lengths and 
truncated payloads, and preserve absent `totalBuckets` rather than 
materializing it during serialization.
   - Add thin Python transports and accept native `SearchResult` directly in 
the scan binding; update stubs.
   
   ### Tests
   
   - 8 global-index-result core tests, including snapshot reuse without 
snapshot files, empty results, score ordering, row-position distribution, 
incremental windows, authorization rejection, and invalid inputs.
   - 89 source/serialization tests, 130 scan tests, 5 shared-search-result 
tests.
   - 53 existing incremental batch/changelog/timestamp integration tests.
   - 179 Python binding read/resolved-table tests.
   - Cross-repository PyPaimon regressions against the locally built binding, 
including Java PK full-text/vector archives, source DV preservation, direct 
native result handoff, and authorized scans.
   - `cargo +1.98.0 clippy --locked --all-targets --workspace --features 
fulltext,vortex -- -D warnings`
   - `cargo fmt --all --check`
   
   ### API and Format
   
   Adds the core selection APIs and Python `GlobalIndexResult` transport. 
Existing plain-split callers keep their behavior. No table storage-format 
changes; the split wire reader now accepts the existing Java float-score 
representation.
   
   ### Documentation
   
   Updated API documentation and Python type stubs.
   


-- 
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