From d1c3b857cf76368e9d99848dd516fb9b07407ef9 Mon Sep 17 00:00:00 2001 From: Mingyu Chen Date: Wed, 28 Aug 2024 21:44:30 +0800 Subject: [PATCH] [fix](catalog) fix invalid getPartitionNames() methods (#39878) (#40054) bp #39878 --- .../main/java/org/apache/doris/catalog/Table.java | 9 --------- .../datasource/iceberg/IcebergExternalTable.java | 10 ---------- .../maxcompute/MaxComputeExternalTable.java | 12 ++---------- .../maxcompute/source/MaxComputeScanNode.java | 2 +- 4 files changed, 3 insertions(+), 30 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Table.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Table.java index 929f53fb3c..8cfe52356c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Table.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Table.java @@ -52,7 +52,6 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.time.Instant; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; @@ -564,14 +563,6 @@ public abstract class Table extends MetaObject implements Writable, TableIf { return table; } - public boolean isHasCompoundKey() { - return hasCompoundKey; - } - - public Set getPartitionNames() { - return Collections.EMPTY_SET; - } - @Override public BaseAnalysisTask createAnalysisTask(AnalysisInfo info) { throw new NotImplementedException("createAnalysisTask not implemented"); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java index 06864bfe6a..d4361a4779 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java @@ -28,14 +28,11 @@ import org.apache.doris.thrift.TIcebergTable; import org.apache.doris.thrift.TTableDescriptor; import org.apache.doris.thrift.TTableType; -import org.apache.iceberg.PartitionField; import org.apache.iceberg.Table; import java.util.HashMap; import java.util.List; import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; public class IcebergExternalTable extends ExternalTable { @@ -92,11 +89,4 @@ public class IcebergExternalTable extends ExternalTable { public Table getIcebergTable() { return IcebergUtils.getIcebergTable(getCatalog(), getDbName(), getName()); } - - @Override - public Set getPartitionNames() { - getIcebergTable(); - return IcebergUtils.getIcebergTable(getCatalog(), getDbName(), getName()) - .spec().fields().stream().map(PartitionField::name).collect(Collectors.toSet()); - } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/maxcompute/MaxComputeExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/maxcompute/MaxComputeExternalTable.java index 297a4c0fa0..0edae9de23 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/maxcompute/MaxComputeExternalTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/maxcompute/MaxComputeExternalTable.java @@ -51,7 +51,6 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Set; import java.util.stream.Collectors; /** @@ -92,14 +91,6 @@ public class MaxComputeExternalTable extends ExternalTable { .getRecordCount(); } - @Override - public Set getPartitionNames() { - makeSureInitialized(); - Optional schemaCacheValue = getSchemaCacheValue(); - return schemaCacheValue.map(value -> ((MaxComputeSchemaCacheValue) value).getPartitionColNames()) - .orElse(Collections.emptySet()); - } - public List getPartitionColumns() { makeSureInitialized(); Optional schemaCacheValue = getSchemaCacheValue(); @@ -129,7 +120,8 @@ public class MaxComputeExternalTable extends ExternalTable { TablePartitionValues partitionValues = new TablePartitionValues(); partitionValues.addPartitions(partitionSpecs, partitionSpecs.stream() - .map(p -> parsePartitionValues(new ArrayList<>(getPartitionNames()), p)) + .map(p -> parsePartitionValues(getPartitionColumns().stream().map(c -> c.getName()).collect( + Collectors.toList()), p)) .collect(Collectors.toList()), partitionTypes); return partitionValues; diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/maxcompute/source/MaxComputeScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/maxcompute/source/MaxComputeScanNode.java index ea651df9fe..87ab365553 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/maxcompute/source/MaxComputeScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/maxcompute/source/MaxComputeScanNode.java @@ -110,7 +110,7 @@ public class MaxComputeScanNode extends FileQueryScanNode { return result; } try { - if (!table.getPartitionNames().isEmpty()) { + if (!table.getPartitionColumns().isEmpty()) { if (conjuncts.isEmpty()) { throw new IllegalArgumentException("Max Compute partition table need partition predicate."); }