This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push: new b4fcb41d50c [Chore](function) remove unused check on count function (#31400) (#31605) b4fcb41d50c is described below commit b4fcb41d50cbcadc58f0f2059348c7da84e3cbfd Author: Pxl <pxl...@qq.com> AuthorDate: Fri Mar 1 10:52:41 2024 +0800 [Chore](function) remove unused check on count function (#31400) (#31605) --- .../apache/doris/analysis/FunctionCallExpr.java | 6 ------ .../java/org/apache/doris/analysis/QueryStmt.java | 15 ++++++++++---- .../analysis/CreateMaterializedViewStmtTest.java | 23 ---------------------- .../org/apache/doris/planner/QueryPlanTest.java | 6 +++--- 4 files changed, 14 insertions(+), 36 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java index 2e8f443f6ba..a15c345014c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java @@ -832,12 +832,6 @@ public class FunctionCallExpr extends Expr { throw new AnalysisException( "COUNT must have DISTINCT for multiple arguments: " + this.toSql()); } - - for (Expr child : children) { - if (child.type.isOnlyMetricType() && !child.type.isComplexType()) { - throw new AnalysisException(Type.OnlyMetricTypeErrorMsg); - } - } return; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/QueryStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/QueryStmt.java index 3850f594c90..4a92dd1027a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/QueryStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/QueryStmt.java @@ -28,6 +28,7 @@ import org.apache.doris.common.ErrorReport; import org.apache.doris.common.UserException; import org.apache.doris.qe.ConnectContext; import org.apache.doris.rewrite.ExprRewriter; +import org.apache.doris.rewrite.mvrewrite.CountDistinctToBitmapOrHLLRule; import org.apache.doris.thrift.TQueryOptions; import com.google.common.base.Preconditions; @@ -275,12 +276,18 @@ public abstract class QueryStmt extends StatementBase implements Queriable { } protected Expr rewriteQueryExprByMvColumnExpr(Expr expr, Analyzer analyzer) throws AnalysisException { - if (analyzer == null || analyzer.getMVExprRewriter() == null || forbiddenMVRewrite) { + if (analyzer == null || analyzer.getMVExprRewriter() == null) { return expr; } - ExprRewriter rewriter = analyzer.getMVExprRewriter(); - rewriter.reset(); - rewriter.setInfoMVRewriter(disableTuplesMVRewriter, mvSMap, aliasSMap); + ExprRewriter rewriter; + if (forbiddenMVRewrite) { + rewriter = new ExprRewriter(Lists.newArrayList(CountDistinctToBitmapOrHLLRule.INSTANCE), + Lists.newArrayList()); + } else { + rewriter = analyzer.getMVExprRewriter(); + rewriter.reset(); + rewriter.setInfoMVRewriter(disableTuplesMVRewriter, mvSMap, aliasSMap); + } rewriter.setUpBottom(); Expr result = rewriter.rewrite(expr, analyzer); diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateMaterializedViewStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateMaterializedViewStmtTest.java index 782f7cfbab9..ec380a82683 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateMaterializedViewStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateMaterializedViewStmtTest.java @@ -62,29 +62,6 @@ public class CreateMaterializedViewStmtTest { } - @Test - public void testFunctionColumnInSelectClause(@Injectable ArithmeticExpr arithmeticExpr) throws UserException { - SelectList selectList = new SelectList(); - SelectListItem selectListItem = new SelectListItem(arithmeticExpr, null); - selectList.addItem(selectListItem); - FromClause fromClause = new FromClause(); - SelectStmt selectStmt = new SelectStmt(selectList, fromClause, null, null, null, null, LimitElement.NO_LIMIT); - - new Expectations() { - { - analyzer.getClusterName(); - result = "default"; - } - }; - CreateMaterializedViewStmt createMaterializedViewStmt = new CreateMaterializedViewStmt("test", selectStmt, null); - try { - createMaterializedViewStmt.analyze(analyzer); - Assert.fail(); - } catch (UserException e) { - System.out.print(e.getMessage()); - } - } - @Disabled public void testCountDistinct(@Injectable SlotRef slotRef, @Injectable ArithmeticExpr arithmeticExpr, @Injectable SelectStmt selectStmt, @Injectable Column column, 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 bcf239b443c..b31baecf7fc 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 @@ -457,7 +457,7 @@ public class QueryPlanTest extends TestWithFeService { assertSQLPlanOrErrorMsgContains( "select count(id2) from test.bitmap_table;", - Type.OnlyMetricTypeErrorMsg + "No matching function with signature" ); assertSQLPlanOrErrorMsgContains( @@ -506,7 +506,7 @@ public class QueryPlanTest extends TestWithFeService { assertSQLPlanOrErrorMsgContains( "select count(id2) from test.hll_table;", - Type.OnlyMetricTypeErrorMsg + "No matching function with signature" ); assertSQLPlanOrErrorMsgContains( @@ -649,7 +649,7 @@ public class QueryPlanTest extends TestWithFeService { ConnectContext.get().getSessionVariable().setRewriteCountDistinct(false); sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ count(distinct id2) from test.bitmap_table"; explainString = getSQLPlanOrErrorMsg("explain " + sql); - Assert.assertTrue(explainString.contains(Type.OnlyMetricTypeErrorMsg)); + Assert.assertTrue(explainString.contains("No matching function with signature")); } @Test --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org