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]
