+extern Plan *create_plan(PlannerInfo *root, Path *best_path);
+extern SubqueryScan *make_subqueryscan(List *qptlist, List *qpqual,
+ Index scanrelid, Plan *subplan, List *subrtable);
+extern Append *make_append(List *appendplans, bool isTarget, List *tlist);
+extern Sort *make_sort_from_pathkeys(PlannerInfo *root, Plan *lefttree,
+ List *pathkeys, double limit_tuples);
+extern Sort *make_sort_from_sortclauses(PlannerInfo *root, List *sortcls,
+ Plan *lefttree);
+extern Sort *make_sort_from_groupcols(PlannerInfo *root, List *groupcls,
+ AttrNumber *grpColIdx, Plan *lefttree);
+extern Agg *make_agg(PlannerInfo *root, List *tlist, List *qual,
+ AggStrategy aggstrategy,
+ int numGroupCols, AttrNumber *grpColIdx, Oid *grpOperators,
+ long numGroups, int numAggs,
+ Plan *lefttree);
+extern Group *make_group(PlannerInfo *root, List *tlist, List *qual,
+ int numGroupCols, AttrNumber *grpColIdx, Oid *grpOperators,
+ double numGroups,
+ Plan *lefttree);
+extern Plan *materialize_finished_plan(Plan *subplan);
+extern Unique *make_unique(Plan *lefttree, List *distinctList);
+extern Limit *make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount,
+ int64 offset_est, int64 count_est);
+extern SetOp *make_setop(SetOpCmd cmd, Plan *lefttree,
+ List *distinctList, AttrNumber flagColIdx);
+extern Result *make_result(PlannerInfo *root, List *tlist,
+ Node *resconstantqual, Plan *subplan);
+extern bool is_projection_capable_plan(Plan *plan);