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]
