27 const char *query_string,
47 bool hasRecursion,
double tuple_fraction,
58 double tuple_fraction);
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)
PlannerInfo * subquery_planner(PlannerGlobal *glob, Query *parse, PlannerInfo *parent_root, bool hasRecursion, double tuple_fraction, SetOperationStmt *setops)
void mark_partial_aggref(Aggref *agg, AggSplit aggsplit)
bool limit_needed(Query *parse)
PGDLLIMPORT create_upper_paths_hook_type create_upper_paths_hook
PlannedStmt *(* planner_hook_type)(Query *parse, const char *query_string, int cursorOptions, ParamListInfo boundParams)
PGDLLIMPORT planner_hook_type planner_hook
void(* create_upper_paths_hook_type)(PlannerInfo *root, UpperRelationKind stage, RelOptInfo *input_rel, RelOptInfo *output_rel, void *extra)
PlannedStmt * standard_planner(Query *parse, const char *query_string, int cursorOptions, ParamListInfo boundParams)
static struct subre * parse(struct vars *v, int stopper, int type, struct state *init, struct state *final)