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]
