This is an automated email from the ASF dual-hosted git repository.

kxiao 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 2b934dc57d [fix](Nereids) set operation syntax is not compatible with 
legacy planner (#23668) (#23820)
2b934dc57d is described below

commit 2b934dc57d6a838626d126c2f46499e8ae4e6b69
Author: morrySnow <101034200+morrys...@users.noreply.github.com>
AuthorDate: Tue Sep 5 13:14:15 2023 +0800

    [fix](Nereids) set operation syntax is not compatible with legacy planner 
(#23668) (#23820)
---
 .../main/antlr4/org/apache/doris/nereids/DorisParser.g4 | 17 +++++++----------
 .../apache/doris/nereids/parser/LogicalPlanBuilder.java |  1 -
 .../nereids/rules/expression/rules/FunctionBinder.java  |  6 ++++++
 regression-test/suites/nereids_syntax_p0/cte.groovy     |  2 ++
 4 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 
b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
index 8ae9955c5b..884ab3ceff 100644
--- a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
+++ b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
@@ -93,14 +93,13 @@ outFileClause
     ;
 
 query
-    : {!doris_legacy_SQL_syntax}? cte? queryTerm queryOrganization
-    | {doris_legacy_SQL_syntax}? queryTerm queryOrganization
+    : cte? queryTerm queryOrganization
     ;
 
 queryTerm
-    : queryPrimary                                                             
          #queryTermDefault
+    : queryPrimary                                                         
#queryTermDefault
     | left=queryTerm operator=(UNION | EXCEPT | INTERSECT)
-      setQuantifier? right=queryTerm                                           
          #setOperation
+      setQuantifier? right=queryTerm                                       
#setOperation
     ;
 
 setQuantifier
@@ -109,19 +108,17 @@ setQuantifier
     ;
 
 queryPrimary
-    : querySpecification                                                    
#queryPrimaryDefault
-    | TABLE multipartIdentifier                                             
#table
-    | LEFT_PAREN query RIGHT_PAREN                                          
#subquery
+    : querySpecification                                                   
#queryPrimaryDefault
+    | LEFT_PAREN query RIGHT_PAREN                                         
#subquery
     ;
 
 querySpecification
-    : {doris_legacy_SQL_syntax}? cte?
-      selectClause
+    : selectClause
       fromClause?
       whereClause?
       aggClause?
       havingClause?
-      {doris_legacy_SQL_syntax}? queryOrganization                             
                  #regularQuerySpecification
+      {doris_legacy_SQL_syntax}? queryOrganization                         
#regularQuerySpecification
     ;
 
 cte
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index 272b600d3f..25a8274d65 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -542,7 +542,6 @@ public class LogicalPlanBuilder extends 
DorisParserBaseVisitor<Object> {
                 );
             }
             selectPlan = withQueryOrganization(selectPlan, 
ctx.queryOrganization());
-            selectPlan = withCte(selectPlan, ctx.cte());
             return withSelectHint(selectPlan, selectCtx.selectHint());
         });
     }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FunctionBinder.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FunctionBinder.java
index 928687add6..dada408062 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FunctionBinder.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FunctionBinder.java
@@ -115,6 +115,12 @@ public class FunctionBinder extends 
AbstractExpressionRewriteRule {
         }
     }
 
+    @Override
+    public Expression visitBoundFunction(BoundFunction boundFunction, 
ExpressionRewriteContext context) {
+        boundFunction = (BoundFunction) 
super.visitBoundFunction(boundFunction, context);
+        return TypeCoercionUtils.processBoundFunction(boundFunction);
+    }
+
     /**
      * gets the method for calculating the time.
      * e.g. YEARS_ADD、YEARS_SUB、DAYS_ADD 、DAYS_SUB
diff --git a/regression-test/suites/nereids_syntax_p0/cte.groovy 
b/regression-test/suites/nereids_syntax_p0/cte.groovy
index 173f3694ae..2fffefd806 100644
--- a/regression-test/suites/nereids_syntax_p0/cte.groovy
+++ b/regression-test/suites/nereids_syntax_p0/cte.groovy
@@ -306,6 +306,8 @@ suite("cte") {
         notContains "MultiCastDataSinks"
     }
 
+    sql "WITH cte_0 AS ( SELECT 1 AS a ) SELECT * from cte_0 t1 LIMIT 10 UNION 
SELECT * from cte_0 t1 LIMIT 10"
+
     qt_test """
         SELECT * FROM (
         WITH temptable as (


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to