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