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());
+ }
}
}