diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergTransaction.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergTransaction.java index 2e1ad8ab1e..5025e07514 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergTransaction.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergTransaction.java @@ -40,6 +40,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; public class IcebergTransaction implements Transaction { @@ -154,11 +155,22 @@ public class IcebergTransaction implements Transaction { this.path = path; this.fileSizeInBytes = fileSizeInBytes; this.metrics = metrics; - this.partitionValues = partitionValues; + this.partitionValues = convertPartitionValuesForNull(partitionValues); this.content = content; this.referencedDataFiles = referencedDataFiles; } + private Optional> convertPartitionValuesForNull(Optional> partitionValues) { + if (!partitionValues.isPresent()) { + return partitionValues; + } + List values = partitionValues.get(); + if (!values.contains("null")) { + return partitionValues; + } + return Optional.of(values.stream().map(s -> s.equals("null") ? null : s).collect(Collectors.toList())); + } + public String getPath() { return path; }