This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
commit aaa89ec768080ceecbfff5b3ecce8f140f514f4e Author: wuwenchi <[email protected]> AuthorDate: Tue May 28 22:56:10 2024 +0800 [bugfix](iceberg)support null values as partition (#35503) #31442 test in #34929 When null value is used as the partition value, BE will return the "null" string, so this string needs to be processed specially. --- .../doris/datasource/iceberg/IcebergTransaction.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 2e1ad8ab1e1..5025e075142 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<List<String>> convertPartitionValuesForNull(Optional<List<String>> partitionValues) { + if (!partitionValues.isPresent()) { + return partitionValues; + } + List<String> 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; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
