Skip to content

Commit 570be1f

Browse files
committed
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.
1 parent 7087166 commit 570be1f

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

src/backend/optimizer/plan/createplan.c

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -242,16 +242,10 @@ static EquivalenceMember *find_ec_member_for_tle(EquivalenceClass *ec,
242242
TargetEntry *tle,
243243
Relids relids);
244244
static Sort *make_sort_from_pathkeys(Plan *lefttree, List *pathkeys);
245-
static Sort *make_sort_from_sortclauses(List *sortcls, Plan *lefttree);
246245
static Sort *make_sort_from_groupcols(List *groupcls,
247246
AttrNumber *grpColIdx,
248247
Plan *lefttree);
249248
static Material *make_material(Plan *lefttree);
250-
static Agg *make_agg(List *tlist, List *qual, AggStrategy aggstrategy,
251-
bool combineStates, bool finalizeAggs,
252-
int numGroupCols, AttrNumber *grpColIdx, Oid *grpOperators,
253-
List *groupingSets, List *chain,
254-
double dNumGroups, Plan *lefttree);
255249
static WindowAgg *make_windowagg(List *tlist, Index winref,
256250
int partNumCols, AttrNumber *partColIdx, Oid *partOperators,
257251
int ordNumCols, AttrNumber *ordColIdx, Oid *ordOperators,
@@ -269,7 +263,6 @@ static SetOp *make_setop(SetOpCmd cmd, SetOpStrategy strategy, Plan *lefttree,
269263
List *distinctList, AttrNumber flagColIdx, int firstFlag,
270264
long numGroups);
271265
static LockRows *make_lockrows(Plan *lefttree, List *rowMarks, int epqParam);
272-
static Limit *make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount);
273266
static Result *make_result(List *tlist, Node *resconstantqual, Plan *subplan);
274267
static ModifyTable *make_modifytable(PlannerInfo *root,
275268
CmdType operation, bool canSetTag,
@@ -5500,7 +5493,7 @@ make_sort_from_pathkeys(Plan *lefttree, List *pathkeys)
55005493
* 'sortcls' is a list of SortGroupClauses
55015494
* 'lefttree' is the node which yields input tuples
55025495
*/
5503-
static Sort *
5496+
Sort *
55045497
make_sort_from_sortclauses(List *sortcls, Plan *lefttree)
55055498
{
55065499
List *sub_tlist = lefttree->targetlist;
@@ -5635,7 +5628,7 @@ materialize_finished_plan(Plan *subplan)
56355628
return matplan;
56365629
}
56375630

5638-
static Agg *
5631+
Agg *
56395632
make_agg(List *tlist, List *qual,
56405633
AggStrategy aggstrategy,
56415634
bool combineStates, bool finalizeAggs,
@@ -5973,7 +5966,7 @@ make_lockrows(Plan *lefttree, List *rowMarks, int epqParam)
59735966
* make_limit
59745967
* Build a Limit plan node
59755968
*/
5976-
static Limit *
5969+
Limit *
59775970
make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount)
59785971
{
59795972
Limit *node = makeNode(Limit);

src/include/optimizer/planmain.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ extern ForeignScan *make_foreignscan(List *qptlist, List *qpqual,
5555
extern Plan *materialize_finished_plan(Plan *subplan);
5656
extern bool is_projection_capable_path(Path *path);
5757
extern bool is_projection_capable_plan(Plan *plan);
58+
/* External use of these functions is deprecated: */
59+
extern Sort *make_sort_from_sortclauses(List *sortcls, Plan *lefttree);
60+
extern Agg *make_agg(List *tlist, List *qual, AggStrategy aggstrategy,
61+
bool combineStates, bool finalizeAggs,
62+
int numGroupCols, AttrNumber *grpColIdx, Oid *grpOperators,
63+
List *groupingSets, List *chain,
64+
double dNumGroups, Plan *lefttree);
65+
extern Limit *make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount);
5866

5967
/*
6068
* prototypes for plan/initsplan.c

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy