This is an automated email from the ASF dual-hosted git repository. morrysnow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 2ea1e9db449 [fix](nereids) temp partition is always pruned (#27636) 2ea1e9db449 is described below commit 2ea1e9db4498d07a5c085f17f408c5b134fcf2c2 Author: minghong <engle...@gmail.com> AuthorDate: Tue Nov 28 14:18:14 2023 +0800 [fix](nereids) temp partition is always pruned (#27636) --- .../org/apache/doris/catalog/PartitionInfo.java | 10 +++++++ .../rules/expression/rules/PartitionPruner.java | 2 +- .../data/nereids_syntax_p0/select_partition.out | 3 ++ .../nereids_syntax_p0/select_partition.groovy | 32 ++++++++++++++++++++++ 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java index 34f80a91038..721bf0ebaef 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionInfo.java @@ -129,6 +129,16 @@ public class PartitionInfo implements Writable { } } + /** + * @return both normal partition and temp partition + */ + public Map<Long, PartitionItem> getAllPartitions() { + HashMap all = new HashMap<>(); + all.putAll(idToTempItem); + all.putAll(idToItem); + return all; + } + public PartitionItem getItem(long partitionId) { PartitionItem item = idToItem.get(partitionId); if (item == null) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/PartitionPruner.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/PartitionPruner.java index 6c932f558b0..a0336295476 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/PartitionPruner.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/PartitionPruner.java @@ -103,7 +103,7 @@ public class PartitionPruner extends DefaultExpressionRewriter<Void> { */ public static List<Long> prune(List<Slot> partitionSlots, Expression partitionPredicate, PartitionInfo partitionInfo, CascadesContext cascadesContext, PartitionTableType partitionTableType) { - return prune(partitionSlots, partitionPredicate, partitionInfo.getIdToItem(false), cascadesContext, + return prune(partitionSlots, partitionPredicate, partitionInfo.getAllPartitions(), cascadesContext, partitionTableType); } diff --git a/regression-test/data/nereids_syntax_p0/select_partition.out b/regression-test/data/nereids_syntax_p0/select_partition.out index db982e24c0d..e49bb9ea3d9 100644 --- a/regression-test/data/nereids_syntax_p0/select_partition.out +++ b/regression-test/data/nereids_syntax_p0/select_partition.out @@ -24,3 +24,6 @@ -- !sql -- 1 aaa aaa +-- !sql -- +16 1234 t + diff --git a/regression-test/suites/nereids_syntax_p0/select_partition.groovy b/regression-test/suites/nereids_syntax_p0/select_partition.groovy index de90c7d5c26..8b438b228c2 100644 --- a/regression-test/suites/nereids_syntax_p0/select_partition.groovy +++ b/regression-test/suites/nereids_syntax_p0/select_partition.groovy @@ -88,4 +88,36 @@ suite("query_on_specific_partition") { qt_sql """ SELECT * FROM test_iot PARTITION p1; """ + + sql """ + DROP TABLE IF EXISTS ut_p; + """ + + sql """ + CREATE TABLE ut_p ( + id BIGINT, + val BIGINT, + str VARCHAR(114) + ) unique KEY(`id`) + PARTITION BY RANGE(`id`) + ( + PARTITION `p1` VALUES LESS THAN ('5'), + PARTITION `p2` VALUES LESS THAN ('10') + ) + DISTRIBUTED BY HASH(`id`) BUCKETS 3 + PROPERTIES ( + "replication_num"="1" + ); + """ + + sql """ALTER TABLE ut_p ADD TEMPORARY PARTITION tp1 VALUES [("15"), ("20"));""" + + sql "INSERT INTO ut_p TEMPORARY PARTITION(tp1) values(16,1234, 't');" + + sql "SET enable_fallback_to_original_planner=false" + + qt_sql """select * from ut_p temporary partitions(tp1);""" + + + } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org