-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Subsume non-identity partition predicate in Iceberg
Before the change, Iceberg connector accepted all predicates expressible as `TupleDomain` on primitive columns and they were used to filter data files during split generation. However, only predicates defined on identity partitioning columns were subsumed into connector. This commit extends Iceberg capabilities to subsume predicates on partitioning columns. Besides subsuming predicates on identity partitioning columns, it also subsumes predicates if they align with partitioning boundaries. For example, for `truncate(col, 2)` (round to 100s) partitioning, predicates `col >= 1200` OR `col > 1199` are subsumed, while `col > 1200` or `col > 1250` are not. This change is especially important for Iceberg OPTIMIZE table procedure, which requires the `WHERE` condition to be fully subsumed into the connector. It is also helpful for `DELETE`, as it allows to do metadata-only delete in more cases, where we don't really needing to do a row-level delete.
- Loading branch information
Showing
6 changed files
with
537 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.