PostgreSQL Source Code
git master
|
#include "nodes/pathnodes.h"
Go to the source code of this file.
Data Structures | |
struct | WindowFuncLists |
Functions | |
bool | contain_agg_clause (Node *clause) |
bool | contain_window_function (Node *clause) |
WindowFuncLists * | find_window_functions (Node *clause, Index maxWinRef) |
double | expression_returns_set_rows (PlannerInfo *root, Node *clause) |
bool | contain_subplans (Node *clause) |
char | max_parallel_hazard (Query *parse) |
bool | is_parallel_safe (PlannerInfo *root, Node *node) |
bool | contain_nonstrict_functions (Node *clause) |
bool | contain_exec_param (Node *clause, List *param_ids) |
bool | contain_leaked_vars (Node *clause) |
Relids | find_nonnullable_rels (Node *clause) |
List * | find_nonnullable_vars (Node *clause) |
List * | find_forced_null_vars (Node *clause) |
Var * | find_forced_null_var (Node *clause) |
bool | is_pseudo_constant_clause (Node *clause) |
bool | is_pseudo_constant_clause_relids (Node *clause, Relids relids) |
int | NumRelids (PlannerInfo *root, Node *clause) |
void | CommuteOpExpr (OpExpr *clause) |
Query * | inline_set_returning_function (PlannerInfo *root, RangeTblEntry *rte) |
Bitmapset * | pull_paramids (Expr *expr) |
void CommuteOpExpr | ( | OpExpr * | clause | ) |
Definition at line 2043 of file clauses.c.
References OpExpr::args, elog, ERROR, get_commutator(), InvalidOid, is_opclause(), linitial, list_length(), lsecond, OidIsValid, OpExpr::opfuncid, and OpExpr::opno.
Referenced by get_switched_clauses().
Definition at line 180 of file clauses.c.
References contain_agg_clause_walker().
Referenced by get_eclass_for_sort_expr(), and subquery_planner().
Definition at line 1079 of file clauses.c.
References contain_exec_param_walker().
Referenced by test_opexpr_is_hashable().
Definition at line 1205 of file clauses.c.
References contain_leaked_vars_walker().
Referenced by make_restrictinfo_internal(), and qual_is_pushdown_safe().
Definition at line 935 of file clauses.c.
References contain_nonstrict_functions_walker().
Referenced by inline_function(), process_equivalence(), and pullup_replace_vars_callback().
Definition at line 333 of file clauses.c.
References contain_subplans_walker().
Referenced by convert_EXISTS_to_ANY(), ExecInitValuesScan(), inline_function(), inline_set_returning_function(), qual_is_pushdown_safe(), and subquery_planner().
Definition at line 217 of file clauses.c.
References contain_windowfuncs().
Referenced by get_eclass_for_sort_expr(), and qual_is_pushdown_safe().
double expression_returns_set_rows | ( | PlannerInfo * | root, |
Node * | clause | ||
) |
Definition at line 292 of file clauses.c.
References clamp_row_est(), FuncExpr::funcid, FuncExpr::funcretset, get_function_rows(), IsA, OpExpr::opfuncid, OpExpr::opretset, and set_opfuncid().
Referenced by create_set_projection_path(), estimate_num_groups_incremental(), and set_function_size_estimates().
Definition at line 1875 of file clauses.c.
References NullTest::arg, BooleanTest::arg, NullTest::argisrow, BooleanTest::booltesttype, if(), IS_NULL, IS_UNKNOWN, IsA, NullTest::nulltesttype, and Var::varlevelsup.
Referenced by check_redundant_nullability_qual(), and find_forced_null_vars().
Definition at line 1816 of file clauses.c.
References AND_EXPR, BoolExpr::args, BoolExpr::boolop, find_forced_null_var(), IsA, lfirst, list_concat(), list_make1, and NIL.
Referenced by reduce_outer_joins_pass2().
Definition at line 1398 of file clauses.c.
References find_nonnullable_rels_walker().
Referenced by make_outerjoininfo(), and reduce_outer_joins_pass2().
Definition at line 1623 of file clauses.c.
References find_nonnullable_vars_walker().
Referenced by reduce_outer_joins_pass2().
WindowFuncLists* find_window_functions | ( | Node * | clause, |
Index | maxWinRef | ||
) |
Definition at line 230 of file clauses.c.
References find_window_functions_walker(), WindowFuncLists::maxWinRef, WindowFuncLists::numWindowFuncs, palloc(), palloc0(), and WindowFuncLists::windowFuncs.
Referenced by grouping_planner().
Query* inline_set_returning_function | ( | PlannerInfo * | root, |
RangeTblEntry * | rte | ||
) |
Definition at line 4956 of file clauses.c.
References ACL_EXECUTE, ACLCHECK_OK, AcquireRewriteLocks(), ALLOCSET_DEFAULT_SIZES, AllocSetContextCreate, ErrorContextCallback::arg, FuncExpr::args, Assert(), BuildDescFromLists(), ErrorContextCallback::callback, castNode, check_sql_fn_retval(), check_stack_depth(), CMD_SELECT, contain_subplans(), contain_volatile_functions(), copyObject, CurrentMemoryContext, elog, ERROR, error_context_stack, FmgrHookIsNeeded, RangeTblFunction::funccolcollations, RangeTblFunction::funccolnames, RangeTblFunction::funccoltypes, RangeTblFunction::funccoltypmods, RangeTblFunction::funcexpr, FuncExpr::funcid, RangeTblEntry::funcordinality, FuncExpr::funcresulttype, FuncExpr::funcretset, RangeTblEntry::functions, get_expr_result_type(), GETSTRUCT, GetUserId(), heap_attisnull(), HeapTupleIsValid, if(), IsA, linitial, linitial_node, list_length(), list_make1, MemoryContextDelete(), MemoryContextSwitchTo(), NameStr, ObjectIdGetDatum, pg_analyze_and_rewrite_withcb(), pg_parse_query(), pg_proc_aclcheck(), pg_rewrite_query(), prepare_sql_fn_parse_info(), ErrorContextCallback::previous, PROCOID, inline_error_callback_arg::proname, inline_error_callback_arg::prosrc, querytree(), record_plan_function_dependency(), ReleaseSysCache(), RTE_FUNCTION, RangeTblEntry::rtekind, SearchSysCache1(), sql_fn_parser_setup(), sql_inline_error_callback(), stringToNode(), substitute_actual_srf_parameters(), SysCacheGetAttr(), TextDatumGetCString, TYPEFUNC_COMPOSITE, TYPEFUNC_COMPOSITE_DOMAIN, and TYPEFUNC_RECORD.
Referenced by preprocess_function_rtes().
bool is_parallel_safe | ( | PlannerInfo * | root, |
Node * | node | ||
) |
Definition at line 683 of file clauses.c.
References PlannerInfo::glob, PlannerInfo::init_plans, lfirst, list_concat(), max_parallel_hazard_context::max_hazard, max_parallel_hazard_context::max_interesting, max_parallel_hazard_walker(), PlannerGlobal::maxParallelHazard, NIL, PlannerGlobal::paramExecTypes, PlannerInfo::parent_root, max_parallel_hazard_context::safe_param_ids, and SubPlan::setParam.
Referenced by apply_projection_to_path(), build_join_rel(), create_projection_path(), create_set_projection_path(), create_window_paths(), find_computable_ec_member(), grouping_planner(), make_grouping_rel(), plan_create_index_workers(), query_planner(), relation_can_be_sorted_early(), and set_rel_consider_parallel().
Definition at line 1986 of file clauses.c.
References contain_var_clause(), and contain_volatile_functions().
Referenced by clauselist_selectivity_ext(), dependency_is_compatible_clause(), dependency_is_compatible_expression(), and find_window_run_conditions().
Definition at line 2006 of file clauses.c.
References bms_is_empty(), and contain_volatile_functions().
Referenced by clauselist_selectivity_ext().
char max_parallel_hazard | ( | Query * | parse | ) |
Definition at line 664 of file clauses.c.
References max_parallel_hazard_context::max_hazard, max_parallel_hazard_context::max_interesting, max_parallel_hazard_walker(), NIL, parse(), and max_parallel_hazard_context::safe_param_ids.
Referenced by standard_planner().
int NumRelids | ( | PlannerInfo * | root, |
Node * | clause | ||
) |
Definition at line 2028 of file clauses.c.
References bms_free(), bms_num_members(), and pull_varnos().
Referenced by clauselist_selectivity_ext(), rowcomparesel(), and treat_as_join_clause().
Definition at line 5302 of file clauses.c.
References pull_paramids_walker().
Referenced by create_memoize_plan().