This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new c32ddce [SQL][BUG]Fix window function with limit zero bug (#4207)
c32ddce is described below
commit c32ddce0b590db62789d12ce5d3b1a2181d59325
Author: kangkaisen <[email protected]>
AuthorDate: Sat Aug 1 17:43:47 2020 +0800
[SQL][BUG]Fix window function with limit zero bug (#4207)
---
.../org/apache/doris/planner/SingleNodePlanner.java | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
b/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
index 3f936cb..f8180de 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java
@@ -207,9 +207,26 @@ public class SingleNodePlanner {
* Select/Project/Join/Union [All]/Group by/Having/Order by clauses of the
query stmt.
*/
private PlanNode createQueryPlan(QueryStmt stmt, Analyzer analyzer, long
defaultOrderByLimit)
- throws UserException, AnalysisException {
+ throws UserException {
if (analyzer.hasEmptyResultSet()) {
- return createEmptyNode(stmt, analyzer);
+ PlanNode node = createEmptyNode(stmt, analyzer);
+
+ // handle window function with limit zero
+ if (stmt instanceof SelectStmt) {
+ SelectStmt selectStmt = (SelectStmt) stmt;
+ if (selectStmt.getAnalyticInfo() != null) {
+ AnalyticInfo analyticInfo = selectStmt.getAnalyticInfo();
+ AnalyticPlanner analyticPlanner = new
AnalyticPlanner(analyticInfo, analyzer, ctx_);
+ List<Expr> inputPartitionExprs = Lists.newArrayList();
+ AggregateInfo aggInfo = selectStmt.getAggInfo();
+ PlanNode root = analyticPlanner.createSingleNodePlan(node,
+ aggInfo != null ? aggInfo.getGroupingExprs() :
null, inputPartitionExprs);
+
+ // In order to substitute the analytic expr with slot in
result exprs
+ node.setOutputSmap(root.outputSmap);
+ }
+ }
+ return node;
}
long newDefaultOrderByLimit = defaultOrderByLimit;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]