This is an automated email from the ASF dual-hosted git repository.

JingsongLi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new 9cdb902616 [iceberg] Do not generate bounds for ARRAY, MAP, ROW in 
IcebergConversions (#8245)
9cdb902616 is described below

commit 9cdb9026164d9516a6f631198bb0c348972587de
Author: weibangpeng <[email protected]>
AuthorDate: Sat Jun 20 20:52:22 2026 +0800

    [iceberg] Do not generate bounds for ARRAY, MAP, ROW in IcebergConversions 
(#8245)
---
 .../paimon/iceberg/manifest/IcebergDataFileMeta.java  | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git 
a/paimon-core/src/main/java/org/apache/paimon/iceberg/manifest/IcebergDataFileMeta.java
 
b/paimon-core/src/main/java/org/apache/paimon/iceberg/manifest/IcebergDataFileMeta.java
index 65ad0d60dd..07543e10a0 100644
--- 
a/paimon-core/src/main/java/org/apache/paimon/iceberg/manifest/IcebergDataFileMeta.java
+++ 
b/paimon-core/src/main/java/org/apache/paimon/iceberg/manifest/IcebergDataFileMeta.java
@@ -26,6 +26,7 @@ import org.apache.paimon.iceberg.metadata.IcebergDataField;
 import org.apache.paimon.iceberg.metadata.IcebergSchema;
 import org.apache.paimon.stats.SimpleStats;
 import org.apache.paimon.types.DataField;
+import org.apache.paimon.types.DataTypeRoot;
 import org.apache.paimon.types.DataTypes;
 import org.apache.paimon.types.RowType;
 
@@ -180,12 +181,18 @@ public class IcebergDataFileMeta {
             Object minValue = fieldGetter.getFieldOrNull(stats.minValues());
             Object maxValue = fieldGetter.getFieldOrNull(stats.maxValues());
             if (minValue != null && maxValue != null) {
-                lowerBounds.put(
-                        field.id(),
-                        IcebergConversions.toByteBuffer(field.dataType(), 
minValue).array());
-                upperBounds.put(
-                        field.id(),
-                        IcebergConversions.toByteBuffer(field.dataType(), 
maxValue).array());
+                DataTypeRoot typeRoot = field.dataType().getTypeRoot();
+                if (typeRoot != DataTypeRoot.ARRAY
+                        && typeRoot != DataTypeRoot.MAP
+                        && typeRoot != DataTypeRoot.ROW
+                        && typeRoot != DataTypeRoot.MULTISET) {
+                    lowerBounds.put(
+                            field.id(),
+                            IcebergConversions.toByteBuffer(field.dataType(), 
minValue).array());
+                    upperBounds.put(
+                            field.id(),
+                            IcebergConversions.toByteBuffer(field.dataType(), 
maxValue).array());
+                }
             }
         }
 

Reply via email to