28 #define IS_SRF_CALL(node) \ 29 ((IsA(node, FuncExpr) && ((FuncExpr *) (node))->funcretset) || \ 30 (IsA(node, OpExpr) && ((OpExpr *) (node))->opretset)) 38 #ifndef HAVE_PLANNERINFO_TYPEDEF 40 #define HAVE_PLANNERINFO_TYPEDEF 1 44 #ifndef HAVE_INDEXOPTINFO_TYPEDEF 46 #define HAVE_INDEXOPTINFO_TYPEDEF 1 48 #ifndef HAVE_SPECIALJOININFO_TYPEDEF 50 #define HAVE_SPECIALJOININFO_TYPEDEF 1 71 bool use_extended_stats);
82 bool use_extended_stats);
134 bool *hasRowSecurity);
152 Oid result_collation);
183 #define PVC_INCLUDE_AGGREGATES 0x0001 184 #define PVC_RECURSE_AGGREGATES 0x0002 185 #define PVC_INCLUDE_WINDOWFUNCS 0x0004 186 #define PVC_RECURSE_WINDOWFUNCS 0x0008 187 #define PVC_INCLUDE_PLACEHOLDERS 0x0010 189 #define PVC_RECURSE_PLACEHOLDERS 0x0020 bool parallel_leader_participation
Node * eval_const_expressions(PlannerInfo *root, Node *node)
PGDLLIMPORT double cpu_index_tuple_cost
bool is_pseudo_constant_for_index(PlannerInfo *root, Node *expr, IndexOptInfo *index)
struct PlannedStmt * planner(Query *parse, const char *query_string, int cursorOptions, struct ParamListInfoData *boundParams)
Expr * expression_planner(Expr *expr)
List * expand_function_arguments(List *args, Oid result_type, struct HeapTupleData *func_tuple)
PGDLLIMPORT double parallel_setup_cost
TargetEntry * get_sortgroupref_tle(Index sortref, List *targetList)
int plan_create_index_workers(Oid tableOid, Oid indexOid)
Expr * evaluate_expr(Expr *expr, Oid result_type, int32 result_typmod, Oid result_collation)
Selectivity clauselist_selectivity_ext(PlannerInfo *root, List *clauses, int varRelid, JoinType jointype, SpecialJoinInfo *sjinfo, bool use_extended_stats)
void pull_varattnos(Node *node, Index varno, Bitmapset **varattnos)
PGDLLIMPORT double cpu_tuple_cost
SortGroupClause * get_sortgroupref_clause_noerr(Index sortref, List *clauses)
Node * get_sortgroupclause_expr(SortGroupClause *sgClause, List *targetList)
PGDLLIMPORT double cpu_operator_cost
bool predicate_implied_by(List *predicate_list, List *clause_list, bool weak)
Node * estimate_expression_value(PlannerInfo *root, Node *node)
double clamp_row_est(double nrows)
Node * flatten_join_alias_vars(Query *query, Node *node)
int locate_var_of_level(Node *node, int levelsup)
bool contain_volatile_functions_not_nextval(Node *clause)
int count_nonjunk_tlist_entries(List *tlist)
TargetEntry * get_sortgroupclause_tle(SortGroupClause *sgClause, List *targetList)
Bitmapset * pull_varnos_of_level(PlannerInfo *root, Node *node, int levelsup)
bool contain_volatile_functions(Node *clause)
void extract_query_dependencies(Node *query, List **relationOids, List **invalItems, bool *hasRowSecurity)
PGDLLIMPORT int effective_cache_size
Selectivity clauselist_selectivity(PlannerInfo *root, List *clauses, int varRelid, JoinType jointype, SpecialJoinInfo *sjinfo)
Expr * canonicalize_qual(Expr *qual, bool is_check)
List * get_sortgrouplist_exprs(List *sgClauses, List *targetList)
PGDLLIMPORT double random_page_cost
bool contain_var_clause(Node *node)
List * pull_var_clause(Node *node, int flags)
Bitmapset * pull_varnos(PlannerInfo *root, Node *node)
Expr * expression_planner_with_deps(Expr *expr, List **relationOids, List **invalItems)
List * pull_vars_of_level(Node *node, int levelsup)
bool plan_cluster_use_sort(Oid tableOid, Oid indexOid)
PGDLLIMPORT double seq_page_cost
SortGroupClause * get_sortgroupref_clause(Index sortref, List *clauses)
bool contain_mutable_functions(Node *clause)
Selectivity clause_selectivity(PlannerInfo *root, Node *clause, int varRelid, JoinType jointype, SpecialJoinInfo *sjinfo)
bool contain_vars_of_level(Node *node, int levelsup)
bool predicate_refuted_by(List *predicate_list, List *clause_list, bool weak)
PGDLLIMPORT double parallel_tuple_cost
Node * negate_clause(Node *node)
Selectivity clause_selectivity_ext(PlannerInfo *root, Node *clause, int varRelid, JoinType jointype, SpecialJoinInfo *sjinfo, bool use_extended_stats)
static struct subre * parse(struct vars *, int, int, struct state *, struct state *)