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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]