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

   ### Purpose
   
   Use Rust core for PyPaimon's existing supplied primary-key index-result 
scans. PK vector/full-text results already carry a snapshot and physical file 
positions; these must be handed to the normal scan without resolving latest 
again or changing their source splits.
   
   Depends on 
[apache/paimon-rust#1133](https://github.com/apache/paimon-rust/pull/1133). 
This PR is draft until that Rust API is available on `main`. Native CI 
continues building Rust `main`.
   
   - Bridge existing PK split results and DE row-ID results to core 
`GlobalIndexResult`.
   - Hand fresh Native PK search results directly to Native scan, avoiding a 
Python split-wire round trip. Exposing mutable splits or copying/serializing a 
result invalidates the original native handle, so subsequent scans observe 
Python metadata edits.
   - Keep snapshot 0 for empty PK results and retain 
snapshot/file/DV/range/score metadata.
   - Let core align DE scores after pruning/distribution and preserve 
incremental windows.
   - Match Java under query authorization: ignore supplied raw-index selections 
in both Python and Native paths.
   - Assert Java float32 split-score values for Native plans.
   
   ### Tests
   
   Locally built the binding from the dependent Rust PR.
   
   - 128 passed, including the new result-scan tests, planner unit tests, and 
expanded planning tests; 46 subtests passed.
   - 133 existing PK full-text/vector search tests passed against 
Java-generated archives.
   - Related full-text, hybrid, PK scalar-index, authorization, distribution, 
and incremental suites were also exercised. The combined run found two 
double-vs-float32 score assertions; both now assert Java float32 wire values 
and passed the focused rerun.
   - 179 Rust Python-binding read/resolved-table tests passed.
   - Flake8, Python 3.6 syntax parsing, license headers, and diff whitespace 
checks passed.
   
   Regression cases cover Native/Python readers, historical and empty results, 
source metadata preservation, filter/limit/shard ordering, direct Core result 
handoff, pickle and shallow-copy aliasing, edited Python selections, DE score 
ordering and incremental windows, and ignoring raw index results under REST 
authorization.
   


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