diff --git a/ice/src/main/java/com/altinity/ice/cli/internal/iceberg/Partitioning.java b/ice/src/main/java/com/altinity/ice/cli/internal/iceberg/Partitioning.java index 92ff15c..530bbf4 100644 --- a/ice/src/main/java/com/altinity/ice/cli/internal/iceberg/Partitioning.java +++ b/ice/src/main/java/com/altinity/ice/cli/internal/iceberg/Partitioning.java @@ -141,13 +141,19 @@ public static void apply(UpdatePartitionSpec op, List columns boolean same = true; for (BlockMetaData block : blocks) { - Statistics stats = + ColumnChunkMetaData columnMeta = block.getColumns().stream() .filter(c -> c.getPath().toDotString().equals(sourceName)) .findFirst() - .map(ColumnChunkMetaData::getStatistics) .orElse(null); + if (columnMeta == null) { + same = false; + break; + } + + Statistics stats = columnMeta.getStatistics(); + if (stats == null || !stats.hasNonNullValue() || stats.genericGetMin() == null @@ -159,7 +165,7 @@ public static void apply(UpdatePartitionSpec op, List columns Transform transform = (Transform) field.transform(); SerializableFunction boundTransform = transform.bind(type); - PrimitiveType parquetType = stats.type(); + PrimitiveType parquetType = columnMeta.getPrimitiveType(); Comparable parquetMin = stats.genericGetMin(); var min = fromParquetPrimitive(type, parquetType, parquetMin);