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]

Reply via email to