diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-03-12 12:12:59 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-03-12 12:12:59 -0500 |
commit | 570be1f73f385abb557bda15b718d7aac616cc15 (patch) | |
tree | 08f1ed57cb7a9212cb96030fffd2c1532b18b56a | |
parent | 7087166a88fe0c04fc6636d0d6d6bea1737fc1fb (diff) | |
download | postgresql-570be1f73f385abb557bda15b718d7aac616cc15.tar.gz postgresql-570be1f73f385abb557bda15b718d7aac616cc15.zip |
Re-export a few of createplan.c's make_xxx() functions.
CitusDB is using these and don't wish to redesign their code right now.
I am not on board with this being a good idea, or a good precedent,
but I lack the energy to fight about it.
-rw-r--r-- | src/backend/optimizer/plan/createplan.c | 13 | ||||
-rw-r--r-- | src/include/optimizer/planmain.h | 8 |
2 files changed, 11 insertions, 10 deletions
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c index d138728e679..913ac844f09 100644 --- a/src/backend/optimizer/plan/createplan.c +++ b/src/backend/optimizer/plan/createplan.c @@ -242,16 +242,10 @@ static EquivalenceMember *find_ec_member_for_tle(EquivalenceClass *ec, TargetEntry *tle, Relids relids); static Sort *make_sort_from_pathkeys(Plan *lefttree, List *pathkeys); -static Sort *make_sort_from_sortclauses(List *sortcls, Plan *lefttree); static Sort *make_sort_from_groupcols(List *groupcls, AttrNumber *grpColIdx, Plan *lefttree); static Material *make_material(Plan *lefttree); -static Agg *make_agg(List *tlist, List *qual, AggStrategy aggstrategy, - bool combineStates, bool finalizeAggs, - int numGroupCols, AttrNumber *grpColIdx, Oid *grpOperators, - List *groupingSets, List *chain, - double dNumGroups, Plan *lefttree); static WindowAgg *make_windowagg(List *tlist, Index winref, int partNumCols, AttrNumber *partColIdx, Oid *partOperators, int ordNumCols, AttrNumber *ordColIdx, Oid *ordOperators, @@ -269,7 +263,6 @@ static SetOp *make_setop(SetOpCmd cmd, SetOpStrategy strategy, Plan *lefttree, List *distinctList, AttrNumber flagColIdx, int firstFlag, long numGroups); static LockRows *make_lockrows(Plan *lefttree, List *rowMarks, int epqParam); -static Limit *make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount); static Result *make_result(List *tlist, Node *resconstantqual, Plan *subplan); static ModifyTable *make_modifytable(PlannerInfo *root, CmdType operation, bool canSetTag, @@ -5500,7 +5493,7 @@ make_sort_from_pathkeys(Plan *lefttree, List *pathkeys) * 'sortcls' is a list of SortGroupClauses * 'lefttree' is the node which yields input tuples */ -static Sort * +Sort * make_sort_from_sortclauses(List *sortcls, Plan *lefttree) { List *sub_tlist = lefttree->targetlist; @@ -5635,7 +5628,7 @@ materialize_finished_plan(Plan *subplan) return matplan; } -static Agg * +Agg * make_agg(List *tlist, List *qual, AggStrategy aggstrategy, bool combineStates, bool finalizeAggs, @@ -5973,7 +5966,7 @@ make_lockrows(Plan *lefttree, List *rowMarks, int epqParam) * make_limit * Build a Limit plan node */ -static Limit * +Limit * make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount) { Limit *node = makeNode(Limit); diff --git a/src/include/optimizer/planmain.h b/src/include/optimizer/planmain.h index cd7338a98c6..596ffb3d175 100644 --- a/src/include/optimizer/planmain.h +++ b/src/include/optimizer/planmain.h @@ -55,6 +55,14 @@ extern ForeignScan *make_foreignscan(List *qptlist, List *qpqual, extern Plan *materialize_finished_plan(Plan *subplan); extern bool is_projection_capable_path(Path *path); extern bool is_projection_capable_plan(Plan *plan); +/* External use of these functions is deprecated: */ +extern Sort *make_sort_from_sortclauses(List *sortcls, Plan *lefttree); +extern Agg *make_agg(List *tlist, List *qual, AggStrategy aggstrategy, + bool combineStates, bool finalizeAggs, + int numGroupCols, AttrNumber *grpColIdx, Oid *grpOperators, + List *groupingSets, List *chain, + double dNumGroups, Plan *lefttree); +extern Limit *make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount); /* * prototypes for plan/initsplan.c |