You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Arnab Karmakar (Jira)" <ji...@apache.org> on 2026/10/03 15:56:00 UTC

[jira] [Created] (IMPALA-15476) Push down UUID partition predicates to Iceberg for identity and bucket partitions

Arnab Karmakar created IMPALA-15476:
---------------------------------------

             Summary: Push down UUID partition predicates to Iceberg for identity and bucket partitions
                 Key: IMPALA-15476
                 URL: https://issues.apache.org/jira/browse/IMPALA-15476
             Project: IMPALA
          Issue Type: Sub-task
          Components: Frontend
            Reporter: Arnab Karmakar


UUID value predicates are never pushed to Iceberg in scans. The Iceberg Java library compares UUIDs with the signed {{{}UUID.compareTo(){}}}, while Parquet writes UUID min/max bounds in unsigned byte order. Iceberg's {{InclusiveMetricsEvaluator}} can therefore skip data files that contain matching rows, for {{{}={}}}, {{IN}} and range predicates. As a result, scans of UUID-partitioned tables get no partition pruning.

Two narrower pushdowns avoid the problem:
 # {*}Identity partitions{*}. If a UUID column is identity partitioned in every partition spec, each data file holds a single value, so its lower and upper bounds are equal. {{=}} and {{IN}} can then be pushed: equality checks don't depend on byte order, and Iceberg evaluates partition values exactly.
 # {*}Bucket partitions{*}. For {{u = X}} or {{u IN (...)}} on a column with a {{bucket(N, u)}} partition field, compute the bucket number in the FE with Iceberg's transform. Push only {{bucket(N, u) = <hash>}} and keep the original UUID predicate in the scan. Bucket transforms don't preserve order, so Iceberg's metrics check never skips files for them, and bucket partition summaries are INTs.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org