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

   ### Purpose
   
   `TableRead.executeFilter()` currently drops predicates that reference fields 
outside the requested read type. For example, reading only `a` with `a = 1 AND 
b = 2` evaluates only `a = 1`, while `a = 1 OR b = 2` can skip row filtering 
entirely.
   
   Read all filter operands internally, evaluate the complete predicate after 
query authorization and column masking, and then restore the requested output 
projection, including nested fields and field order. Apply the same behavior to 
FormatTable, retain Data Evolution files needed by filter operands during 
planning, and document the `executeFilter()` contract.
   
   ### Tests
   
   98 focused tests passed with the normal Maven checks enabled (without 
`fast-build`):
   
   - 62 tests covering the read/filter helpers, FormatTable, append-only and 
primary-key tables, Data Evolution file pruning, and query authorization 
helpers. Regressions cover missing filter columns in leaf/AND/OR predicates, 
NULL values, empty and nested projections, reader reuse, masking, merged 
primary-key values, and overwritten Data Evolution columns.
   - 36 `MockRESTCatalogTest` cases covering column masking, authorization 
limits, row filters, and row-ID filters.
   
   Checkstyle, Spotless, and `git diff --check` passed. The new missing-column 
regression was also verified to fail against the original implementation 
because it returned all five rows instead of the two matching rows.
   


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