|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/nbtree.h"#include "catalog/objectaccess.h"#include "catalog/pg_proc.h"#include "catalog/pg_type.h"#include "executor/execExpr.h"#include "executor/nodeSubplan.h"#include "funcapi.h"#include "jit/jit.h"#include "miscadmin.h"#include "nodes/makefuncs.h"#include "nodes/nodeFuncs.h"#include "nodes/subscripting.h"#include "optimizer/optimizer.h"#include "pgstat.h"#include "utils/acl.h"#include "utils/array.h"#include "utils/builtins.h"#include "utils/jsonfuncs.h"#include "utils/jsonpath.h"#include "utils/lsyscache.h"#include "utils/typcache.h"
Go to the source code of this file.
Data Structures | |
| struct | ExprSetupInfo |
Typedefs | |
| typedef struct ExprSetupInfo | ExprSetupInfo |
| typedef struct ExprSetupInfo ExprSetupInfo |
| ExprState * ExecBuildAggTrans | ( | AggState * | aggstate, |
| AggStatePerPhase | phase, | ||
| bool | doSort, | ||
| bool | doHash, | ||
| bool | nullcheck | ||
| ) |
Definition at line 3704 of file execExpr.c.
References AGG_HASHED, Aggref::aggdirectargs, Aggref::aggdistinct, Aggref::aggfilter, Aggref::aggorder, AggStatePerTransData::aggref, AggStatePerTransData::aggsortrequired, arg, Aggref::args, Assert, bail, AggStatePerTransData::deserialfn, AggStatePerTransData::deserialfn_fcinfo, AggStatePerTransData::deserialfn_oid, DO_AGGSPLIT_COMBINE, EEOP_AGG_DESERIALIZE, EEOP_AGG_PRESORTED_DISTINCT_MULTI, EEOP_AGG_PRESORTED_DISTINCT_SINGLE, EEOP_AGG_STRICT_DESERIALIZE, EEOP_AGG_STRICT_INPUT_CHECK_ARGS, EEOP_AGG_STRICT_INPUT_CHECK_ARGS_1, EEOP_AGG_STRICT_INPUT_CHECK_NULLS, EEOP_DONE_NO_RETURN, EEOP_JUMP_IF_NOT_TRUE, ExecBuildAggTransCall(), ExecInitExprRec(), ExecPushExprSetupSteps(), ExecReadyExpr(), expr_setup_walker(), ExprEvalPushStep(), fb(), FmgrInfo::fn_strict, lappend_int(), lfirst, lfirst_int, linitial, list_length(), makeNode, Max, NIL, AggStatePerTransData::numDistinctCols, AggStatePerTransData::numInputs, AggStatePerPhaseData::numsets, AggStatePerTransData::numSortCols, AggStatePerTransData::numTransInputs, OidIsValid, PointerGetDatum(), AggStatePerTransData::sortslot, AggStatePerTransData::transfn_fcinfo, TupleTableSlot::tts_isnull, TupleTableSlot::tts_values, and values.
Referenced by ExecInitAgg(), and hashagg_recompile_expressions().
|
static |
Definition at line 4046 of file execExpr.c.
References AggStatePerTransData::aggsortrequired, Assert, EEOP_AGG_ORDERED_TRANS_DATUM, EEOP_AGG_ORDERED_TRANS_TUPLE, EEOP_AGG_PLAIN_PERGROUP_NULLCHECK, EEOP_AGG_PLAIN_TRANS_BYREF, EEOP_AGG_PLAIN_TRANS_BYVAL, EEOP_AGG_PLAIN_TRANS_INIT_STRICT_BYREF, EEOP_AGG_PLAIN_TRANS_INIT_STRICT_BYVAL, EEOP_AGG_PLAIN_TRANS_STRICT_BYREF, EEOP_AGG_PLAIN_TRANS_STRICT_BYVAL, ExprEvalPushStep(), fb(), FunctionCallInfoBaseData::flinfo, FmgrInfo::fn_strict, AggStatePerTransData::initValueIsNull, AggStatePerTransData::numInputs, and AggStatePerTransData::transtypeByVal.
Referenced by ExecBuildAggTrans().
| ExprState * ExecBuildGroupingEqual | ( | TupleDesc | ldesc, |
| TupleDesc | rdesc, | ||
| const TupleTableSlotOps * | lops, | ||
| const TupleTableSlotOps * | rops, | ||
| int | numCols, | ||
| const AttrNumber * | keyColIdx, | ||
| const Oid * | eqfunctions, | ||
| const Oid * | collations, | ||
| PlanState * | parent | ||
| ) |
Definition at line 4494 of file execExpr.c.
References ACL_EXECUTE, aclcheck_error(), ACLCHECK_OK, FunctionCallInfoBaseData::args, Assert, collid, EEO_FLAG_IS_QUAL, EEOP_DONE_RETURN, EEOP_INNER_FETCHSOME, EEOP_INNER_VAR, EEOP_NOT_DISTINCT, EEOP_OUTER_FETCHSOME, EEOP_OUTER_VAR, EEOP_QUAL, ExecComputeSlotInfo(), ExecReadyExpr(), ExprEvalPushStep(), fb(), fmgr_info(), fmgr_info_set_expr, FmgrInfo::fn_addr, get_func_name(), GetUserId(), InitFunctionCallInfoData, InvokeFunctionExecuteHook, NullableDatum::isnull, lappend_int(), lfirst_int, makeNode, NIL, object_aclcheck(), OBJECT_FUNCTION, palloc0(), palloc0_object, SizeForFunctionCallInfo, TupleDescAttr(), NullableDatum::value, and VAR_RETURNING_DEFAULT.
Referenced by BuildTupleHashTable(), ExecInitSubPlan(), and execTuplesMatchPrepare().
| ExprState * ExecBuildHash32Expr | ( | TupleDesc | desc, |
| const TupleTableSlotOps * | ops, | ||
| const Oid * | hashfunc_oids, | ||
| const List * | collations, | ||
| const List * | hash_exprs, | ||
| const bool * | opstrict, | ||
| PlanState * | parent, | ||
| uint32 | init_value | ||
| ) |
Definition at line 4329 of file execExpr.c.
References FunctionCallInfoBaseData::args, Assert, EEOP_DONE_RETURN, EEOP_HASHDATUM_FIRST, EEOP_HASHDATUM_FIRST_STRICT, EEOP_HASHDATUM_NEXT32, EEOP_HASHDATUM_NEXT32_STRICT, EEOP_HASHDATUM_SET_INITVAL, ExecCreateExprSetupSteps(), ExecInitExprRec(), ExecReadyExpr(), ExprEvalPushStep(), fb(), fmgr_info(), FmgrInfo::fn_addr, forboth, foreach_current_index, i, InitFunctionCallInfoData, NullableDatum::isnull, lappend_int(), lfirst, lfirst_int, lfirst_oid, list_length(), makeNode, NIL, palloc0(), palloc0_object, palloc_object, SizeForFunctionCallInfo, UInt32GetDatum(), and NullableDatum::value.
Referenced by ExecInitHashJoin().
| ExprState * ExecBuildHash32FromAttrs | ( | TupleDesc | desc, |
| const TupleTableSlotOps * | ops, | ||
| FmgrInfo * | hashfunctions, | ||
| Oid * | collations, | ||
| int | numCols, | ||
| AttrNumber * | keyColIdx, | ||
| PlanState * | parent, | ||
| uint32 | init_value | ||
| ) |
Definition at line 4168 of file execExpr.c.
References FunctionCallInfoBaseData::args, Assert, attnum, EEOP_DONE_RETURN, EEOP_HASHDATUM_FIRST, EEOP_HASHDATUM_NEXT32, EEOP_HASHDATUM_SET_INITVAL, EEOP_INNER_FETCHSOME, EEOP_INNER_VAR, ExecComputeSlotInfo(), ExecReadyExpr(), ExprEvalPushStep(), fb(), FmgrInfo::fn_addr, i, InitFunctionCallInfoData, NullableDatum::isnull, makeNode, Max, palloc0(), palloc_object, SizeForFunctionCallInfo, TupleDescAttr(), UInt32GetDatum(), NullableDatum::value, and VAR_RETURNING_DEFAULT.
Referenced by BuildTupleHashTable(), and ExecInitSubPlan().
| ExprState * ExecBuildParamSetEqual | ( | TupleDesc | desc, |
| const TupleTableSlotOps * | lops, | ||
| const TupleTableSlotOps * | rops, | ||
| const Oid * | eqfunctions, | ||
| const Oid * | collations, | ||
| const List * | param_exprs, | ||
| PlanState * | parent | ||
| ) |
Definition at line 4653 of file execExpr.c.
References ACL_EXECUTE, aclcheck_error(), ACLCHECK_OK, FunctionCallInfoBaseData::args, Assert, collid, EEO_FLAG_IS_QUAL, EEOP_DONE_RETURN, EEOP_INNER_FETCHSOME, EEOP_INNER_VAR, EEOP_NOT_DISTINCT, EEOP_OUTER_FETCHSOME, EEOP_OUTER_VAR, EEOP_QUAL, ExecComputeSlotInfo(), ExecReadyExpr(), ExprEvalPushStep(), fb(), fmgr_info(), fmgr_info_set_expr, FmgrInfo::fn_addr, get_func_name(), GetUserId(), InitFunctionCallInfoData, InvokeFunctionExecuteHook, NullableDatum::isnull, lappend_int(), lfirst_int, list_length(), makeNode, NIL, object_aclcheck(), OBJECT_FUNCTION, palloc0(), palloc0_object, SizeForFunctionCallInfo, TupleDescAttr(), NullableDatum::value, and VAR_RETURNING_DEFAULT.
Referenced by ExecInitMemoize().
| ProjectionInfo * ExecBuildProjectionInfo | ( | List * | targetList, |
| ExprContext * | econtext, | ||
| TupleTableSlot * | slot, | ||
| PlanState * | parent, | ||
| TupleDesc | inputDesc | ||
| ) |
Definition at line 391 of file execExpr.c.
References attnum, EEO_FLAG_HAS_NEW, EEO_FLAG_HAS_OLD, EEOP_ASSIGN_INNER_VAR, EEOP_ASSIGN_NEW_VAR, EEOP_ASSIGN_OLD_VAR, EEOP_ASSIGN_OUTER_VAR, EEOP_ASSIGN_SCAN_VAR, EEOP_ASSIGN_TMP, EEOP_ASSIGN_TMP_MAKE_RO, EEOP_DONE_NO_RETURN, ExecCreateExprSetupSteps(), ExecInitExprRec(), ExecReadyExpr(), ExprEvalPushStep(), exprType(), fb(), get_typlen(), INNER_VAR, IsA, lfirst_node, makeNode, OUTER_VAR, TupleDescAttr(), ExprContext::type, VAR_RETURNING_DEFAULT, VAR_RETURNING_NEW, and VAR_RETURNING_OLD.
Referenced by ExecAssignProjectionInfo(), ExecInitInsertProjection(), ExecInitMerge(), ExecInitModifyTable(), ExecInitPartitionInfo(), and ExecInitSubPlan().
| ProjectionInfo * ExecBuildUpdateProjection | ( | List * | targetList, |
| bool | evalTargetList, | ||
| List * | targetColnos, | ||
| TupleDesc | relDesc, | ||
| ExprContext * | econtext, | ||
| TupleTableSlot * | slot, | ||
| PlanState * | parent | ||
| ) |
Definition at line 568 of file execExpr.c.
References Assert, CompactAttribute::attisdropped, attnum, bms_add_member(), bms_is_member(), EEOP_ASSIGN_OUTER_VAR, EEOP_ASSIGN_SCAN_VAR, EEOP_ASSIGN_TMP, EEOP_CONST, EEOP_DONE_NO_RETURN, elog, ereport, errcode(), errdetail(), errmsg, ERROR, ExecInitExprRec(), ExecPushExprSetupSteps(), ExecReadyExpr(), expr_setup_walker(), ExprEvalPushStep(), exprType(), fb(), forboth, format_type_be(), lfirst_int, lfirst_node, list_length(), makeNode, NIL, TupleDescAttr(), TupleDescCompactAttr(), and ExprContext::type.
Referenced by ExecInitMerge(), ExecInitModifyTable(), ExecInitPartitionInfo(), and ExecInitUpdateProjection().
| bool ExecCheck | ( | ExprState * | state, |
| ExprContext * | econtext | ||
| ) |
Definition at line 905 of file execExpr.c.
References Assert, DatumGetBool(), EEO_FLAG_IS_QUAL, ExecEvalExprSwitchContext(), and fb().
Referenced by ATRewriteTable(), check_default_partition_contents(), domain_check_input(), evaluateGeneratedExpressionsAndCheckConstraints(), ExecPartitionCheck(), ExecRelCheck(), ExecRelGenVirtualNotNull(), and SplitPartitionMoveRows().
|
static |
Definition at line 3090 of file execExpr.c.
References Assert, ExprEvalStep::d, EEOP_INNER_FETCHSOME, EEOP_NEW_FETCHSOME, EEOP_OLD_FETCHSOME, EEOP_OUTER_FETCHSOME, EEOP_SCAN_FETCHSOME, ExecGetResultSlotOps(), ExecGetResultType(), fb(), ExprEvalStep::fetch, ExprEvalStep::fixed, PlanState::innerops, PlanState::inneropsfixed, PlanState::inneropsset, innerPlanState, ExprEvalStep::kind, ExprEvalStep::known_desc, ExprEvalStep::opcode, PlanState::outerops, PlanState::outeropsfixed, PlanState::outeropsset, outerPlanState, PlanState::scandesc, PlanState::scanops, PlanState::scanopsfixed, PlanState::scanopsset, and TTSOpsVirtual.
Referenced by ExecBuildGroupingEqual(), ExecBuildHash32FromAttrs(), ExecBuildParamSetEqual(), and ExecPushExprSetupSteps().
Definition at line 2909 of file execExpr.c.
References ExecPushExprSetupSteps(), expr_setup_walker(), and NIL.
Referenced by ExecBuildHash32Expr(), ExecBuildProjectionInfo(), ExecInitExprWithContext(), ExecInitExprWithParams(), and ExecInitQual().
Definition at line 336 of file execExpr.c.
References Assert, ExecInitExpr(), fb(), IsA, make_ands_explicit(), and NIL.
Referenced by ExecPrepareCheck().
|
static |
Definition at line 3550 of file execExpr.c.
References DomainConstraintState::check_expr, DomainConstraintRef::constraints, DomainConstraintState::constrainttype, CurrentMemoryContext, DOM_CONSTRAINT_CHECK, DOM_CONSTRAINT_NOTNULL, EEOP_DOMAIN_CHECK, EEOP_DOMAIN_NOTNULL, EEOP_MAKE_READONLY, elog, ERROR, ExecInitExprRec(), ExprEvalPushStep(), fb(), get_typlen(), InitDomainConstraintRef(), lfirst, DomainConstraintState::name, and palloc_object.
Referenced by ExecInitExprRec().
Definition at line 143 of file execExpr.c.
References ExecInitExprWithContext(), and fb().
Referenced by ATRewriteTable(), BeginCopyFrom(), buildExpressionExecutionStates(), evaluate_expr(), ExecIndexBuildScanKeys(), ExecInitCheck(), ExecInitExprList(), ExecInitExprRec(), ExecInitLimit(), ExecInitMemoize(), ExecInitProjectSet(), ExecInitSampleScan(), ExecInitSubPlan(), ExecInitTableFuncScan(), ExecInitTableFunctionResult(), ExecInitWindowAgg(), get_cast_hashentry(), get_qual_for_range(), InitPartitionPruneContext(), MakeTidOpExpr(), MJExamineQuals(), operator_predicate_proof(), prep_domain_constraints(), slot_fill_defaults(), and TidExprListCreate().
Definition at line 356 of file execExpr.c.
References ExecInitExpr(), fb(), lappend(), lfirst, and NIL.
Referenced by ExecInitAgg(), ExecInitExprRec(), ExecInitFunctionResultSet(), ExecInitIndexScan(), ExecInitSampleScan(), ExecInitTableFuncScan(), ExecInitTableFunctionResult(), ExecInitValuesScan(), prepare_query_params(), and ValuesNext().
Definition at line 952 of file execExpr.c.
References ACL_EXECUTE, aclcheck_error(), ACLCHECK_OK, WindowFuncExprState::aggfilter, WindowFunc::aggfilter, AND_EXPR, arg, FieldStore::arg, CoerceViaIO::arg, JsonConstructorExprState::arg_nulls, JsonConstructorExprState::arg_type_cache, JsonConstructorExprState::arg_types, JsonConstructorExprState::arg_values, FunctionCallInfoBaseData::args, WindowFuncExprState::args, WindowFunc::args, FuncExpr::args, OpExpr::args, ScalarArrayOpExpr::args, BoolExpr::args, RowExpr::args, XmlExpr::args, Assert, BlessTupleDesc(), BoolExpr::boolop, BTORDER_PROC, castNode, JsonConstructorExprState::category, check_stack_depth(), CMD_MERGE, TypeCacheEntry::cmp_proc, JsonConstructorExprState::constructor, convert(), EEO_FLAG_HAS_NEW, EEO_FLAG_HAS_OLD, EEO_FLAG_NEW_IS_NULL, EEO_FLAG_OLD_IS_NULL, EEOP_AGGREF, EEOP_ARRAYCOERCE, EEOP_ARRAYEXPR, EEOP_BOOL_AND_STEP, EEOP_BOOL_AND_STEP_FIRST, EEOP_BOOL_AND_STEP_LAST, EEOP_BOOL_NOT_STEP, EEOP_BOOL_OR_STEP, EEOP_BOOL_OR_STEP_FIRST, EEOP_BOOL_OR_STEP_LAST, EEOP_BOOLTEST_IS_FALSE, EEOP_BOOLTEST_IS_NOT_FALSE, EEOP_BOOLTEST_IS_NOT_TRUE, EEOP_BOOLTEST_IS_TRUE, EEOP_CASE_TESTVAL, EEOP_CASE_TESTVAL_EXT, EEOP_CONST, EEOP_CONVERT_ROWTYPE, EEOP_CURRENTOFEXPR, EEOP_DISTINCT, EEOP_DOMAIN_TESTVAL, EEOP_DOMAIN_TESTVAL_EXT, EEOP_DONE_RETURN, EEOP_FIELDSELECT, EEOP_FIELDSTORE_DEFORM, EEOP_FIELDSTORE_FORM, EEOP_GROUPING_FUNC, EEOP_HASHED_SCALARARRAYOP, EEOP_INNER_SYSVAR, EEOP_INNER_VAR, EEOP_IOCOERCE, EEOP_IOCOERCE_SAFE, EEOP_IS_JSON, EEOP_JSON_CONSTRUCTOR, EEOP_JUMP, EEOP_JUMP_IF_NOT_NULL, EEOP_JUMP_IF_NOT_TRUE, EEOP_MAKE_READONLY, EEOP_MERGE_SUPPORT_FUNC, EEOP_MINMAX, EEOP_NEW_SYSVAR, EEOP_NEW_VAR, EEOP_NEXTVALUEEXPR, EEOP_NULLIF, EEOP_NULLTEST_ISNOTNULL, EEOP_NULLTEST_ISNULL, EEOP_NULLTEST_ROWISNOTNULL, EEOP_NULLTEST_ROWISNULL, EEOP_OLD_SYSVAR, EEOP_OLD_VAR, EEOP_OUTER_SYSVAR, EEOP_OUTER_VAR, EEOP_PARAM_EXEC, EEOP_PARAM_EXTERN, EEOP_RETURNINGEXPR, EEOP_ROW, EEOP_ROWCOMPARE_FINAL, EEOP_ROWCOMPARE_STEP, EEOP_SCALARARRAYOP, EEOP_SCAN_SYSVAR, EEOP_SCAN_VAR, EEOP_SQLVALUEFUNCTION, EEOP_WINDOW_FUNC, EEOP_XMLEXPR, elog, ereport, errcode(), errmsg, ERROR, ExecInitCoerceToDomain(), ExecInitExpr(), ExecInitExprList(), ExecInitExprRec(), ExecInitFunc(), ExecInitJsonExpr(), ExecInitSubPlanExpr(), ExecInitSubscriptingRef(), ExecInitWholeRowVar(), ExecReadyExpr(), ExecTypeFromExprList(), ExecTypeSetColNames(), JsonIsPredicate::expr, ExprEvalPushStep(), exprType(), fb(), fmgr_info(), fmgr_info_set_expr, FmgrInfo::fn_addr, forboth, forfive, format_type_be(), JsonExpr::formatted_expr, FuncExpr::funcid, WindowAggState::funcs, get_element_type(), get_func_name(), get_op_opfamily_properties(), get_opfamily_proc(), get_typlen(), get_typlenbyvalalign(), getTypeInputInfo(), getTypeOutputInfo(), GetUserId(), i, InitFunctionCallInfoData, INNER_VAR, Int32GetDatum(), InvalidAttrNumber, InvalidOid, InvokeFunctionExecuteHook, IS_FALSE, IS_NOT_FALSE, IS_NOT_NULL, IS_NOT_TRUE, IS_NOT_UNKNOWN, IS_NULL, IS_TRUE, IS_UNKNOWN, IsA, NullableDatum::isnull, JS_FORMAT_JSONB, JSCTOR_JSON_PARSE, JSCTOR_JSON_SCALAR, JSCTOR_JSON_SERIALIZE, json_categorize_type(), JSON_TABLE_OP, lappend(), lappend_int(), lfirst, lfirst_int, lfirst_oid, linitial, list_length(), lookup_rowtype_tupdesc(), lookup_rowtype_tupdesc_copy(), lookup_type_cache(), lsecond, makeNode, makeNullConst(), Max, MULTIEXPR_SUBLINK, XmlExpr::named_args, JsonConstructorExprState::nargs, TupleDescData::natts, FieldStore::newvals, NIL, nodeTag, NOT_EXPR, WindowAggState::numaggs, WindowAggState::numfuncs, object_aclcheck(), OBJECT_FUNCTION, ObjectIdGetDatum(), OidIsValid, JsonExpr::op, OR_EXPR, OUTER_VAR, JsonConstructorExprState::outfuncid, palloc(), palloc0(), palloc0_object, palloc_array, palloc_object, PARAM_EXEC, PARAM_EXTERN, ParamListInfoData::paramCompile, Param::paramid, Param::paramkind, Param::paramtype, ReleaseTupleDesc, CoerceViaIO::resulttype, ReturningExpr::retexpr, ReturningExpr::retold, SizeForFunctionCallInfo, SubPlan::subLinkType, TupleDescAttr(), TYPECACHE_CMP_PROC, ScalarArrayOpExpr::useOr, NullableDatum::value, values, VAR_RETURNING_DEFAULT, VAR_RETURNING_NEW, VAR_RETURNING_OLD, and WindowFuncExprState::wfunc.
Referenced by ExecBuildAggTrans(), ExecBuildHash32Expr(), ExecBuildProjectionInfo(), ExecBuildUpdateProjection(), ExecInitCoerceToDomain(), ExecInitExprRec(), ExecInitExprWithContext(), ExecInitExprWithParams(), ExecInitFunc(), ExecInitJsonExpr(), ExecInitQual(), ExecInitSubPlanExpr(), and ExecInitSubscriptingRef().
Definition at line 163 of file execExpr.c.
References EEOP_DONE_RETURN, ExecCreateExprSetupSteps(), ExecInitExprRec(), ExecReadyExpr(), ExprEvalPushStep(), fb(), and makeNode.
Referenced by ExecInitExpr(), and ExecPrepareExprWithContext().
| ExprState * ExecInitExprWithParams | ( | Expr * | node, |
| ParamListInfo | ext_params | ||
| ) |
Definition at line 201 of file execExpr.c.
References EEOP_DONE_RETURN, ExecCreateExprSetupSteps(), ExecInitExprRec(), ExecReadyExpr(), ExprEvalPushStep(), fb(), and makeNode.
Referenced by exec_eval_simple_expr(), and InitPartitionPruneContext().
|
static |
Definition at line 2730 of file execExpr.c.
References ACL_EXECUTE, aclcheck_error(), ACLCHECK_OK, arg, FunctionCallInfoBaseData::args, EEOP_FUNCEXPR, EEOP_FUNCEXPR_FUSAGE, EEOP_FUNCEXPR_STRICT, EEOP_FUNCEXPR_STRICT_1, EEOP_FUNCEXPR_STRICT_2, EEOP_FUNCEXPR_STRICT_FUSAGE, ereport, errcode(), errmsg, errmsg_plural(), ERROR, ExecInitExprRec(), executor_errposition(), exprLocation(), fb(), fmgr_info(), fmgr_info_set_expr, FmgrInfo::fn_addr, FmgrInfo::fn_retset, FmgrInfo::fn_strict, FUNC_MAX_ARGS, get_func_name(), GetUserId(), InitFunctionCallInfoData, InvokeFunctionExecuteHook, IsA, NullableDatum::isnull, lfirst, list_length(), object_aclcheck(), OBJECT_FUNCTION, palloc0(), palloc0_object, SizeForFunctionCallInfo, and NullableDatum::value.
Referenced by ExecInitExprRec().
|
static |
Definition at line 5079 of file execExpr.c.
References DomainHasConstraints(), EEOP_JSONEXPR_COERCION, ExprEvalPushStep(), fb(), getBaseType(), ExprEvalStep::opcode, JsonReturning::typid, and JsonReturning::typmod.
Referenced by ExecInitJsonExpr().
|
static |
Definition at line 4777 of file execExpr.c.
References FunctionCallInfoBaseData::args, JsonExprState::args, Assert, JsonBehavior::btype, JsonBehavior::coerce, FunctionCallInfoBaseData::context, EEOP_CONST, EEOP_JSONEXPR_COERCION_FINISH, EEOP_JSONEXPR_PATH, EEOP_JUMP, EEOP_JUMP_IF_NOT_TRUE, EEOP_JUMP_IF_NULL, JsonExprState::empty, JsonExprState::error, JsonExprState::escontext, ExecInitExprRec(), ExecInitJsonCoercion(), JsonBehavior::expr, ExprEvalPushStep(), exprType(), exprTypmod(), fb(), fmgr_info(), fmgr_info_set_expr, forboth, JsonExprState::formatted_expr, JsonExpr::formatted_expr, get_typtype(), getTypeInputInfo(), InitFunctionCallInfoData, JsonExprState::input_fcinfo, Int32GetDatum(), InvalidOid, IsA, NullableDatum::isnull, JsonPathVariable::isnull, JsonExprState::jsexpr, JSON_BEHAVIOR_ERROR, JSON_EXISTS_OP, JsonExprState::jump_empty, JsonExprState::jump_end, JsonExprState::jump_error, JsonExprState::jump_eval_coercion, lappend(), lappend_int(), lfirst, lfirst_int, lfirst_node, JsonPathVariable::name, JsonPathVariable::namelen, NIL, ObjectIdGetDatum(), JsonExpr::omit_quotes, JsonExpr::on_empty, JsonExpr::on_error, JsonExpr::op, palloc0(), palloc0_object, palloc_object, JsonExpr::passing_names, JsonExpr::passing_values, JsonExpr::path_spec, JsonExprState::pathspec, JsonExpr::returning, SizeForFunctionCallInfo, String::sval, ErrorSaveContext::type, JsonReturning::typid, JsonPathVariable::typid, JsonReturning::typmod, JsonPathVariable::typmod, JsonExpr::use_io_coercion, JsonExpr::use_json_coercion, NullableDatum::value, and JsonPathVariable::value.
Referenced by ExecInitExprRec().
Definition at line 250 of file execExpr.c.
References Assert, EEO_FLAG_IS_QUAL, EEOP_DONE_RETURN, EEOP_QUAL, ExecCreateExprSetupSteps(), ExecInitExprRec(), ExecReadyExpr(), ExprEvalPushStep(), fb(), foreach_int, foreach_ptr, IsA, lappend_int(), makeNode, and NIL.
Referenced by CopyFrom(), ExecInitAgg(), ExecInitBitmapHeapScan(), ExecInitCteScan(), ExecInitCustomScan(), ExecInitForeignScan(), ExecInitFunctionScan(), ExecInitGroup(), ExecInitHashJoin(), ExecInitIndexOnlyScan(), ExecInitIndexScan(), ExecInitMerge(), ExecInitMergeJoin(), ExecInitModifyTable(), ExecInitNamedTuplestoreScan(), ExecInitNestLoop(), ExecInitPartitionInfo(), ExecInitResult(), ExecInitSampleScan(), ExecInitSeqScan(), ExecInitSubqueryScan(), ExecInitTableFuncScan(), ExecInitTidRangeScan(), ExecInitTidScan(), ExecInitValuesScan(), ExecInitWindowAgg(), ExecInitWorkTableScan(), and ExecPrepareQual().
|
static |
Definition at line 2847 of file execExpr.c.
References arg, SubPlan::args, Assert, EEOP_PARAM_SET, EEOP_SUBPLAN, elog, ERROR, ExecInitExprRec(), ExecInitSubPlan(), ExprEvalPushStep(), exprType(), fb(), forboth, lappend(), lfirst, lfirst_int, list_length(), and SubPlan::parParam.
Referenced by ExecInitExprRec(), and ExecPushExprSetupSteps().
|
static |
Definition at line 3271 of file execExpr.c.
References Assert, EEOP_JUMP_IF_NULL, EEOP_SBSREF_ASSIGN, EEOP_SBSREF_FETCH, EEOP_SBSREF_OLD, EEOP_SBSREF_SUBSCRIPTS, ereport, errcode(), errmsg, ERROR, ExecInitExprRec(), executor_errposition(), ExprEvalPushStep(), exprLocation(), fb(), format_type_be(), getSubscriptingRoutines(), i, isAssignmentIndirectionExpr(), lappend_int(), lfirst, lfirst_int, list_length(), MAXALIGN, NIL, palloc0(), SubscriptingRef::refassgnexpr, SubscriptingRef::refexpr, SubscriptingRef::reflowerindexpr, SubscriptingRef::refupperindexpr, SubscriptExecSteps::sbs_assign, SubscriptExecSteps::sbs_check_subscripts, SubscriptExecSteps::sbs_fetch, and SubscriptExecSteps::sbs_fetch_old.
Referenced by ExecInitExprRec().
|
static |
Definition at line 3192 of file execExpr.c.
References EEO_FLAG_HAS_NEW, EEO_FLAG_HAS_OLD, EEOP_WHOLEROW, ExecInitExtraTupleSlot(), ExecInitJunkFilter(), fb(), lfirst, nodeTag, PlanState::plan, PlanState::state, Plan::targetlist, TTSOpsVirtual, VAR_RETURNING_NEW, and VAR_RETURNING_OLD.
Referenced by ExecInitExprRec().
Definition at line 849 of file execExpr.c.
References EState::es_query_cxt, ExecInitCheck(), expression_planner(), fb(), and MemoryContextSwitchTo().
Referenced by ExecPartitionCheck().
Definition at line 786 of file execExpr.c.
References ExecPrepareExprWithContext(), and fb().
Referenced by ATRewriteTable(), buildExpressionExecutionStates(), check_default_partition_contents(), compute_expr_stats(), ExecInitGenerated(), ExecPrepareExprList(), ExecRelCheck(), ExecRelGenVirtualNotNull(), ExecuteCallStmt(), pgoutput_row_filter_init(), SplitPartitionMoveRows(), and validateDomainCheckConstraint().
Definition at line 872 of file execExpr.c.
References EState::es_query_cxt, ExecPrepareExpr(), fb(), lappend(), lfirst, MemoryContextSwitchTo(), and NIL.
Referenced by EvaluateParams(), FormIndexDatum(), FormPartitionKeyDatum(), and make_build_data().
Definition at line 798 of file execExpr.c.
References EState::es_query_cxt, ExecInitExprWithContext(), expression_planner(), fb(), and MemoryContextSwitchTo().
Referenced by ATExecAddColumn(), and ExecPrepareExpr().
Definition at line 826 of file execExpr.c.
References EState::es_query_cxt, ExecInitQual(), expression_planner(), fb(), and MemoryContextSwitchTo().
Referenced by compute_index_stats(), ExecCheckIndexConstraints(), ExecInsertIndexTuples(), heapam_index_build_range_scan(), heapam_index_validate_scan(), IndexCheckExclusion(), and TriggerEnabled().
|
static |
Definition at line 2925 of file execExpr.c.
References Assert, EEOP_INNER_FETCHSOME, EEOP_NEW_FETCHSOME, EEOP_OLD_FETCHSOME, EEOP_OUTER_FETCHSOME, EEOP_SCAN_FETCHSOME, ExecComputeSlotInfo(), ExecInitSubPlanExpr(), ExprEvalPushStep(), fb(), ExprSetupInfo::last_inner, ExprSetupInfo::last_new, ExprSetupInfo::last_old, ExprSetupInfo::last_outer, ExprSetupInfo::last_scan, lfirst, MULTIEXPR_SUBLINK, ExprSetupInfo::multiexpr_subplans, and SubPlan::subLinkType.
Referenced by ExecBuildAggTrans(), ExecBuildUpdateProjection(), and ExecCreateExprSetupSteps().
Definition at line 935 of file execExpr.c.
References ExecReadyInterpretedExpr(), and jit_compile_expr().
Referenced by ExecBuildAggTrans(), ExecBuildGroupingEqual(), ExecBuildHash32Expr(), ExecBuildHash32FromAttrs(), ExecBuildParamSetEqual(), ExecBuildProjectionInfo(), ExecBuildUpdateProjection(), ExecInitExprRec(), ExecInitExprWithContext(), ExecInitExprWithParams(), and ExecInitQual().
|
static |
Definition at line 3011 of file execExpr.c.
References attnum, expr_setup_walker(), expression_tree_walker, fb(), INNER_VAR, IsA, lappend(), ExprSetupInfo::last_inner, ExprSetupInfo::last_new, ExprSetupInfo::last_old, ExprSetupInfo::last_outer, ExprSetupInfo::last_scan, Max, MULTIEXPR_SUBLINK, ExprSetupInfo::multiexpr_subplans, OUTER_VAR, SubPlan::subLinkType, VAR_RETURNING_DEFAULT, VAR_RETURNING_NEW, and VAR_RETURNING_OLD.
Referenced by ExecBuildAggTrans(), ExecBuildUpdateProjection(), ExecCreateExprSetupSteps(), and expr_setup_walker().
| void ExprEvalPushStep | ( | ExprState * | es, |
| const ExprEvalStep * | s | ||
| ) |
Definition at line 2704 of file execExpr.c.
References fb(), palloc_array, repalloc(), ExprState::steps, ExprState::steps_alloc, and ExprState::steps_len.
Referenced by ExecBuildAggTrans(), ExecBuildAggTransCall(), ExecBuildGroupingEqual(), ExecBuildHash32Expr(), ExecBuildHash32FromAttrs(), ExecBuildParamSetEqual(), ExecBuildProjectionInfo(), ExecBuildUpdateProjection(), ExecInitCoerceToDomain(), ExecInitExprRec(), ExecInitExprWithContext(), ExecInitExprWithParams(), ExecInitJsonCoercion(), ExecInitJsonExpr(), ExecInitQual(), ExecInitSubPlanExpr(), ExecInitSubscriptingRef(), ExecPushExprSetupSteps(), and plpgsql_param_compile().
Definition at line 3513 of file execExpr.c.
References FieldStore::arg, RelabelType::arg, CoerceToDomain::arg, fb(), IsA, and isAssignmentIndirectionExpr().
Referenced by ExecInitSubscriptingRef(), and isAssignmentIndirectionExpr().