|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/stratnum.h"#include "access/sysattr.h"#include "catalog/dependency.h"#include "catalog/pg_am.h"#include "catalog/pg_operator.h"#include "catalog/pg_proc.h"#include "catalog/pg_type.h"#include "commands/defrem.h"#include "miscadmin.h"#include "nodes/makefuncs.h"#include "nodes/nodeFuncs.h"#include "nodes/queryjumble.h"#include "optimizer/optimizer.h"#include "parser/analyze.h"#include "parser/parse_agg.h"#include "parser/parse_clause.h"#include "parser/parse_coerce.h"#include "parser/parse_collate.h"#include "parser/parse_cte.h"#include "parser/parse_expr.h"#include "parser/parse_func.h"#include "parser/parse_merge.h"#include "parser/parse_oper.h"#include "parser/parse_param.h"#include "parser/parse_relation.h"#include "parser/parse_target.h"#include "parser/parse_type.h"#include "parser/parsetree.h"#include "utils/backend_status.h"#include "utils/builtins.h"#include "utils/fmgroids.h"#include "utils/guc.h"#include "utils/lsyscache.h"#include "utils/rangetypes.h"#include "utils/rel.h"#include "utils/syscache.h"
Go to the source code of this file.
Data Structures | |
| struct | SelectStmtPassthrough |
Typedefs | |
| typedef struct SelectStmtPassthrough | SelectStmtPassthrough |
Variables | |
| post_parse_analyze_hook_type | post_parse_analyze_hook = NULL |
|
static |
Definition at line 3024 of file analyze.c.
References addNSItemToQuery(), fb(), i, list_length(), makeAlias(), memcpy(), ParseNamespaceItem::p_nscolumns, ParseNamespaceItem::p_perminfo, ParseNamespaceItem::p_rte, ParseNamespaceItem::p_rtindex, ParseState::p_target_nsitem, palloc_array, and palloc_object.
Referenced by transformReturningClause().
Definition at line 513 of file analyze.c.
References fb(), and stmt_requires_parse_analysis().
Referenced by BuildingPlanRequiresSnapshot(), exec_bind_message(), exec_parse_message(), and exec_simple_query().
| void applyLockingClause | ( | Query * | qry, |
| Index | rtindex, | ||
| LockClauseStrength | strength, | ||
| LockWaitPolicy | waitPolicy, | ||
| bool | pushedDown | ||
| ) |
Definition at line 4032 of file analyze.c.
References Assert, fb(), get_parse_rowmark(), lappend(), LCS_NONE, makeNode, Max, RowMarkClause::pushedDown, Query::rowMarks, RowMarkClause::rti, RowMarkClause::strength, and RowMarkClause::waitPolicy.
Referenced by markQueryForLocking(), and transformLockingClause().
Definition at line 1624 of file analyze.c.
References fb(), InvalidAttrNumber, InvalidOid, lappend(), makeNullConst(), makeTargetEntry(), makeVar(), name, NameStr, NIL, pstrdup(), RelationGetNumberOfAttributes, result, and TupleDescAttr().
Referenced by rewriteTargetView(), and transformOnConflictClause().
| void CheckSelectLocking | ( | Query * | qry, |
| LockClauseStrength | strength | ||
| ) |
Definition at line 3741 of file analyze.c.
References Assert, Query::distinctClause, ereport, errcode(), errmsg, ERROR, fb(), Query::groupClause, Query::groupingSets, Query::havingQual, LCS_asString(), LCS_NONE, NIL, and Query::setOperations.
Referenced by preprocess_rowmarks(), and transformLockingClause().
| void constructSetOpTargetlist | ( | ParseState * | pstate, |
| SetOperationStmt * | op, | ||
| const List * | ltargetlist, | ||
| const List * | rtargetlist, | ||
| List ** | targetlist, | ||
| const char * | context, | ||
| bool | recursive | ||
| ) |
Definition at line 2605 of file analyze.c.
References SetOperationStmt::all, cancel_parser_errposition_callback(), coerce_to_common_type(), ereport, errcode(), errmsg, ERROR, exprLocation(), exprType(), fb(), forboth, IsA, lappend(), lappend_int(), lappend_oid(), lfirst, list_length(), list_make2, makeNode, makeSortGroupClauseForSetOp(), makeTargetEntry(), NIL, SetOperationStmt::op, parser_errposition(), select_common_collation(), select_common_type(), select_common_typmod(), SETOP_UNION, and setup_parser_errposition_callback().
Referenced by generate_setop_from_pathqueries(), and transformSetOperationTree().
|
static |
Definition at line 1694 of file analyze.c.
References attnum, fb(), get_tle_by_resno(), GetRTEByRangeTablePosn(), IsA, list_length(), RTE_SUBQUERY, Var::varattno, Var::varlevelsup, and Var::varno.
Referenced by transformInsertRow().
|
static |
Definition at line 2769 of file analyze.c.
References analyzeCTETargetList(), Assert, fb(), forboth, IsA, lappend(), lfirst, makeTargetEntry(), NIL, ParseState::p_parent_cte, ParseState::p_rtable, pstrdup(), and rt_fetch.
Referenced by transformSetOperationTree().
| const char * LCS_asString | ( | LockClauseStrength | strength | ) |
Definition at line 3716 of file analyze.c.
References Assert, LCS_FORKEYSHARE, LCS_FORNOKEYUPDATE, LCS_FORSHARE, LCS_FORUPDATE, and LCS_NONE.
Referenced by CheckSelectLocking(), grouping_planner(), make_outerjoininfo(), transformDeclareCursorStmt(), transformLockingClause(), transformSetOperationStmt(), transformSetOperationTree(), and transformValuesClause().
| SortGroupClause * makeSortGroupClauseForSetOp | ( | Oid | rescoltype, |
| bool | require_hash | ||
| ) |
Definition at line 2373 of file analyze.c.
References fb(), get_sort_group_operators(), and makeNode.
Referenced by constructSetOpTargetlist(), and rewriteSearchAndCycle().
| Query * parse_analyze_fixedparams | ( | RawStmt * | parseTree, |
| const char * | sourceText, | ||
| const Oid * | paramTypes, | ||
| int | numParams, | ||
| QueryEnvironment * | queryEnv | ||
| ) |
Definition at line 127 of file analyze.c.
References Assert, fb(), free_parsestate(), IsQueryIdEnabled(), JumbleQuery(), make_parsestate(), ParseState::p_queryEnv, ParseState::p_sourcetext, pgstat_report_query_id(), post_parse_analyze_hook, setup_parse_fixed_parameters(), and transformTopLevelStmt().
Referenced by DefineView(), and pg_analyze_and_rewrite_fixedparams().
| Query * parse_analyze_varparams | ( | RawStmt * | parseTree, |
| const char * | sourceText, | ||
| Oid ** | paramTypes, | ||
| int * | numParams, | ||
| QueryEnvironment * | queryEnv | ||
| ) |
Definition at line 167 of file analyze.c.
References Assert, check_variable_parameters(), fb(), free_parsestate(), IsQueryIdEnabled(), JumbleQuery(), make_parsestate(), ParseState::p_queryEnv, ParseState::p_sourcetext, pgstat_report_query_id(), post_parse_analyze_hook, setup_parse_variable_parameters(), and transformTopLevelStmt().
Referenced by pg_analyze_and_rewrite_varparams().
| Query * parse_analyze_withcb | ( | RawStmt * | parseTree, |
| const char * | sourceText, | ||
| ParserSetupHook | parserSetup, | ||
| void * | parserSetupArg, | ||
| QueryEnvironment * | queryEnv | ||
| ) |
Definition at line 208 of file analyze.c.
References Assert, fb(), free_parsestate(), IsQueryIdEnabled(), JumbleQuery(), make_parsestate(), ParseState::p_queryEnv, ParseState::p_sourcetext, pgstat_report_query_id(), post_parse_analyze_hook, and transformTopLevelStmt().
Referenced by pg_analyze_and_rewrite_withcb().
| Query * parse_sub_analyze | ( | Node * | parseTree, |
| ParseState * | parentParseState, | ||
| CommonTableExpr * | parentCTE, | ||
| bool | locked_from_parent, | ||
| bool | resolve_unknowns | ||
| ) |
Definition at line 244 of file analyze.c.
References fb(), free_parsestate(), make_parsestate(), ParseState::p_locked_from_parent, ParseState::p_parent_cte, ParseState::p_resolve_unknowns, and transformStmt().
Referenced by analyzeCTE(), transformRangeSubselect(), transformSetOperationTree(), and transformSubLink().
Definition at line 542 of file analyze.c.
References CMD_UTILITY, Query::commandType, fb(), nodeTag, result, and Query::utilityStmt.
Referenced by BuildingPlanRequiresSnapshot(), and StmtPlanRequiresRevalidation().
Definition at line 469 of file analyze.c.
References fb(), nodeTag, and result.
Referenced by analyze_requires_snapshot(), and StmtPlanRequiresRevalidation().
|
static |
Definition at line 3591 of file analyze.c.
References ARR_DATA_PTR, ARR_DIMS, ARR_ELEMTYPE, ARR_HASNULL, ARR_NDIM, assign_expr_collations(), castNode, CMD_UTILITY, copyObject, DatumGetArrayTypeP, elog, ERROR, expand_function_arguments(), EXPR_KIND_CALL_ARGUMENT, fb(), HeapTupleIsValid, i, lappend(), lfirst, list_length(), makeNode, NIL, ObjectIdGetDatum(), ParseState::p_last_srf, ParseFuncOrColumn(), ReleaseSysCache(), result, SearchSysCache1(), stmt, SysCacheGetAttr(), and transformExpr().
Referenced by transformStmt().
|
static |
Definition at line 3512 of file analyze.c.
References CMD_UTILITY, copyObject, ereport, errcode(), errdetail(), errmsg, ERROR, fb(), getObjectDescription(), makeNode, OBJECT_MATVIEW, query_contains_extern_params(), query_uses_temp_object(), result, stmt, and transformStmt().
Referenced by transformStmt().
|
static |
Definition at line 3367 of file analyze.c.
References CMD_SELECT, CMD_UTILITY, Query::commandType, CURSOR_OPT_ASENSITIVE, CURSOR_OPT_HOLD, CURSOR_OPT_INSENSITIVE, CURSOR_OPT_NO_SCROLL, CURSOR_OPT_SCROLL, elog, ereport, errcode(), errdetail(), errmsg, ERROR, fb(), IsA, LCS_asString(), linitial, makeNode, NIL, result, Query::rowMarks, stmt, and transformStmt().
Referenced by transformStmt().
|
static |
Definition at line 575 of file analyze.c.
References ACL_DELETE, assign_query_collations(), CMD_DELETE, Query::commandType, Query::cteList, Query::distinctClause, ereport, errcode(), errmsg, ERROR, EXPR_KIND_RETURNING, EXPR_KIND_WHERE, fb(), Query::forPortionOf, IsA, Query::jointree, makeFromExpr(), makeNode, NIL, ParseState::p_hasAggs, ParseState::p_hasModifyingCTE, ParseState::p_hasSubLinks, ParseState::p_hasTargetSRFs, ParseState::p_hasWindowFuncs, ParseState::p_joinlist, ParseState::p_rtable, ParseState::p_rteperminfos, ParseState::p_target_nsitem, ParseState::p_target_relation, parseCheckAggregates(), RelationData::rd_rel, Query::rtable, setTargetTable(), stmt, transformForPortionOfClause(), transformFromClause(), transformReturningClause(), transformWhereClause(), and transformWithClause().
Referenced by transformStmt().
|
static |
Definition at line 3460 of file analyze.c.
References check_variable_parameters(), CMD_UTILITY, defGetBoolean(), DefElem::defname, fb(), lfirst, makeNode, ParseState::p_paramref_hook, result, setup_parse_variable_parameters(), stmt, and transformOptionalSelectInto().
Referenced by transformStmt().
|
static |
Definition at line 1319 of file analyze.c.
References OpExpr::args, attnameAttNum(), bms_add_member(), can_coerce_type(), COERCE_EXPLICIT_CALL, COERCE_IMPLICIT_CAST, coerce_type(), COERCION_IMPLICIT, COMPARE_OVERLAP, contain_volatile_functions_after_planning(), copyObject, elog, ereport, errcode(), errhint(), errmsg, ERROR, EXPR_KIND_FOR_PORTION, exprLocation(), exprType(), fb(), FirstLowInvalidHeapAttributeNumber, format_type_be(), get_opclass_opfamily_and_input_type(), get_opcode(), get_range_constructor2(), get_range_subtype(), getBaseType(), GetDefaultOpClass(), GetOperatorFromCompareType(), InvalidAttrNumber, InvalidOid, lappend(), list_make2, ForPortionOfClause::location, Var::location, make_fn_arguments(), makeFuncExpr(), makeNode, makeTargetEntry(), makeVar(), markVarForSelectPriv(), NIL, OidIsValid, OpExpr::opno, ParseNamespaceItem::p_perminfo, ParseState::p_target_nsitem, ParseState::p_target_relation, parser_errposition(), ForPortionOfClause::range_name, RelationGetRelationName, result, ForPortionOfClause::target, ForPortionOfClause::target_end, ForPortionOfClause::target_location, ForPortionOfClause::target_start, transformExpr(), TupleDescAttr(), type_is_multirange(), and type_is_range().
Referenced by transformDeleteStmt(), and transformUpdateStmt().
| List * transformInsertRow | ( | ParseState * | pstate, |
| List * | exprlist, | ||
| List * | stmtcols, | ||
| List * | icolumns, | ||
| List * | attrnos, | ||
| bool | strip_indirection | ||
| ) |
Definition at line 1102 of file analyze.c.
References count_rowexpr_columns(), ereport, errcode(), errhint(), errmsg, ERROR, EXPR_KIND_INSERT_TARGET, exprLocation(), fb(), forthree, IsA, lappend(), lfirst, lfirst_int, lfirst_node, linitial, list_length(), list_nth(), FieldStore::newvals, NIL, parser_errposition(), SubscriptingRef::refassgnexpr, result, and transformAssignedExpr().
Referenced by transformInsertStmt(), and transformMergeStmt().
|
static |
Definition at line 661 of file analyze.c.
References ACL_INSERT, ACL_UPDATE, addNSItemToQuery(), addRangeTableEntryForSubquery(), addRangeTableEntryForValues(), Assert, assign_list_collations(), assign_query_collations(), bms_add_member(), checkInsertTargets(), CMD_INSERT, CMD_SELECT, Query::commandType, contain_vars_of_level(), Query::cteList, elog, ereport, errcode(), errmsg, ERROR, expandNSItemVars(), EXPR_KIND_RETURNING, EXPR_KIND_VALUES, EXPR_KIND_VALUES_SINGLE, exprLocation(), exprType(), exprTypmod(), fb(), FirstLowInvalidHeapAttributeNumber, forthree, free_parsestate(), SelectStmt::intoClause, InvalidOid, IsA, Query::jointree, lappend(), lappend_int(), lappend_oid(), LCS_NONE, lfirst, lfirst_int, lfirst_node, SelectStmt::limitCount, SelectStmt::limitOffset, linitial, list_length(), Var::location, SelectStmt::lockingClause, make_parsestate(), makeFromExpr(), makeNode, makeTargetEntry(), makeVarFromTargetEntry(), NIL, Query::onConflict, ONCONFLICT_SELECT, ONCONFLICT_UPDATE, ParseState::p_ctenamespace, ParseState::p_hasModifyingCTE, ParseState::p_hasSubLinks, ParseState::p_hasTargetSRFs, ParseState::p_joinlist, ParseState::p_namespace, ParseNamespaceItem::p_perminfo, ParseState::p_rtable, ParseState::p_rteperminfos, ParseState::p_target_nsitem, parser_errposition(), Query::rtable, setTargetTable(), SelectStmt::sortClause, stmt, Query::targetList, transformExpressionList(), transformInsertRow(), transformOnConflictClause(), transformReturningClause(), transformStmt(), transformWithClause(), val, SelectStmt::valuesLists, and SelectStmt::withClause.
Referenced by transformStmt().
|
static |
Definition at line 3805 of file analyze.c.
References ACL_SELECT_FOR_UPDATE, applyLockingClause(), CheckSelectLocking(), elog, ereport, errcode(), ERRCODE_UNDEFINED_TABLE, errmsg, ERROR, fb(), getRTEPermissionInfo(), i, LCS_asString(), lfirst, makeNode, NIL, parser_errposition(), Query::rtable, RTE_CTE, RTE_FUNCTION, RTE_JOIN, RTE_NAMEDTUPLESTORE, RTE_RELATION, RTE_SUBQUERY, RTE_TABLEFUNC, RTE_VALUES, and transformLockingClause().
Referenced by transformLockingClause(), transformSelectStmt(), and transformSetOperationStmt().
|
static |
Definition at line 1212 of file analyze.c.
References OnConflictClause::action, addNSItemToQuery(), addRangeTableEntryForRelation(), Assert, BuildOnConflictExcludedTargetlist(), EXPR_KIND_WHERE, fb(), list_delete_last(), llast, OnConflictClause::lockStrength, makeAlias(), makeNode, NIL, ONCONFLICT_SELECT, ONCONFLICT_UPDATE, ParseState::p_namespace, ParseState::p_target_relation, result, RowExclusiveLock, OnConflictClause::targetList, transformOnConflictArbiter(), transformUpdateTargetList(), transformWhereClause(), and OnConflictClause::whereClause.
Referenced by transformInsertStmt().
|
static |
Definition at line 295 of file analyze.c.
References Assert, fb(), IsA, SelectStmt::larg, makeNode, OBJECT_TABLE, SETOP_NONE, stmt, and transformStmt().
Referenced by transformExplainStmt(), and transformTopLevelStmt().
|
static |
Definition at line 3185 of file analyze.c.
References elog, ERROR, EXPR_KIND_UPDATE_TARGET, fb(), IsA, lappend(), linitial, list_copy(), list_delete_first(), list_make1, makeNode, makeString(), NIL, ParseState::p_resolve_unknowns, stmt, transformExpr(), and transformSelectStmt().
Referenced by transformStmt().
|
static |
Definition at line 3260 of file analyze.c.
References COERCE_IMPLICIT_CAST, coerce_to_target_type(), COERCION_PLPGSQL, ereport, errcode(), errhint(), errmsg, errmsg_plural(), ERROR, EXPR_KIND_NONE, EXPR_KIND_UPDATE_TARGET, exprCollation(), exprLocation(), exprType(), exprTypmod(), fb(), format_type_be(), ISCOMPLEX, linitial_node, list_head(), list_length(), list_make1, ParseState::p_expr_kind, parser_errposition(), stmt, and transformAssignmentIndirection().
Referenced by transformSelectStmt().
| void transformReturningClause | ( | ParseState * | pstate, |
| Query * | qry, | ||
| ReturningClause * | returningClause, | ||
| ParseExprKind | exprKind | ||
| ) |
Definition at line 3063 of file analyze.c.
References addNSItemForReturning(), elog, ereport, errcode(), errmsg, ERROR, exprLocation(), ReturningClause::exprs, fb(), foreach_node, linitial, list_length(), list_truncate(), markTargetListOrigins(), NIL, ReturningClause::options, ParseState::p_namespace, ParseState::p_next_resno, ParseState::p_resolve_unknowns, parser_errposition(), refnameNamespaceItem(), resolveTargetListUnknowns(), RETURNING_OPTION_NEW, RETURNING_OPTION_OLD, Query::returningList, transformTargetList(), VAR_RETURNING_NEW, and VAR_RETURNING_OLD.
Referenced by transformDeleteStmt(), transformInsertStmt(), transformMergeStmt(), and transformUpdateStmt().
|
static |
Definition at line 2823 of file analyze.c.
References assign_query_collations(), CMD_SELECT, Query::commandType, EXPR_KIND_SELECT_TARGET, fb(), Query::jointree, list_make1, makeFromExpr(), makeNode, makeTargetEntry(), ParseState::p_hasAggs, ParseState::p_hasSubLinks, ParseState::p_hasTargetSRFs, ParseState::p_hasWindowFuncs, ParseState::p_joinlist, ParseState::p_resolve_unknowns, ParseState::p_rtable, ParseState::p_rteperminfos, resolveTargetListUnknowns(), Query::rtable, stmt, Query::targetList, and transformExpr().
Referenced by transformStmt().
|
static |
Definition at line 1743 of file analyze.c.
References assign_query_collations(), CMD_SELECT, Query::commandType, Query::cteList, Query::distinctClause, ereport, errcode(), errmsg, ERROR, EXPR_KIND_GROUP_BY, EXPR_KIND_HAVING, EXPR_KIND_LIMIT, EXPR_KIND_OFFSET, EXPR_KIND_ORDER_BY, EXPR_KIND_SELECT_TARGET, EXPR_KIND_WHERE, exprLocation(), fb(), Query::groupByAll, Query::groupClause, Query::groupDistinct, Query::groupingSets, Query::havingQual, Query::jointree, lfirst, Query::limitCount, Query::limitOffset, Query::limitOption, linitial, makeFromExpr(), makeNode, markTargetListOrigins(), NIL, ParseState::p_hasAggs, ParseState::p_hasModifyingCTE, ParseState::p_hasSubLinks, ParseState::p_hasTargetSRFs, ParseState::p_hasWindowFuncs, ParseState::p_joinlist, ParseState::p_locking_clause, ParseState::p_resolve_unknowns, ParseState::p_rtable, ParseState::p_rteperminfos, ParseState::p_windowdefs, parseCheckAggregates(), parser_errposition(), resolveTargetListUnknowns(), Query::rtable, Query::sortClause, stmt, Query::targetList, transformDistinctClause(), transformDistinctOnClause(), transformFromClause(), transformGroupClause(), transformLimitClause(), transformLockingClause(), transformPLAssignStmtTarget(), transformSortClause(), transformTargetList(), transformWhereClause(), transformWindowDefinitions(), transformWithClause(), and Query::windowClause.
Referenced by transformPLAssignStmt(), and transformStmt().
|
static |
Definition at line 2116 of file analyze.c.
References addNSItemToQuery(), addRangeTableEntryForJoin(), Assert, assign_query_collations(), castNode, CMD_SELECT, Query::commandType, Query::cteList, ereport, errcode(), errdetail(), errhint(), errmsg, ERROR, EXPR_KIND_LIMIT, EXPR_KIND_OFFSET, EXPR_KIND_ORDER_BY, exprLocation(), fb(), forfour, Query::groupClause, Query::groupingSets, Query::havingQual, IsA, JOIN_INNER, Query::jointree, lappend(), LCS_asString(), lfirst, lfirst_int, lfirst_oid, Query::limitCount, Query::limitOffset, Query::limitOption, linitial, list_length(), list_nth(), list_truncate(), Var::location, makeFromExpr(), makeNode, makeString(), makeTargetEntry(), makeVar(), NIL, ParseState::p_hasAggs, ParseState::p_hasModifyingCTE, ParseState::p_hasSubLinks, ParseState::p_hasTargetSRFs, ParseState::p_hasWindowFuncs, ParseState::p_joinlist, ParseState::p_namespace, ParseState::p_next_resno, ParseState::p_rtable, ParseState::p_rteperminfos, palloc0(), parseCheckAggregates(), parser_errposition(), pstrdup(), WithClause::recursive, rt_fetch, Query::rtable, SETOP_NONE, Query::setOperations, Query::sortClause, stmt, Query::targetList, transformLimitClause(), transformLockingClause(), transformSetOperationTree(), transformSortClause(), and transformWithClause().
Referenced by transformStmt().
|
static |
Definition at line 2421 of file analyze.c.
References addRangeTableEntryForSubquery(), SetOperationStmt::all, Assert, check_stack_depth(), constructSetOpTargetlist(), contain_vars_of_level(), determineRecursiveColTypes(), ereport, errcode(), errmsg, ERROR, exprLocation(), fb(), IsA, lappend(), SetOperationStmt::larg, LCS_asString(), lfirst, linitial, locate_var_of_level(), makeNode, NIL, SetOperationStmt::op, ParseState::p_namespace, ParseState::p_parent_cte, parse_sub_analyze(), parser_errposition(), SetOperationStmt::rarg, SETOP_INTERSECT, SETOP_NONE, SETOP_UNION, stmt, and transformSetOperationTree().
Referenced by transformSetOperationStmt(), and transformSetOperationTree().
| Query * transformStmt | ( | ParseState * | pstate, |
| Node * | parseTree | ||
| ) |
Definition at line 334 of file analyze.c.
References CMD_UTILITY, fb(), makeNode, nodeTag, SelectStmt::op, QSRC_ORIGINAL, result, SETOP_NONE, transformCallStmt(), transformCreateTableAsStmt(), transformDeclareCursorStmt(), transformDeleteStmt(), transformExplainStmt(), transformInsertStmt(), transformMergeStmt(), transformPLAssignStmt(), transformReturnStmt(), transformSelectStmt(), transformSetOperationStmt(), transformUpdateStmt(), transformValuesClause(), and SelectStmt::valuesLists.
Referenced by interpret_AS_clause(), parse_sub_analyze(), transformCreateTableAsStmt(), transformDeclareCursorStmt(), transformInsertStmt(), transformJsonArrayQueryConstructor(), transformOptionalSelectInto(), and transformRuleStmt().
| Query * transformTopLevelStmt | ( | ParseState * | pstate, |
| RawStmt * | parseTree | ||
| ) |
Definition at line 271 of file analyze.c.
References fb(), result, and transformOptionalSelectInto().
Referenced by inline_function(), parse_analyze_fixedparams(), parse_analyze_varparams(), and parse_analyze_withcb().
|
static |
Definition at line 2854 of file analyze.c.
References ACL_UPDATE, assign_query_collations(), CMD_UPDATE, Query::commandType, Query::cteList, ereport, errcode(), errmsg, ERROR, EXPR_KIND_RETURNING, EXPR_KIND_WHERE, fb(), Query::forPortionOf, IsA, Query::jointree, makeFromExpr(), makeNode, ParseState::p_hasModifyingCTE, ParseState::p_hasSubLinks, ParseState::p_hasTargetSRFs, ParseState::p_joinlist, ParseNamespaceItem::p_lateral_only, ParseState::p_rtable, ParseState::p_rteperminfos, ParseState::p_target_nsitem, ParseState::p_target_relation, RelationData::rd_rel, Query::rtable, setTargetTable(), stmt, Query::targetList, transformForPortionOfClause(), transformFromClause(), transformReturningClause(), transformUpdateTargetList(), transformWhereClause(), and transformWithClause().
Referenced by transformStmt().
| List * transformUpdateTargetList | ( | ParseState * | pstate, |
| List * | origTlist, | ||
| ForPortionOfExpr * | forPortionOf | ||
| ) |
Definition at line 2935 of file analyze.c.
References Alias::aliasname, attnameAttNum(), bms_add_member(), elog, ereport, errcode(), errhint(), errmsg, ERROR, EXPR_KIND_UPDATE_SOURCE, fb(), FirstLowInvalidHeapAttributeNumber, InvalidAttrNumber, lfirst, lfirst_node, list_head(), lnext(), NIL, ParseNamespaceItem::p_names, ParseState::p_next_resno, ParseNamespaceItem::p_perminfo, ParseState::p_target_nsitem, ParseState::p_target_relation, parser_errposition(), ForPortionOfExpr::rangeVar, RelationGetNumberOfAttributes, RelationGetRelationName, transformTargetList(), updateTargetListEntry(), and Var::varattno.
Referenced by transformMergeStmt(), transformOnConflictClause(), and transformUpdateStmt().
|
static |
Definition at line 1897 of file analyze.c.
References addNSItemToQuery(), addRangeTableEntryForValues(), Assert, assign_query_collations(), CMD_SELECT, coerce_to_common_type(), Query::commandType, contain_vars_of_level(), Query::cteList, ereport, errcode(), errmsg, ERROR, expandNSItemAttrs(), EXPR_KIND_LIMIT, EXPR_KIND_OFFSET, EXPR_KIND_ORDER_BY, EXPR_KIND_VALUES, exprLocation(), fb(), forboth, i, Query::jointree, lappend(), lappend_int(), lappend_oid(), LCS_asString(), lfirst, Query::limitCount, Query::limitOffset, Query::limitOption, linitial, list_free(), list_length(), makeFromExpr(), makeNode, NIL, ParseState::p_hasModifyingCTE, ParseState::p_hasSubLinks, ParseState::p_joinlist, ParseState::p_next_resno, ParseState::p_rtable, ParseState::p_rteperminfos, palloc0(), parser_errposition(), Query::rtable, select_common_collation(), select_common_type(), select_common_typmod(), SETOP_NONE, Query::sortClause, stmt, Query::targetList, transformExpressionList(), transformLimitClause(), transformSortClause(), and transformWithClause().
Referenced by transformStmt().
| post_parse_analyze_hook_type post_parse_analyze_hook = NULL |
Definition at line 74 of file analyze.c.
Referenced by _PG_init(), ExecCreateTableAs(), ExplainOneUtility(), ExplainQuery(), parse_analyze_fixedparams(), parse_analyze_varparams(), parse_analyze_withcb(), and PerformCursorOpen().