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 26b4631d6078de..dc30a5f327837d 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 1645a1c18a9178..6ea8835e1e117c 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 45d8512e6f0db2..c4f6106cddc285 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 @@ private void turnOffPreAgg(AggregateInfo aggInfo, SelectStmt selectStmt, Analyze 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 cfbb0c205549d1..1119baf62e1bb7 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 void testOutJoinWithOnFalse() throws Exception { 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