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]
