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

   ### Purpose
   
   Extend composite BTree global index queries for Data Evolution tables with 
equality left prefixes and a range on the first non-equality key column. This 
follows #10345.
   
   - Build one typed tuple interval for `>`, `>=`, `<`, `<=` and `BETWEEN`, 
including combined bounds and contradictory constraints.
   - Seek directly to virtual prefix/range boundaries in SST blocks and prune 
files by typed key metadata. Preserve the persisted file format and full-key 
point/Bloom paths.
   - Prefer more bounded columns, then more equality columns, then fewer total 
key columns. For a leading-column-only condition, prefer a dedicated 
single-column index when its coverage includes the entire composite definition.
   - Apply the existing selected-file scan budget to every group of a 
definition and decline the whole definition if any group exceeds it. Preserve 
consistent eager/reader fallback and partial coverage behavior.
   - Keep conditions on later key columns as row filters and support the 
existing AND/OR planning paths.
   - Document the selection and scan rules. Python and dedicated composite 
`IN`/`IS NULL` optimization remain deferred.
   
   ### Tests
   
   All scoped final tests pass without the `fast-build` profile:
   
   | Scope | Runtime/profile | Result |
   | --- | --- | --- |
   | Composite, scalar BTree and SST regression tests | JDK 8 | 377 passed |
   | Query planning and Data Evolution table regression tests | JDK 8 | 78 
passed |
   | Flink composite index SQL/lifecycle test | Flink 1 / JDK 8 | 1 passed |
   | Flink composite index SQL/lifecycle test | Flink 2 / JDK 11 | 1 passed |
   | Spark composite index procedure suite | Spark 3 / JDK 8 / Scala 2.12 | 2 
passed |
   | Spark composite index procedure suite | Spark 4 / JDK 17 / Scala 2.13 | 2 
passed |
   
   Coverage includes both index file versions, compression and cross-block 
seeks, open/closed boundaries, NULL components, conflicting constraints, local 
row-ID ranges, independent single-column indexes, partial coverage, 
whole-definition budget fallback and eager/reader equivalence.
   
   Checkstyle, Spotless, Maven Enforcer, Apache RAT and `git diff --check` also 
pass. Two independent review iterations completed, with the final review 
reporting no actionable findings.
   


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