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 155 of file nodeFuncs.h.
#define expression_tree_walker | ( | n, | |
w, | |||
c | |||
) | expression_tree_walker_impl(n, (tree_walker_callback) (w), c) |
Definition at line 153 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 179 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_GROUPEXPRS 0x100 /* GROUP expressions list */ |
Definition at line 32 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 173 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 171 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 160 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 158 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 168 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 165 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 163 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 176 of file nodeFuncs.h.
Definition at line 35 of file nodeFuncs.h.
Definition at line 39 of file nodeFuncs.h.
Definition at line 43 of file nodeFuncs.h.
Definition at line 38 of file nodeFuncs.h.
Node* applyRelabelType | ( | Node * | arg, |
Oid | rtype, | ||
int32 | rtypmod, | ||
Oid | rcollid, | ||
CoercionForm | rformat, | ||
int | rlocation, | ||
bool | overwrite_ok | ||
) |
Definition at line 631 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 1899 of file nodeFuncs.c.
References Aggref::aggfnoid, CoerceViaIO::arg, context, 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 816 of file nodeFuncs.c.
References arg, ARRAY_SUBLINK, Assert, JsonConstructorExpr::coercion, JsonExpr::collation, elog, ERROR, JsonBehavior::expr, EXPR_SUBLINK, SubPlan::firstColCollation, if(), InvalidOid, IS_XMLSERIALIZE, IsA, linitial, linitial_node, nodeTag, SubLink::subLinkType, SubPlan::subLinkType, AlternativeSubPlan::subplans, SubLink::subselect, Query::targetList, and type.
Referenced by addRangeTableEntryForFunction(), addRangeTableEntryForGroup(), 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_attr_stat_type(), 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(), makeJsonConstructorExpr(), 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(), transformJsonTableColumns(), transformMultiAssignRef(), transformPLAssignStmt(), transformSubLink(), and transformWindowDefinitions().
Definition at line 758 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(), mark_nullable_by_grouping(), relation_can_be_sorted_early(), remove_unused_subquery_outputs(), subquery_planner(), and transformJsonBehavior().
Node* expression_tree_mutator_impl | ( | Node * | node, |
tree_mutator_callback | mutator, | ||
void * | context | ||
) |
Definition at line 2937 of file nodeFuncs.c.
References generate_unaccent_rules::action, Aggref::aggdirectargs, Aggref::aggdistinct, Aggref::aggfilter, WindowFunc::aggfilter, Aggref::aggorder, OnConflictExpr::arbiterElems, OnConflictExpr::arbiterWhere, WindowFuncRunCondition::arg, 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, context, 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, JsonBehavior::expr, InferenceElem::expr, TargetEntry::expr, PartitionPruneStepOp::exprs, FLATCOPY, JsonReturning::format, JsonValueExpr::format, JsonIsPredicate::format, JsonValueExpr::formatted_expr, JsonExpr::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, JsonExpr::on_empty, JsonExpr::on_error, OnConflictExpr::onConflictSet, OnConflictExpr::onConflictWhere, WindowClause::orderClause, WindowClause::partitionClause, JsonExpr::passing_values, JsonExpr::path_spec, 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 2082 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, WindowFuncRunCondition::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, JsonBehavior::expr, JsonObjectConstructor::exprs, JsonArrayConstructor::exprs, PartitionPruneStepOp::exprs, JsonValueExpr::formatted_expr, JsonExpr::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, JsonExpr::on_empty, JsonExpr::on_error, OnConflictExpr::onConflictSet, OnConflictExpr::onConflictWhere, WindowClause::orderClause, JsonAggConstructor::over, WindowClause::partitionClause, JsonExpr::passing_values, JsonExpr::path_spec, 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 1068 of file nodeFuncs.c.
References InvalidOid, and nodeTag.
Referenced by check_simple_rowfilter_expr_walker(), and resolve_polymorphic_tupdesc().
Definition at line 552 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 1380 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(), JsonExpr::formatted_expr, 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, JsonExpr::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(), transformJsonBehavior(), transformJsonFuncExpr(), transformJsonParseArg(), transformJsonValueExpr(), transformMultiAssignRef(), transformOnConflictArbiter(), transformPartitionBound(), transformPartitionBoundValue(), transformPartitionRangeBounds(), transformPLAssignStmt(), transformRangeFunction(), transformReturningList(), transformSelectStmt(), transformSetOperationStmt(), transformSetOperationTree(), transformValuesClause(), and validateInfiniteBounds().
Definition at line 1116 of file nodeFuncs.c.
References arg, ARRAY_SUBLINK, Assert, JsonConstructorExpr::coercion, JsonExpr::collation, elog, ERROR, JsonBehavior::expr, EXPR_SUBLINK, exprCollation(), if(), InvalidOid, IS_XMLSERIALIZE, IsA, linitial_node, nodeTag, OidIsValid, SubLink::subLinkType, SubLink::subselect, Query::targetList, and type.
Referenced by assign_collations_walker().
Definition at line 1316 of file nodeFuncs.c.
References nodeTag.
Referenced by assign_collations_walker().
Definition at line 42 of file nodeFuncs.c.
References arg, ARRAY_SUBLINK, Assert, elog, ereport, errcode(), errmsg(), ERROR, JsonBehavior::expr, 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, JsonExpr::returning, SubLink::subLinkType, SubPlan::subLinkType, AlternativeSubPlan::subplans, SubLink::subselect, Query::targetList, type, and JsonReturning::typid.
Referenced by add_row_identity_var(), add_setop_child_rel_equivalences(), addRangeTableEntryForFunction(), addRangeTableEntryForGroup(), 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(), calculate_frame_offsets(), CallStmtResultDesc(), 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(), ExecInitJsonExpr(), ExecInitSubPlanExpr(), ExecMakeTableFunctionResult(), ExecTypeFromExprList(), ExecTypeFromTLInternal(), 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_attr_stat_type(), 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(), JsonTableInitOpaque(), make_op(), make_scalar_array_op(), makeJsonConstructorExpr(), 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_merge_support(), 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(), transformJsonBehavior(), transformJsonConstructorOutput(), transformJsonFuncExpr(), transformJsonParseArg(), transformJsonScalarExpr(), transformJsonTableColumns(), transformJsonValueExpr(), transformMultiAssignRef(), transformPartitionBoundValue(), transformPLAssignStmt(), transformSetOperationTree(), transformSubLink(), transformTypeCast(), unknown_attribute(), verify_common_type(), and xmlelement().
Definition at line 298 of file nodeFuncs.c.
References arg, OpExpr::args, CaseExpr::args, CoalesceExpr::args, MinMaxExpr::args, ARRAY_SUBLINK, Assert, CaseExpr::defresult, ArrayExpr::elements, elog, ERROR, JsonBehavior::expr, EXPR_SUBLINK, exprIsLengthCoercion(), exprType(), SubPlan::firstColTypmod, for_each_from, if(), IsA, lfirst, lfirst_node, linitial, linitial_node, NIL, nodeTag, CaseWhen::result, JsonExpr::returning, SubLink::subLinkType, SubPlan::subLinkType, AlternativeSubPlan::subplans, SubLink::subselect, Query::targetList, and JsonReturning::typmod.
Referenced by add_row_identity_var(), addRangeTableEntryForFunction(), addRangeTableEntryForGroup(), 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(), ExecInitJsonExpr(), ExecTypeFromExprList(), ExecTypeFromTLInternal(), expandRecordVariable(), expandRTE(), find_placeholder_info(), generate_append_tlist(), generate_setop_tlist(), generate_subquery_params(), get_attr_stat_type(), get_expr_result_type(), get_expr_width(), get_first_col_type(), get_rule_expr(), get_rule_expr_funccall(), interval_support(), JsonTableInitOpaque(), makeJsonConstructorExpr(), 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(), transformJsonTableColumns(), transformMultiAssignRef(), transformPLAssignStmt(), transformSubLink(), varbit_support(), and varchar_support().
void fix_opfuncids | ( | Node * | node | ) |
Definition at line 1830 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 83 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 134 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 95 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 107 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 69 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(), generate_series_timestamp_support(), like_regex_support(), and network_subset_support().
|
inlinestatic |
Definition at line 125 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 76 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(), process_equivalence(), reconsider_full_join_clause(), reconsider_outer_join_clause(), statext_is_compatible_clause_internal(), and TidExprListCreate().
|
inlinestatic |
Definition at line 116 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(), restriction_is_always_false(), restriction_is_always_true(), 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 4689 of file nodeFuncs.c.
References check_stack_depth(), context, 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 3754 of file nodeFuncs.c.
References Assert, context, copyObject, Query::cteList, Query::distinctClause, WindowClause::endOffset, FLATCOPY, Query::groupClause, Query::havingQual, IsA, Query::jointree, lappend(), lfirst_node, Query::limitCount, Query::limitOffset, Query::mergeActionList, Query::mergeJoinCondition, 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 2685 of file nodeFuncs.c.
References Assert, context, Query::cteList, Query::distinctClause, WindowClause::endOffset, Query::groupClause, Query::havingQual, IsA, Query::jointree, lfirst_node, Query::limitCount, Query::limitOffset, Query::mergeActionList, Query::mergeJoinCondition, 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 2809 of file nodeFuncs.c.
References RangeTblEntry::functions, QTW_EXAMINE_RTES_AFTER, QTW_EXAMINE_RTES_BEFORE, QTW_IGNORE_GROUPEXPRS, QTW_IGNORE_JOINALIASES, QTW_IGNORE_RT_SUBQUERIES, RTE_CTE, RTE_FUNCTION, RTE_GROUP, RTE_JOIN, RTE_NAMEDTUPLESTORE, RTE_RELATION, RTE_RESULT, RTE_SUBQUERY, RTE_TABLEFUNC, RTE_VALUES, RangeTblEntry::rtekind, 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 3845 of file nodeFuncs.c.
References copyObject, FLATCOPY, RangeTblEntry::functions, lappend(), lfirst, MUTATE, NIL, QTW_IGNORE_GROUPEXPRS, QTW_IGNORE_JOINALIASES, QTW_IGNORE_RT_SUBQUERIES, RTE_CTE, RTE_FUNCTION, RTE_GROUP, RTE_JOIN, RTE_NAMEDTUPLESTORE, RTE_RELATION, RTE_RESULT, RTE_SUBQUERY, RTE_TABLEFUNC, RTE_VALUES, RangeTblEntry::rtekind, 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 | ||
) |
Definition at line 2788 of file nodeFuncs.c.
References context, lfirst_node, and range_table_entry_walker.
bool raw_expression_tree_walker_impl | ( | Node * | node, |
tree_walker_callback | walker, | ||
void * | context | ||
) |
Definition at line 3977 of file nodeFuncs.c.