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]

Reply via email to