This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
new d310eed614 [fix](planner)group_concat lost order by info in second
phase merge agg (#17049)
d310eed614 is described below
commit d310eed6144bacc0858865780a1c67ab47d0c221
Author: starocean999 <[email protected]>
AuthorDate: Thu Feb 23 09:55:23 2023 +0800
[fix](planner)group_concat lost order by info in second phase merge agg
(#17049)
pick from master #16479
---
.../src/main/java/org/apache/doris/analysis/AggregateInfo.java | 7 +++++--
.../src/main/java/org/apache/doris/analysis/FunctionCallExpr.java | 4 ++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfo.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfo.java
index d4137f148e..05d5284c08 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfo.java
@@ -555,8 +555,10 @@ public final class AggregateInfo extends AggregateInfoBase
{
Preconditions.checkState(inputExpr.isAggregateFunction());
Expr aggExprParam =
new SlotRef(inputDesc.getSlots().get(i +
getGroupingExprs().size()));
- FunctionCallExpr aggExpr = FunctionCallExpr.createMergeAggCall(
- inputExpr, Lists.newArrayList(aggExprParam),
inputExpr.getFnParams().exprs());
+ FunctionParams fnParams = inputExpr.getAggFnParams();
+ FunctionCallExpr aggExpr =
+ FunctionCallExpr.createMergeAggCall(inputExpr,
Lists.newArrayList(aggExprParam),
+ fnParams != null ? fnParams.exprs() :
inputExpr.getFnParams().exprs());
aggExpr.analyzeNoThrow(analyzer);
// do not need analyze in merge stage, just do mark for BE get
right function
aggExpr.setOrderByElements(inputExpr.getOrderByElements());
@@ -688,6 +690,7 @@ public final class AggregateInfo extends AggregateInfoBase {
new SlotRef(inputDesc.getSlots().get(i +
getGroupingExprs().size()));
FunctionCallExpr aggExpr = FunctionCallExpr.createMergeAggCall(
inputExpr, Lists.newArrayList(aggExprParam),
inputExpr.getFnParams().exprs());
+ aggExpr.setOrderByElements(inputExpr.getOrderByElements());
secondPhaseAggExprs.add(aggExpr);
}
Preconditions.checkState(
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 3aff4d3517..d6e7e01252 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
@@ -227,6 +227,10 @@ public class FunctionCallExpr extends Expr {
this.aggFnParams = aggFnParams;
}
+ public FunctionParams getAggFnParams() {
+ return aggFnParams;
+ }
+
public void setIsAnalyticFnCall(boolean v) {
isAnalyticFnCall = v;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]