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

Reply via email to