postgres.git / summary / log / commit / refs
commit e8a82ddeaf69b077125cf9303df809234461bd37
Author: Andrew Dunstan <andrew@dunslane.net>
Date: Sat May 09 18:57:09 2026 +0000
Fire create_upper_paths_hook for UPPERREL_PARTIAL_GROUP_AGG
create_partial_grouping_paths() called the FDW callback
GetForeignUpperPaths for UPPERREL_PARTIAL_GROUP_AGG, but never the
general-purpose create_upper_paths_hook that non-FDW extensions rely
on. create_partial_distinct_paths() already fires both for
UPPERREL_PARTIAL_DISTINCT.
Add the missing call right next to GetForeignUpperPaths, so an
extension can add partial-aggregate paths here too, before the caller
gathers them and builds a Finalize Aggregate on top.
Reviewed-by: Bryan Green <dbryan.green@gmail.com>
Reviewed-by: Himanshu Upadhyaya <upadhyaya.himanshu@gmail.com>
Reviewed-by: Shihao Zhong <zhong950419@gmail.com>
Discussion: https://postgr.es/m/6fc72a7d-9f52-4a72-9adf-1912da255605@dunslane.net
src/backend/optimizer/plan/planner.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 55a35aa3397..9458efab480 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -7976,6 +7976,12 @@ create_partial_grouping_paths(PlannerInfo *root,
extra);
}
+ /* Let extensions possibly add some more partial paths */
+ if (create_upper_paths_hook)
+ (*create_upper_paths_hook) (root, UPPERREL_PARTIAL_GROUP_AGG,
+ input_rel, partially_grouped_rel,
+ extra);
+
return partially_grouped_rel;
}
[parent: a5447a2deaca]