summaryrefslogtreecommitdiff
path: root/src/include/optimizer/planner.h
diff options
context:
space:
mode:
authorTom Lane2016-04-12 19:23:14 +0000
committerTom Lane2016-04-12 19:23:14 +0000
commitf1f01de145d0aaca80e6cf8b2ccb7e7f4ed1ad02 (patch)
tree8dce0baf20ce16f6ac6def671c6df9b4acc67782 /src/include/optimizer/planner.h
parent7a5f8b5c59033ac153963f98b9109be9529a824a (diff)
Redefine create_upper_paths_hook as being invoked once per upper relation.
Per discussion, this gives potential users of the hook more flexibility, because they can build custom Paths that implement only one stage of upper processing atop core-provided Paths for earlier stages.
Diffstat (limited to 'src/include/optimizer/planner.h')
-rw-r--r--src/include/optimizer/planner.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/include/optimizer/planner.h b/src/include/optimizer/planner.h
index a95e73fa93b..4161bcf8d74 100644
--- a/src/include/optimizer/planner.h
+++ b/src/include/optimizer/planner.h
@@ -24,9 +24,11 @@ typedef PlannedStmt *(*planner_hook_type) (Query *parse,
ParamListInfo boundParams);
extern PGDLLIMPORT planner_hook_type planner_hook;
-/* Hook for plugins to get control before grouping_planner plans upper rels */
+/* Hook for plugins to get control when grouping_planner() plans upper rels */
typedef void (*create_upper_paths_hook_type) (PlannerInfo *root,
- RelOptInfo *scan_join_rel);
+ UpperRelationKind stage,
+ RelOptInfo *input_rel,
+ RelOptInfo *output_rel);
extern PGDLLIMPORT create_upper_paths_hook_type create_upper_paths_hook;