29 const char *query_string,
37 const char *query_string,
38 double *tuple_fraction,
44 const char *query_string,
65 bool hasRecursion,
double tuple_fraction,
76 double tuple_fraction);
PGDLLIMPORT planner_shutdown_hook_type planner_shutdown_hook
char * choose_plan_name(PlannerGlobal *glob, const char *name, bool always_number)
void(* planner_setup_hook_type)(PlannerGlobal *glob, Query *parse, const char *query_string, double *tuple_fraction, ExplainState *es)
RelOptInfo * create_unique_paths(PlannerInfo *root, RelOptInfo *rel, SpecialJoinInfo *sjinfo)
PlannerInfo * subquery_planner(PlannerGlobal *glob, Query *parse, char *plan_name, PlannerInfo *parent_root, bool hasRecursion, double tuple_fraction, SetOperationStmt *setops)
Path * get_cheapest_fractional_path(RelOptInfo *rel, double tuple_fraction)
Expr * preprocess_phv_expression(PlannerInfo *root, Expr *expr)
RowMarkType select_rowmark_type(RangeTblEntry *rte, LockClauseStrength strength)
void mark_partial_aggref(Aggref *agg, AggSplit aggsplit)
PGDLLIMPORT planner_setup_hook_type planner_setup_hook
PlannedStmt * standard_planner(Query *parse, const char *query_string, int cursorOptions, ParamListInfo boundParams, ExplainState *es)
bool limit_needed(Query *parse)
PlannedStmt *(* planner_hook_type)(Query *parse, const char *query_string, int cursorOptions, ParamListInfo boundParams, ExplainState *es)
PGDLLIMPORT create_upper_paths_hook_type create_upper_paths_hook
PGDLLIMPORT planner_hook_type planner_hook
void(* create_upper_paths_hook_type)(PlannerInfo *root, UpperRelationKind stage, RelOptInfo *input_rel, RelOptInfo *output_rel, void *extra)
void(* planner_shutdown_hook_type)(PlannerGlobal *glob, Query *parse, const char *query_string, PlannedStmt *pstmt)
static struct subre * parse(struct vars *v, int stopper, int type, struct state *init, struct state *final)