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

Reply via email to