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

   ### Purpose
   
   Enable Native execution for the primary-key full-text searches already 
supported by PyPaimon, using Java's physical-position result semantics.
   
   Depends on https://github.com/apache/paimon-rust/pull/1132 reaching Rust 
main. Native CI continues to build main; keep this PR draft until the 
dependency merges.
   
   ### Changes
   
   - Send standard REST PK full-text `execute_local()` calls to Rust core, 
retaining the existing FAST-only contract and propagating execution errors 
without a Python retry.
   - Reuse one metadata converter for Native PK vector and full-text results. 
Core owns snapshot selection, query execution, Top-K, score alignment and 
selected file ranges; Python converts the captured result.
   - Use Java-compatible BinaryRow serialization for Python search-position 
partitions. The previous `repr(tuple(...))` form disagreed with both Java and 
Rust and changed the cross-partition tie breaker. No compatibility path is 
retained.
   
   ### Verification
   
   - 422 Native cases passed across full-text, PK full-text, vector and hybrid 
regression suites (421 in the combined run plus the additional delayed-read 
test).
   - 59 original Python tests passed, plus 7 subtests.
   - The new 38-case REST suite copies the existing Java PK full-text golden 
data and compares Python/Native historical snapshots, physical positions, BM25 
scores, selected splits and materialized rows.
   - Tests cover projection/zero projection, reusable captured plans and 
readers, context mismatches, FAST-only errors and no Python retry after Native 
failures. Temporarily moving user Parquet files still permits index search; 
only reading user columns fails.
   - Nonempty/empty GenericRow and BinaryRow partitions now agree, and PK 
vector tests also compare partition bytes.
   - Rebuilt the final extension; its 8 vector binding tests and 39 final PK/DE 
full-text smoke cases passed.
   - Flake8, license headers and Python 3.6 syntax checks passed.
   
   The production adapter changes remain small; the query implementation is in 
the companion Rust core 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