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

   ### Purpose
   
   Use Rust core for PyPaimon's existing explicit partition selectors, 
including REST query-auth tables. Depends on apache/paimon-rust#1129; the 
Native CI job continues building Rust `main`. This PR is draft until that core 
change is merged.
   
   Follow Java's distinction between `ReadBuilder.withPartitionFilter` 
(scan-only selection) and `withFilter` (ordinary row filtering):
   
   - Forward the explicit selector through the new Native setter instead of 
combining it into the ordinary row predicate. Remove the query-auth fallback 
for runtimes that support the setter.
   - Restrict the public selector to partition fields, matching Java's typed 
`PartitionPredicate` contract. `None` clears it; invalid mixed/data-field 
selectors fail before replacing the current selector.
   - Fix two Python path gaps revealed by parity tests: apply ordinary 
partition residuals after partition values are injected, and defer split LIMIT 
when an explicit selector has replaced ordinary partition pruning.
   - Check the required binding during Native CI startup, keeping the Rust 
source on `main`.
   
   The selector implementation, field remapping, read-side metadata filtering, 
and authorization semantics live in Rust core. Python handles transport and 
preserves its existing non-native path.
   
   ### Tests
   
   - REST Python/Native parity for append, primary-key and data-evolution 
tables: selectors, both setter orders, replace/clear, hidden predicates, 
conflicting conditions, LIMIT, masked selectors and authorization scopes. Final 
rebuilt-binding run: 57 passed, 9 not-applicable authorization combinations 
skipped.
   - Expanded Native partition/query-auth/type suites: 217 passed, 9 skipped, 2 
subtests passed.
   - Native planning routing unit suite: 66 passed, 46 subtests passed.
   - Legacy/core subset in the same non-forced-Native configuration used by the 
older-Python CI lane: 119 passed, 2 subtests passed (local Python 3.13).
   - Explicit LIMIT unit tests: 8 passed. Partition predicate unit tests 
including public-input validation: 26 passed, 2 subtests passed.
   - Flake8, license headers, Python 3.6 syntax parsing and workflow YAML 
validation passed. Actual Python 3.6 runtime validation remains in CI.
   
   Java references: `ReadBuilderImpl.configureScan/newRead` and 
`AbstractDataTableScan.rejectMaskedPartitionFilter`.
   


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