aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-03-12 12:12:59 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2016-03-12 12:12:59 -0500
commit570be1f73f385abb557bda15b718d7aac616cc15 (patch)
tree08f1ed57cb7a9212cb96030fffd2c1532b18b56a
parent7087166a88fe0c04fc6636d0d6d6bea1737fc1fb (diff)
downloadpostgresql-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.c13
-rw-r--r--src/include/optimizer/planmain.h8
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