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]
