This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-1.1-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.1-lts by this push:
new 633cda85aa [fix](planner) fix orthogonal_bitmap_union_count planner :
wrong PREAGGREGATION (#12581)
633cda85aa is described below
commit 633cda85aa410935f89e0d4ff457fc38b47b732a
Author: lihuigang <[email protected]>
AuthorDate: Thu Sep 15 09:15:12 2022 +0800
[fix](planner) fix orthogonal_bitmap_union_count planner : wrong
PREAGGREGATION (#12581)
Execution plan display when using orthogonal_bitmap_union_count function:
PREAGGREGATION: OFF
Reason: Invalid Aggregate Operator: orthogonal_bitmap_union_count
The correct plan is: PREAGGREGATION: ON
---
.../ADMIN-COPY-TABLET.md | 2 +-
.../ADMIN-COPY-TABLET.md | 2 +-
.../apache/doris/planner/SingleNodePlanner.java | 3 ++-
.../org/apache/doris/planner/QueryPlanTest.java | 25 +++++++++++++++++++++-
4 files changed, 28 insertions(+), 4 deletions(-)
diff --git
a/docs/en/docs/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET.md
b/docs/en/docs/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET.md
index 26b4631d60..dc30a5f327 100644
---
a/docs/en/docs/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET.md
+++
b/docs/en/docs/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET.md
@@ -1,6 +1,6 @@
---
{
- "title": "ADMIN-COPY-TABLET"
+ "title": "ADMIN-COPY-TABLET",
"language": "en"
}
---
diff --git
a/docs/zh-CN/docs/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET.md
b/docs/zh-CN/docs/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET.md
index 1645a1c18a..6ea8835e1e 100644
---
a/docs/zh-CN/docs/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET.md
+++
b/docs/zh-CN/docs/sql-manual/sql-reference/Database-Administration-Statements/ADMIN-COPY-TABLET.md
@@ -1,6 +1,6 @@
---
{
- "title": "ADMIN-COPY-TABLET"
+ "title": "ADMIN-COPY-TABLET",
"language": "zh-CN"
}
---
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
b/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
index 45d8512e6f..c4f6106cdd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
@@ -587,7 +587,8 @@ public class SingleNodePlanner {
break;
}
} else if
(aggExpr.getFnName().getFunction().equalsIgnoreCase(FunctionSet.BITMAP_UNION)
- ||
aggExpr.getFnName().getFunction().equalsIgnoreCase(FunctionSet.BITMAP_UNION_COUNT))
{
+ ||
aggExpr.getFnName().getFunction().equalsIgnoreCase(FunctionSet.BITMAP_UNION_COUNT)
+ ||
aggExpr.getFnName().getFunction().equalsIgnoreCase(FunctionSet.ORTHOGONAL_BITMAP_UNION_COUNT))
{
if (col.getAggregationType() !=
AggregateType.BITMAP_UNION) {
turnOffReason =
"Aggregate Operator not match:
BITMAP_UNION <--> " + col.getAggregationType();
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
b/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
index cfbb0c2055..1119baf62e 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
@@ -2159,4 +2159,27 @@ public class QueryPlanTest {
Assert.assertFalse(explainString.contains("non-equal FULL OUTER JOIN
is not supported"));
}
-}
+
+ @Test
+ public void testPreaggregationOfOrthogonalBitmapUDAF() throws Exception {
+ connectContext.setDatabase("default_cluster:test");
+ createTable("CREATE TABLE test.bitmap_tb (\n"
+ + " `id` int(11) NULL COMMENT \"\",\n"
+ + " `id2` int(11) NULL COMMENT \"\",\n"
+ + " `id3` bitmap bitmap_union NULL\n"
+ + ") ENGINE=OLAP\n"
+ + "AGGREGATE KEY(`id`,`id2`)\n"
+ + "DISTRIBUTED BY HASH(`id`) BUCKETS 1\n"
+ + "PROPERTIES (\n"
+ + " \"replication_num\" = \"1\"\n"
+ + ");");
+
+ String queryBaseTableStr = "explain select
id,id2,orthogonal_bitmap_union_count(id3) from test.bitmap_tb t1 group by
id,id2";
+ String explainString1 =
UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, queryBaseTableStr);
+ Assert.assertTrue(explainString1.contains("PREAGGREGATION: ON"));
+
+ String queryTableStr = "explain select
id,orthogonal_bitmap_union_count(id3) from test.bitmap_tb t1 group by id";
+ String explainString2 =
UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, queryTableStr);
+ Assert.assertTrue(explainString2.contains("PREAGGREGATION: ON"));
+ }
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]