This is an automated email from the ASF dual-hosted git repository.

chenjinbao1989 pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/cbdb-postgres-merge by this 
push:
     new cd273074966 Use root->processed_groupClause in create agg path
cd273074966 is described below

commit cd273074966f8aaea280fcc8b58a1dd54b5a2a88
Author: Jinbao Chen <[email protected]>
AuthorDate: Wed Nov 12 21:54:02 2025 +0800

    Use root->processed_groupClause in create agg path
---
 src/backend/cdb/cdbgroupingpaths.c   |  8 ++++----
 src/backend/optimizer/plan/planner.c | 18 +++++++++---------
 src/backend/optimizer/util/relnode.c |  4 ++--
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/src/backend/cdb/cdbgroupingpaths.c 
b/src/backend/cdb/cdbgroupingpaths.c
index 489fb13c588..b393882c9a2 100644
--- a/src/backend/cdb/cdbgroupingpaths.c
+++ b/src/backend/cdb/cdbgroupingpaths.c
@@ -312,7 +312,7 @@ cdb_create_multistage_grouping_paths(PlannerInfo *root,
        ctx.strat = strat;
 
        ctx.hasAggs = parse->hasAggs;
-       ctx.groupClause = parse->groupClause;
+       ctx.groupClause = root->processed_groupClause;
        ctx.groupingSets = parse->groupingSets;
        ctx.havingQual = havingQual;
        ctx.partial_rel = fetch_upper_rel(root, 
UPPERREL_CDB_FIRST_STAGE_GROUP_AGG, NULL);
@@ -414,7 +414,7 @@ cdb_create_multistage_grouping_paths(PlannerInfo *root,
 
                gsetcl = create_gsetid_groupclause(ctx.gsetid_sortref);
 
-               ctx.final_groupClause = lappend(copyObject(parse->groupClause), 
gsetcl);
+               ctx.final_groupClause = 
lappend(copyObject(root->processed_groupClause), gsetcl);
 
                ctx.partial_grouping_target = 
copyObject(partial_grouping_target);
                if (!list_member(ctx.partial_grouping_target->exprs, gsetid))
@@ -434,7 +434,7 @@ cdb_create_multistage_grouping_paths(PlannerInfo *root,
        else
        {
                ctx.partial_grouping_target = partial_grouping_target;
-               ctx.final_groupClause = parse->groupClause;
+               ctx.final_groupClause = root->processed_groupClause;
                ctx.final_needed_pathkeys = root->group_pathkeys;
                ctx.gsetid_sortref = 0;
        }
@@ -614,7 +614,7 @@ cdb_create_twostage_distinct_paths(PlannerInfo *root,
        ctx.hasAggs = false;
        ctx.groupingSets = NIL;
        ctx.havingQual = NULL;
-       ctx.groupClause = parse->distinctClause;
+       ctx.groupClause = root->processed_distinctClause;
        ctx.group_tles = get_common_group_tles(target, parse->distinctClause, 
NIL);
        ctx.final_groupClause = ctx.groupClause;
        ctx.final_group_tles = ctx.group_tles;
diff --git a/src/backend/optimizer/plan/planner.c 
b/src/backend/optimizer/plan/planner.c
index 524bb08bdc8..1dfe3cf0f11 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -4985,7 +4985,7 @@ consider_groupingsets_paths(PlannerInfo *root,
                path = cdb_prepare_path_for_hashed_agg(root,
                                                                                
           path,
                                                                                
           path->pathtarget,
-                                                                               
           parse->groupClause,
+                                                                               
           root->processed_groupClause,
                                                                                
           gd->rollups);
 
                /*
@@ -5032,7 +5032,7 @@ consider_groupingsets_paths(PlannerInfo *root,
                path = cdb_prepare_path_for_hashed_agg(root,
                                                                                
           path,
                                                                                
           path->pathtarget,
-                                                                               
           parse->groupClause,
+                                                                               
           root->processed_groupClause,
                                                                                
           srd->new_rollups);
 
 
@@ -5064,7 +5064,7 @@ consider_groupingsets_paths(PlannerInfo *root,
                                                                                
   path->pathtarget,
                                                                                
   root->group_pathkeys,
                                                                                
   -1.0,
-                                                                               
   parse->groupClause,
+                                                                               
   root->processed_groupClause,
                                                                                
   gd->rollups);
 
        /*
@@ -8060,7 +8060,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo 
*input_rel,
                                                                                
                   path->pathtarget,
                                                                                
                   root->group_pathkeys,
                                                                                
                   -1.0,
-                                                                               
                   parse->groupClause,
+                                                                               
                   root->processed_groupClause,
                                                                                
                   gd ? gd->rollups : NIL);
 
                        /*
@@ -8153,7 +8153,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo 
*input_rel,
                                                                                
                                path->pathtarget,
                                                                                
                                root->group_pathkeys,
                                                                                
                                -1.0,
-                                                                               
                                parse->groupClause,
+                                                                               
                                root->processed_groupClause,
                                                                                
                                gd ? gd->rollups : NIL);
 
                                /*
@@ -8240,7 +8240,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo 
*input_rel,
                                                                                
                           path->pathtarget,
                                                                                
                           root->group_pathkeys,
                                                                                
                           -1.0,
-                                                                               
                           parse->groupClause,
+                                                                               
                           root->processed_groupClause,
                                                                                
                           NIL);
 
                                /*
@@ -8310,7 +8310,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo 
*input_rel,
                        path = cdb_prepare_path_for_hashed_agg(root,
                                                                                
                   cheapest_path,
                                                                                
                   cheapest_path->pathtarget,
-                                                                               
                   parse->groupClause,
+                                                                               
                   root->processed_groupClause,
                                                                                
                   NIL);
 
                        /*
@@ -8368,7 +8368,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo 
*input_rel,
                                path = cdb_prepare_path_for_hashed_agg(root,
                                                                                
                                path,
                                                                                
                                path->pathtarget,
-                                                                               
                                parse->groupClause,
+                                                                               
                                root->processed_groupClause,
                                                                                
                                NIL);
 
                                /*
@@ -8423,7 +8423,7 @@ add_paths_to_grouping_rel(PlannerInfo *root, RelOptInfo 
*input_rel,
                        path = cdb_prepare_path_for_hashed_agg(root,
                                                                                
                   path,
                                                                                
                   path->pathtarget,
-                                                                               
                   parse->groupClause,
+                                                                               
                   root->processed_groupClause,
                                                                                
                   NIL);
 
                        /*
diff --git a/src/backend/optimizer/util/relnode.c 
b/src/backend/optimizer/util/relnode.c
index eb9ac829480..d32e48c5514 100644
--- a/src/backend/optimizer/util/relnode.c
+++ b/src/backend/optimizer/util/relnode.c
@@ -3002,7 +3002,7 @@ create_rel_agg_info(PlannerInfo *root, RelOptInfo *rel)
        if ((list_length(target->exprs) + list_length(grp_exprs_extra)) == 0)
                return NULL;
 
-       group_clauses_final = root->parse->groupClause;
+       group_clauses_final = root->processed_groupClause;
 
        /*
         * If the aggregation target should have extra grouping expressions (in
@@ -3017,7 +3017,7 @@ create_rel_agg_info(PlannerInfo *root, RelOptInfo *rel)
                 * We'll have to add some clauses, but query group clause must 
be
                 * preserved.
                 */
-               group_clauses_final = list_copy(root->parse->groupClause);
+               group_clauses_final = list_copy(root->processed_groupClause);
 
                /*
                 * Always start at root->max_sortgroupref. The extra grouping


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to