diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/PartitionCompensator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/PartitionCompensator.java index 0ee88ce82a..ecb3c1d6cb 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/PartitionCompensator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/PartitionCompensator.java @@ -85,8 +85,10 @@ public class PartitionCompensator { } MTMVPartitionInfo mvCustomPartitionInfo = mtmv.getMvPartitionInfo(); BaseTableInfo relatedPartitionTable = mvCustomPartitionInfo.getRelatedTableInfo(); - if (relatedPartitionTable == null || queryUsedBaseTablePartitionNameSet.isEmpty()) { + if (relatedPartitionTable == null || queryUsedBaseTablePartitionNameSet.isEmpty() + || !relatedPartitionTable.isInternalTable()) { // if mv is not partitioned or query not query any partition, doesn't compensate + // in 2.1, external table should not compensate union all return Pair.of(ImmutableMap.of(), ImmutableMap.of()); } Collection mvValidPartitions = cascadesContext.getStatementContext()