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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]