PostgreSQL Source Code
git master
|
#include "nodes/parsenodes.h"
Go to the source code of this file.
Typedefs | |
typedef bool(* | check_function_callback) (Oid func_id, void *context) |
typedef bool(* | tree_walker_callback) (Node *node, void *context) |
typedef bool(* | planstate_tree_walker_callback) (struct PlanState *planstate, void *context) |
typedef Node *(* | tree_mutator_callback) (Node *node, void *context) |
#define expression_tree_mutator | ( | n, | |
m, | |||
c | |||
) | expression_tree_mutator_impl(n, (tree_mutator_callback) (m), c) |
Definition at line 153 of file nodeFuncs.h.
#define expression_tree_walker | ( | n, | |
w, | |||
c | |||
) | expression_tree_walker_impl(n, (tree_walker_callback) (w), c) |
Definition at line 151 of file nodeFuncs.h.
#define planstate_tree_walker | ( | ps, | |
w, | |||
c | |||
) | planstate_tree_walker_impl(ps, (planstate_tree_walker_callback) (w), c) |
Definition at line 177 of file nodeFuncs.h.
#define QTW_DONT_COPY_QUERY 0x40 /* do not copy top Query */ |
Definition at line 29 of file nodeFuncs.h.
#define QTW_EXAMINE_RTES_AFTER |
Definition at line 28 of file nodeFuncs.h.
#define QTW_EXAMINE_RTES_BEFORE |
Definition at line 27 of file nodeFuncs.h.
#define QTW_EXAMINE_SORTGROUP 0x80 /* include SortGroupClause lists */ |
Definition at line 30 of file nodeFuncs.h.
#define QTW_IGNORE_CTE_SUBQUERIES 0x02 /* subqueries in cteList */ |
Definition at line 23 of file nodeFuncs.h.
#define QTW_IGNORE_JOINALIASES 0x04 /* JOIN alias var lists */ |
Definition at line 25 of file nodeFuncs.h.
#define QTW_IGNORE_RANGE_TABLE 0x08 /* skip rangetable entirely */ |
Definition at line 26 of file nodeFuncs.h.
#define QTW_IGNORE_RC_SUBQUERIES 0x03 /* both of above */ |
Definition at line 24 of file nodeFuncs.h.
#define QTW_IGNORE_RT_SUBQUERIES 0x01 /* subqueries in rtable */ |
Definition at line 22 of file nodeFuncs.h.
#define query_or_expression_tree_mutator | ( | n, | |
m, | |||
c, | |||
f | |||
) | query_or_expression_tree_mutator_impl(n, (tree_mutator_callback) (m), c, f) |
Definition at line 171 of file nodeFuncs.h.
#define query_or_expression_tree_walker | ( | n, | |
w, | |||
c, | |||
f | |||
) | query_or_expression_tree_walker_impl(n, (tree_walker_callback) (w), c, f) |
Definition at line 169 of file nodeFuncs.h.
#define query_tree_mutator | ( | q, | |
m, | |||
c, | |||
f | |||
) | query_tree_mutator_impl(q, (tree_mutator_callback) (m), c, f) |
Definition at line 158 of file nodeFuncs.h.
#define query_tree_walker | ( | q, | |
w, | |||
c, | |||
f | |||
) | query_tree_walker_impl(q, (tree_walker_callback) (w), c, f) |
Definition at line 156 of file nodeFuncs.h.
#define range_table_entry_walker | ( | r, | |
w, | |||
c, | |||
f | |||
) | range_table_entry_walker_impl(r, (tree_walker_callback) (w), c, f) |
Definition at line 166 of file nodeFuncs.h.
#define range_table_mutator | ( | rt, | |
m, | |||
c, | |||
f | |||
) | range_table_mutator_impl(rt, (tree_mutator_callback) (m), c, f) |
Definition at line 163 of file nodeFuncs.h.
#define range_table_walker | ( | rt, | |
w, | |||
c, | |||
f | |||
) | range_table_walker_impl(rt, (tree_walker_callback) (w), c, f) |
Definition at line 161 of file nodeFuncs.h.
#define raw_expression_tree_walker | ( | n, | |
w, | |||
c | |||
) | raw_expression_tree_walker_impl(n, (tree_walker_callback) (w), c) |
Definition at line 174 of file nodeFuncs.h.
Definition at line 33 of file nodeFuncs.h.
Definition at line 37 of file nodeFuncs.h.
Definition at line 41 of file nodeFuncs.h.
Definition at line 36 of file nodeFuncs.h.
Node* applyRelabelType | ( | Node * | arg, |
Oid | rtype, | ||
int32 | rtypmod, | ||
Oid | rcollid, | ||
CoercionForm | rformat, | ||
int | rlocation, | ||
bool | overwrite_ok | ||
) |
Definition at line 603 of file nodeFuncs.c.
References arg, RelabelType::arg, Const::consttype, copyObject, exprCollation(), exprType(), exprTypmod(), IsA, RelabelType::location, makeNode, and RelabelType::resulttype.
Referenced by canonicalize_ec_expression(), coerce_type_typmod(), eval_const_expressions_mutator(), generate_setop_tlist(), and relabel_to_typmod().
bool check_functions_in_node | ( | Node * | node, |
check_function_callback | checker, | ||
void * | context | ||
) |
Definition at line 1819 of file nodeFuncs.c.
References Aggref::aggfnoid, CoerceViaIO::arg, exprType(), FuncExpr::funcid, get_opcode(), getTypeInputInfo(), getTypeOutputInfo(), lfirst_oid, nodeTag, CoerceViaIO::resulttype, set_opfuncid(), set_sa_opfuncid(), and WindowFunc::winfnoid.
Referenced by check_simple_rowfilter_expr_walker(), contain_leaked_vars_walker(), contain_mutable_functions_walker(), contain_nonstrict_functions_walker(), contain_volatile_functions_not_nextval_walker(), contain_volatile_functions_walker(), and max_parallel_hazard_walker().
Definition at line 788 of file nodeFuncs.c.
References arg, ARRAY_SUBLINK, Assert(), JsonConstructorExpr::coercion, elog(), ERROR, EXPR_SUBLINK, SubPlan::firstColCollation, if(), InvalidOid, IS_XMLSERIALIZE, IsA, linitial, linitial_node, nodeTag, SubLink::subLinkType, SubPlan::subLinkType, AlternativeSubPlan::subplans, SubLink::subselect, Query::targetList, and generate_unaccent_rules::type.
Referenced by addRangeTableEntryForFunction(), addRangeTableEntryForSubquery(), analyzeCTE(), analyzeCTETargetList(), applyRelabelType(), assign_collations_walker(), assign_hypothetical_collations(), build_expression_pathkey(), build_pertrans_for_aggref(), build_subplan(), canonicalize_ec_expression(), check_simple_rowfilter_expr_walker(), coerce_type_typmod(), ComputeIndexAttrs(), ComputePartitionAttrs(), convert_EXISTS_to_ANY(), create_ctas_nodata(), create_limit_plan(), create_memoize_plan(), create_unique_plan(), create_windowagg_plan(), DefineVirtualRelation(), eval_const_expressions_mutator(), examine_attribute(), examine_expression(), ExecInitFunctionScan(), ExecInitIndexScan(), ExecTypeFromExprList(), ExecTypeFromTLInternal(), expandRecordVariable(), expandRTE(), exprSetCollation(), extract_grouping_collations(), fix_indexqual_operand(), generate_setop_tlist(), generate_subquery_params(), get_expr_result_type(), get_first_col_type(), inline_function(), make_pathkey_from_sortop(), make_recursive_union(), make_setop(), make_sort_from_groupcols(), make_sort_from_sortclauses(), make_unique_from_sortclauses(), makeCaseTestExpr(), makeVarFromTargetEntry(), makeWholeRowVar(), mcv_match_expression(), ordered_set_startup(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), preprocess_minmax_aggregates(), relabel_to_typmod(), RelationBuildPartitionKey(), RelationGetDummyIndexExpressions(), remove_unused_subquery_outputs(), replace_nestloop_param_placeholdervar(), replace_outer_placeholdervar(), scalararraysel(), set_dummy_tlist_references(), set_joinrel_partition_key_exprs(), tlist_same_collations(), transformCaseExpr(), transformFromClauseItem(), transformMultiAssignRef(), transformPLAssignStmt(), transformSubLink(), and transformWindowDefinitions().
Definition at line 730 of file nodeFuncs.c.
References expression_returns_set_walker().
Referenced by check_output_expressions(), coerce_to_boolean(), coerce_to_specific_type_typmod(), ExecInitProjectSet(), get_eclass_for_sort_expr(), is_simple_values(), make_row_comparison_op(), make_sort_input_target(), relation_can_be_sorted_early(), remove_unused_subquery_outputs(), and subquery_planner().
Node* expression_tree_mutator_impl | ( | Node * | node, |
tree_mutator_callback | mutator, | ||
void * | context | ||
) |
Definition at line 2810 of file nodeFuncs.c.
References generate_unaccent_rules::action, Aggref::aggdirectargs, Aggref::aggdistinct, Aggref::aggfilter, WindowFunc::aggfilter, Aggref::aggorder, OnConflictExpr::arbiterElems, OnConflictExpr::arbiterWhere, NamedArgExpr::arg, FieldSelect::arg, FieldStore::arg, RelabelType::arg, CoerceViaIO::arg, ArrayCoerceExpr::arg, ConvertRowtypeExpr::arg, CollateExpr::arg, CaseExpr::arg, NullTest::arg, BooleanTest::arg, CoerceToDomain::arg, TableSampleClause::args, Aggref::args, WindowFunc::args, FuncExpr::args, OpExpr::args, ScalarArrayOpExpr::args, BoolExpr::args, SubPlan::args, CaseExpr::args, RowExpr::args, CoalesceExpr::args, MinMaxExpr::args, XmlExpr::args, JsonConstructorExpr::args, check_stack_depth(), JsonConstructorExpr::coercion, TableFunc::colexprs, copyObject, CommonTableExpr::ctequery, CTECycleClause::cycle_mark_default, CTECycleClause::cycle_mark_value, CaseExpr::defresult, TableFunc::docexpr, ArrayExpr::elements, ArrayCoerceExpr::elemexpr, elog(), WindowClause::endOffset, ERROR, OnConflictExpr::exclRelTlist, CaseWhen::expr, JsonIsPredicate::expr, InferenceElem::expr, TargetEntry::expr, PartitionPruneStepOp::exprs, FLATCOPY, JsonReturning::format, JsonValueExpr::format, JsonIsPredicate::format, JsonValueExpr::formatted_expr, FromExpr::fromlist, JsonConstructorExpr::func, RangeTblFunction::funcexpr, IndexClause::indexquals, lappend(), SetOperationStmt::larg, JoinExpr::larg, RowCompareExpr::largs, lfirst, list_copy(), PartitionBoundSpec::listdatums, PartitionBoundSpec::lowerdatums, MUTATE, XmlExpr::named_args, FieldStore::newvals, NIL, nodeTag, OnConflictExpr::onConflictSet, OnConflictExpr::onConflictWhere, WindowClause::orderClause, WindowClause::partitionClause, PlaceHolderInfo::ph_var, WithCheckOption::qual, MergeAction::qual, JoinExpr::quals, FromExpr::quals, SetOperationStmt::rarg, JoinExpr::rarg, RowCompareExpr::rargs, JsonValueExpr::raw_expr, SubscriptingRef::refassgnexpr, SubscriptingRef::refexpr, SubscriptingRef::reflowerindexpr, SubscriptingRef::refupperindexpr, TableSampleClause::repeatable, CaseWhen::result, JsonConstructorExpr::returning, IndexClause::rinfo, TableFunc::rowexpr, WindowClause::startOffset, AlternativeSubPlan::subplans, SubLink::subselect, MergeAction::targetList, SubLink::testexpr, SubPlan::testexpr, AppendRelInfo::translated_vars, PartitionBoundSpec::upperdatums, and PartitionRangeDatum::value.
bool expression_tree_walker_impl | ( | Node * | node, |
tree_walker_callback | walker, | ||
void * | context | ||
) |
Definition at line 2002 of file nodeFuncs.c.
References generate_unaccent_rules::action, JsonAggConstructor::agg_filter, JsonAggConstructor::agg_order, Aggref::aggdirectargs, Aggref::aggdistinct, Aggref::aggfilter, WindowFunc::aggfilter, Aggref::aggorder, OnConflictExpr::arbiterElems, OnConflictExpr::arbiterWhere, arg, JsonObjectAgg::arg, JsonArrayAgg::arg, FieldStore::arg, ArrayCoerceExpr::arg, CaseExpr::arg, generate_unaccent_rules::args, TableSampleClause::args, Aggref::args, WindowFunc::args, FuncExpr::args, OpExpr::args, ScalarArrayOpExpr::args, BoolExpr::args, SubPlan::args, CaseExpr::args, XmlExpr::args, JsonConstructorExpr::args, check_stack_depth(), JsonConstructorExpr::coercion, TableFunc::colexprs, JsonObjectAgg::constructor, JsonArrayAgg::constructor, CommonTableExpr::ctequery, CTECycleClause::cycle_mark_default, CTECycleClause::cycle_mark_value, CaseExpr::defresult, TableFunc::docexpr, ArrayCoerceExpr::elemexpr, elog(), WindowClause::endOffset, ERROR, OnConflictExpr::exclRelTlist, JsonObjectConstructor::exprs, JsonArrayConstructor::exprs, PartitionPruneStepOp::exprs, JsonValueExpr::formatted_expr, FromExpr::fromlist, JsonConstructorExpr::func, IndexClause::indexquals, JsonKeyValue::key, SetOperationStmt::larg, JoinExpr::larg, RowCompareExpr::largs, lfirst, lfirst_node, LIST_WALK, PartitionBoundSpec::listdatums, PartitionBoundSpec::lowerdatums, XmlExpr::named_args, FieldStore::newvals, nodeTag, OnConflictExpr::onConflictSet, OnConflictExpr::onConflictWhere, WindowClause::orderClause, JsonAggConstructor::over, WindowClause::partitionClause, JoinExpr::quals, FromExpr::quals, JsonArrayQueryConstructor::query, SetOperationStmt::rarg, JoinExpr::rarg, RowCompareExpr::rargs, JsonValueExpr::raw_expr, SubscriptingRef::refassgnexpr, SubscriptingRef::refexpr, SubscriptingRef::reflowerindexpr, SubscriptingRef::refupperindexpr, TableSampleClause::repeatable, IndexClause::rinfo, TableFunc::rowexpr, WindowClause::startOffset, SubLink::subselect, SubLink::testexpr, SubPlan::testexpr, AppendRelInfo::translated_vars, PartitionBoundSpec::upperdatums, PartitionRangeDatum::value, JsonKeyValue::value, and WALK.
Definition at line 1020 of file nodeFuncs.c.
References InvalidOid, and nodeTag.
Referenced by check_simple_rowfilter_expr_walker(), and resolve_polymorphic_tupdesc().
Definition at line 524 of file nodeFuncs.c.
References FuncExpr::args, COERCE_EXPLICIT_CAST, COERCE_IMPLICIT_CAST, Const::consttype, DatumGetInt32(), IsA, list_length(), and lsecond.
Referenced by deparseFuncExpr(), exprTypmod(), and get_func_expr().
int exprLocation | ( | const Node * | expr | ) |
Definition at line 1314 of file nodeFuncs.c.
References arg, TypeCast::arg, NamedArgExpr::arg, RelabelType::arg, CoerceViaIO::arg, ArrayCoerceExpr::arg, ConvertRowtypeExpr::arg, NullTest::arg, BooleanTest::arg, CoerceToDomain::arg, FuncExpr::args, OpExpr::args, ScalarArrayOpExpr::args, BoolExpr::args, XmlExpr::args, fc(), sort-test::key, leftmostLoc(), A_Expr::lexpr, lfirst, TypeName::location, A_Expr::location, TypeCast::location, FuncExpr::location, NamedArgExpr::location, OpExpr::location, ScalarArrayOpExpr::location, BoolExpr::location, SubLink::location, RelabelType::location, CoerceViaIO::location, ArrayCoerceExpr::location, ConvertRowtypeExpr::location, XmlExpr::location, NullTest::location, BooleanTest::location, CoerceToDomain::location, nodeTag, source, SubLink::testexpr, and TypeCast::typeName.
Referenced by addRangeTableEntryForFunction(), addRangeTableEntryForTableFunc(), addTargetToSortList(), analyzeCTE(), array_subscript_transform(), assign_collations_walker(), check_agg_arguments_walker(), check_simple_rowfilter_expr_walker(), check_srf_call_placement(), checkWellFormedRecursion(), coerce_to_boolean(), coerce_to_common_type(), coerce_to_specific_type_typmod(), coerceJsonFuncExpr(), EvaluateParams(), ExecInitFunc(), ExecInitSubscriptingRef(), finalize_grouping_exprs_walker(), get_matching_location(), hstore_subscript_transform(), init_sexpr(), jsonb_subscript_transform(), parseCheckAggregates(), ParseFuncOrColumn(), parser_coercion_errposition(), resolve_unique_index_expr(), select_common_type(), transformAggregateCall(), transformArrayExpr(), transformAssignedExpr(), transformCaseExpr(), transformCoalesceExpr(), transformContainerSubscripts(), transformDistinctClause(), transformDistinctOnClause(), transformFrameOffset(), transformFromClauseItem(), transformGroupClause(), transformGroupClauseExpr(), transformGroupingSet(), transformIndirection(), transformInsertRow(), transformInsertStmt(), transformJsonParseArg(), transformJsonValueExpr(), transformMultiAssignRef(), transformOnConflictArbiter(), transformPartitionBound(), transformPartitionBoundValue(), transformPartitionRangeBounds(), transformPLAssignStmt(), transformRangeFunction(), transformReturningList(), transformSelectStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformValuesClause(), and validateInfiniteBounds().
Definition at line 1068 of file nodeFuncs.c.
References arg, ARRAY_SUBLINK, Assert(), JsonConstructorExpr::coercion, elog(), ERROR, EXPR_SUBLINK, exprCollation(), if(), InvalidOid, IS_XMLSERIALIZE, IsA, linitial_node, nodeTag, OidIsValid, SubLink::subLinkType, SubLink::subselect, Query::targetList, and generate_unaccent_rules::type.
Referenced by assign_collations_walker().
Definition at line 1250 of file nodeFuncs.c.
References nodeTag.
Referenced by assign_collations_walker().
Definition at line 43 of file nodeFuncs.c.
References arg, ARRAY_SUBLINK, Assert(), elog(), ereport, errcode(), errmsg(), ERROR, InferenceElem::expr, EXPR_SUBLINK, SubPlan::firstColType, format_type_be(), JsonValueExpr::formatted_expr, get_promoted_array_type(), if(), InvalidOid, IS_DOCUMENT, IS_XMLSERIALIZE, IsA, linitial, linitial_node, MULTIEXPR_SUBLINK, nodeTag, OidIsValid, JsonValueExpr::raw_expr, SubLink::subLinkType, SubPlan::subLinkType, AlternativeSubPlan::subplans, SubLink::subselect, Query::targetList, and generate_unaccent_rules::type.
Referenced by add_row_identity_var(), addRangeTableEntryForFunction(), addRangeTableEntryForSubquery(), addTargetToGroupList(), addTargetToSortList(), agg_args_support_sendreceive(), analyzeCTE(), analyzeCTETargetList(), appendAggOrderBy(), appendOrderByClause(), applyRelabelType(), array_subscript_transform(), assign_collations_walker(), assign_hypothetical_collations(), assign_param_for_placeholdervar(), ATExecAlterColumnType(), ATPrepAlterColumnType(), build_coercion_expression(), build_column_default(), build_subplan(), can_minmax_aggs(), canonicalize_ec_expression(), check_functions_in_node(), check_hashjoinable(), check_memoizable(), check_mergejoinable(), check_simple_rowfilter_expr_walker(), check_sql_fn_retval(), checkRuleResultList(), coerce_fn_result_column(), coerce_record_to_complex(), coerce_to_boolean(), coerce_to_common_type(), coerce_to_specific_type_typmod(), coerceJsonFuncExpr(), compare_tlist_datatypes(), compute_semijoin_info(), ComputeIndexAttrs(), ComputePartitionAttrs(), ConstructTupleDescriptor(), contain_mutable_functions_walker(), convert_EXISTS_to_ANY(), cookDefault(), cost_qual_eval_walker(), create_ctas_nodata(), create_indexscan_plan(), CreateStatistics(), DefineVirtualRelation(), deparseNullTest(), deparseOpExpr(), estimate_num_groups(), eval_const_expressions_mutator(), EvaluateParams(), examine_attribute(), examine_expression(), examine_variable(), exec_save_simple_expr(), ExecBuildProjectionInfo(), ExecBuildUpdateProjection(), ExecCheckPlanOutput(), ExecEvalJsonIsPredicate(), ExecEvalXmlExpr(), ExecInitExprRec(), ExecInitIndexScan(), ExecMakeTableFunctionResult(), ExecTypeFromExprList(), ExecTypeFromTLInternal(), ExecWindowAgg(), expandRecordVariable(), expandRTE(), exprTypmod(), find_expr_references_walker(), find_placeholder_info(), fix_indexqual_operand(), foreign_expr_walker(), generate_append_tlist(), generate_join_implied_equalities_normal(), generate_setop_tlist(), generate_subquery_params(), generateClonedIndexStmt(), get_call_expr_argtype(), get_expr_result_tupdesc(), get_expr_result_type(), get_expr_width(), get_first_col_type(), get_fn_expr_rettype(), get_func_expr(), get_oper_expr(), get_rule_expr(), get_rule_expr_funccall(), get_rule_orderby(), get_simple_binary_op_name(), get_sublink_expr(), get_windowfunc_expr_helper(), GetIndexInputType(), hash_ok_operator(), hstore_subscript_transform(), initialize_peragg(), inline_function(), internal_get_result_type(), jsonb_exec_setup(), jsonb_subscript_transform(), make_op(), make_scalar_array_op(), makeCaseTestExpr(), makeVarFromTargetEntry(), makeWholeRowVar(), match_pattern_prefix(), ordered_set_startup(), paraminfo_get_equal_hashops(), ParseFuncOrColumn(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), prepare_query_params(), preprocess_aggref(), preprocess_minmax_aggregates(), ProcedureCreate(), process_equivalence(), process_matched_tle(), recheck_cast_function_args(), relabel_to_typmod(), RelationBuildPartitionKey(), RelationGetDummyIndexExpressions(), remove_unused_subquery_outputs(), replace_nestloop_param_placeholdervar(), replace_outer_grouping(), replace_outer_placeholdervar(), resolveTargetListUnknowns(), scalararraysel(), select_common_type(), select_common_typmod(), set_append_rel_size(), set_dummy_tlist_references(), set_joinrel_partition_key_exprs(), set_rel_width(), show_sortorder_options(), tlist_same_datatypes(), transformAExprNullIf(), transformAggregateCall(), transformArrayExpr(), transformAssignedExpr(), transformAssignmentIndirection(), transformAssignmentSubscripts(), transformCaseExpr(), transformCollateClause(), transformExprRecurse(), transformFrameOffset(), transformFromClauseItem(), transformIndirection(), transformInsertStmt(), transformJsonConstructorOutput(), transformJsonParseArg(), transformJsonValueExpr(), transformMultiAssignRef(), transformPartitionBoundValue(), transformPLAssignStmt(), transformSetOperationTree(), transformSubLink(), transformTypeCast(), unknown_attribute(), verify_common_type(), and xmlelement().
Definition at line 284 of file nodeFuncs.c.
References arg, OpExpr::args, CaseExpr::args, CoalesceExpr::args, MinMaxExpr::args, ARRAY_SUBLINK, Assert(), CaseExpr::defresult, ArrayExpr::elements, elog(), ERROR, EXPR_SUBLINK, exprIsLengthCoercion(), exprType(), SubPlan::firstColTypmod, for_each_from, if(), IsA, lfirst, lfirst_node, linitial, linitial_node, NIL, nodeTag, CaseWhen::result, SubLink::subLinkType, SubPlan::subLinkType, AlternativeSubPlan::subplans, SubLink::subselect, and Query::targetList.
Referenced by add_row_identity_var(), addRangeTableEntryForFunction(), addRangeTableEntryForSubquery(), analyzeCTE(), analyzeCTETargetList(), applyRelabelType(), assign_hypothetical_collations(), build_coercion_expression(), build_subplan(), canonicalize_ec_expression(), checkRuleResultList(), coerce_type_typmod(), ConstructTupleDescriptor(), convert_EXISTS_to_ANY(), create_ctas_nodata(), DefineVirtualRelation(), eval_const_expressions_mutator(), examine_attribute(), examine_expression(), examine_variable(), exec_save_simple_expr(), ExecTypeFromExprList(), ExecTypeFromTLInternal(), expandRecordVariable(), expandRTE(), find_placeholder_info(), generate_append_tlist(), generate_setop_tlist(), generate_subquery_params(), get_expr_result_type(), get_expr_width(), get_first_col_type(), get_rule_expr(), get_rule_expr_funccall(), interval_support(), makeCaseTestExpr(), makeVarFromTargetEntry(), numeric_support(), preprocess_aggref(), RelationBuildPartitionKey(), RelationGetDummyIndexExpressions(), remove_unused_subquery_outputs(), replace_nestloop_param_placeholdervar(), replace_outer_placeholdervar(), select_common_typmod(), set_append_rel_size(), set_dummy_tlist_references(), set_rel_width(), TemporalSimplify(), transformCaseExpr(), transformFromClauseItem(), transformIndirection(), transformMultiAssignRef(), transformPLAssignStmt(), transformSubLink(), varbit_support(), and varchar_support().
void fix_opfuncids | ( | Node * | node | ) |
Definition at line 1750 of file nodeFuncs.c.
References fix_opfuncids_walker().
Referenced by evaluate_expr(), expression_planner(), expression_planner_with_deps(), fetch_statentries_for_relation(), get_qual_for_range(), get_relation_statistics(), operator_predicate_proof(), RelationBuildPartitionKey(), RelationGetIndexExpressions(), and RelationGetIndexPredicate().
|
inlinestatic |
Definition at line 81 of file nodeFuncs.h.
References OpExpr::args, linitial, and NIL.
Referenced by addRangeClause(), ExecIndexBuildScanKeys(), final_cost_hashjoin(), initialize_mergeclause_eclasses(), make_restrictinfo_internal(), MakeTidOpExpr(), match_clause_to_ordering_op(), match_clause_to_partition_key(), match_foreign_keys_to_quals(), mergejoinscansel(), print_expr(), process_equivalence(), reconsider_full_join_clause(), reconsider_outer_join_clause(), rel_is_distinct_for(), relation_has_unique_index_for(), and TidExprListCreate().
|
inlinestatic |
Definition at line 132 of file nodeFuncs.h.
References generate_unaccent_rules::args, and linitial.
Referenced by clause_selectivity_ext(), dependency_is_compatible_clause(), dependency_is_compatible_expression(), match_boolean_index_clause(), match_boolean_partition_clause(), matches_boolean_partition_clause(), predicate_implied_by_simple_clause(), and pull_up_sublinks_qual_recurse().
|
inlinestatic |
Definition at line 93 of file nodeFuncs.h.
References OpExpr::args, list_length(), and lsecond.
Referenced by addRangeClause(), ExecIndexBuildScanKeys(), final_cost_hashjoin(), initialize_mergeclause_eclasses(), make_restrictinfo_internal(), MakeTidOpExpr(), match_clause_to_ordering_op(), match_clause_to_partition_key(), match_foreign_keys_to_quals(), mergejoinscansel(), print_expr(), process_equivalence(), reconsider_full_join_clause(), reconsider_outer_join_clause(), rel_is_distinct_for(), relation_has_unique_index_for(), and TidExprListCreate().
|
inlinestatic |
Definition at line 105 of file nodeFuncs.h.
References AND_EXPR, boolop(), and IsA.
Referenced by clause_selectivity_ext(), ExecInitSubPlan(), extract_or_clause(), find_duplicate_ors(), find_single_rel_for_clauses(), gen_partprune_steps_internal(), generate_bitmap_or_paths(), make_ands_implicit(), make_restrictinfo(), make_sub_restrictinfos(), mcv_get_match_bitmap(), predicate_classify(), process_duplicate_ors(), process_sublinks_mutator(), pull_ands(), pull_up_sublinks_qual_recurse(), remove_rel_from_restrictinfo(), simplify_and_arguments(), statext_is_compatible_clause(), statext_is_compatible_clause_internal(), testexpr_is_hashable(), and TidQualFromRestrictInfoList().
|
inlinestatic |
Definition at line 67 of file nodeFuncs.h.
References IsA.
Referenced by array_unnest_support(), clause_is_strict_for(), clause_selectivity_ext(), generate_series_int4_support(), generate_series_int8_support(), like_regex_support(), and network_subset_support().
|
inlinestatic |
Definition at line 123 of file nodeFuncs.h.
References boolop(), IsA, and NOT_EXPR.
Referenced by clause_selectivity_ext(), dependency_is_compatible_clause(), dependency_is_compatible_expression(), match_boolean_index_clause(), match_boolean_partition_clause(), matches_boolean_partition_clause(), mcv_get_match_bitmap(), predicate_implied_by_simple_clause(), pull_up_sublinks_qual_recurse(), and statext_is_compatible_clause_internal().
|
inlinestatic |
Definition at line 74 of file nodeFuncs.h.
References IsA.
Referenced by check_hashjoinable(), check_memoizable(), check_mergejoinable(), clause_is_strict_for(), clause_selectivity_ext(), clauselist_selectivity_ext(), CommuteOpExpr(), create_hashjoin_plan(), dependency_is_compatible_clause(), dependency_is_compatible_expression(), get_switched_clauses(), IsBinaryTidClause(), like_regex_support(), make_restrictinfo_internal(), match_clause_to_ordering_op(), mcv_get_match_bitmap(), mergejoinscansel(), network_subset_support(), operator_predicate_proof(), predicate_implied_by_simple_clause(), process_equivalence(), reconsider_full_join_clause(), reconsider_outer_join_clause(), statext_is_compatible_clause_internal(), and TidExprListCreate().
|
inlinestatic |
Definition at line 114 of file nodeFuncs.h.
References boolop(), IsA, and OR_EXPR.
Referenced by clause_selectivity_ext(), dependency_is_compatible_clause(), dependency_is_compatible_expression(), extract_or_clause(), find_duplicate_ors(), gen_partprune_steps_internal(), make_restrictinfo(), make_sub_restrictinfos(), mcv_get_match_bitmap(), predicate_classify(), process_sublinks_mutator(), pull_ors(), remove_rel_from_restrictinfo(), simplify_or_arguments(), and statext_is_compatible_clause_internal().
bool planstate_tree_walker_impl | ( | struct PlanState * | planstate, |
planstate_tree_walker_callback | walker, | ||
void * | context | ||
) |
Definition at line 4423 of file nodeFuncs.c.
References check_stack_depth(), PlanState::initPlan, innerPlanState, lfirst, nodeTag, outerPlanState, PlanState::plan, plan, planstate_walk_members(), planstate_walk_subplans(), PSWALK, and PlanState::subPlan.
Node* query_or_expression_tree_mutator_impl | ( | Node * | node, |
tree_mutator_callback | mutator, | ||
void * | context, | ||
int | flags | ||
) |
bool query_or_expression_tree_walker_impl | ( | Node * | node, |
tree_walker_callback | walker, | ||
void * | context, | ||
int | flags | ||
) |
Query* query_tree_mutator_impl | ( | Query * | query, |
tree_mutator_callback | mutator, | ||
void * | context, | ||
int | flags | ||
) |
Definition at line 3589 of file nodeFuncs.c.
References Assert(), copyObject, Query::cteList, Query::distinctClause, WindowClause::endOffset, FLATCOPY, Query::groupClause, Query::havingQual, IsA, Query::jointree, lappend(), lfirst_node, Query::limitCount, Query::limitOffset, Query::mergeActionList, MUTATE, NIL, Query::onConflict, QTW_DONT_COPY_QUERY, QTW_EXAMINE_SORTGROUP, QTW_IGNORE_CTE_SUBQUERIES, range_table_mutator, Query::returningList, Query::rtable, Query::setOperations, Query::sortClause, WindowClause::startOffset, Query::targetList, and Query::windowClause.
bool query_tree_walker_impl | ( | Query * | query, |
tree_walker_callback | walker, | ||
void * | context, | ||
int | flags | ||
) |
Definition at line 2565 of file nodeFuncs.c.
References Assert(), Query::cteList, Query::distinctClause, WindowClause::endOffset, Query::groupClause, Query::havingQual, IsA, Query::jointree, lfirst_node, Query::limitCount, Query::limitOffset, Query::mergeActionList, Query::onConflict, QTW_EXAMINE_SORTGROUP, QTW_IGNORE_CTE_SUBQUERIES, QTW_IGNORE_RANGE_TABLE, range_table_walker, Query::returningList, Query::rtable, Query::setOperations, Query::sortClause, WindowClause::startOffset, Query::targetList, WALK, and Query::windowClause.
bool range_table_entry_walker_impl | ( | RangeTblEntry * | rte, |
tree_walker_callback | walker, | ||
void * | context, | ||
int | flags | ||
) |
Definition at line 2687 of file nodeFuncs.c.
References RangeTblEntry::functions, RangeTblEntry::joinaliasvars, QTW_EXAMINE_RTES_AFTER, QTW_EXAMINE_RTES_BEFORE, QTW_IGNORE_JOINALIASES, QTW_IGNORE_RT_SUBQUERIES, RTE_CTE, RTE_FUNCTION, RTE_JOIN, RTE_NAMEDTUPLESTORE, RTE_RELATION, RTE_RESULT, RTE_SUBQUERY, RTE_TABLEFUNC, RTE_VALUES, RangeTblEntry::rtekind, RangeTblEntry::securityQuals, RangeTblEntry::subquery, RangeTblEntry::tablefunc, RangeTblEntry::tablesample, RangeTblEntry::values_lists, and WALK.
List* range_table_mutator_impl | ( | List * | rtable, |
tree_mutator_callback | mutator, | ||
void * | context, | ||
int | flags | ||
) |
Definition at line 3679 of file nodeFuncs.c.
References copyObject, FLATCOPY, RangeTblEntry::functions, RangeTblEntry::joinaliasvars, lappend(), lfirst, MUTATE, NIL, QTW_IGNORE_JOINALIASES, QTW_IGNORE_RT_SUBQUERIES, RTE_CTE, RTE_FUNCTION, RTE_JOIN, RTE_NAMEDTUPLESTORE, RTE_RELATION, RTE_RESULT, RTE_SUBQUERY, RTE_TABLEFUNC, RTE_VALUES, RangeTblEntry::rtekind, RangeTblEntry::securityQuals, RangeTblEntry::subquery, RangeTblEntry::tablefunc, RangeTblEntry::tablesample, and RangeTblEntry::values_lists.
bool range_table_walker_impl | ( | List * | rtable, |
tree_walker_callback | walker, | ||
void * | context, | ||
int | flags | ||
) |
bool raw_expression_tree_walker_impl | ( | Node * | node, |
tree_walker_callback | walker, | ||
void * | context | ||
) |
Definition at line 3802 of file nodeFuncs.c.