PostgreSQL Source Code
git master
|
Go to the source code of this file.
Data Structures | |
struct | ExprEvalRowtypeCache |
struct | ExprEvalStep |
struct | SubscriptingRefState |
struct | SubscriptExecSteps |
struct | JsonConstructorExprState |
Macros | |
#define | EEO_FLAG_INTERPRETER_INITIALIZED (1 << 1) |
#define | EEO_FLAG_DIRECT_THREADED (1 << 2) |
Typedefs | |
typedef void(* | ExecEvalSubroutine) (ExprState *state, struct ExprEvalStep *op, ExprContext *econtext) |
typedef bool(* | ExecEvalBoolSubroutine) (ExprState *state, struct ExprEvalStep *op, ExprContext *econtext) |
typedef struct ExprEvalRowtypeCache | ExprEvalRowtypeCache |
typedef enum ExprEvalOp | ExprEvalOp |
typedef struct ExprEvalStep | ExprEvalStep |
typedef struct SubscriptingRefState | SubscriptingRefState |
typedef struct SubscriptExecSteps | SubscriptExecSteps |
typedef struct JsonConstructorExprState | JsonConstructorExprState |
#define EEO_FLAG_DIRECT_THREADED (1 << 2) |
Definition at line 31 of file execExpr.h.
#define EEO_FLAG_INTERPRETER_INITIALIZED (1 << 1) |
Definition at line 29 of file execExpr.h.
typedef bool(* ExecEvalBoolSubroutine) (ExprState *state, struct ExprEvalStep *op, ExprContext *econtext) |
Definition at line 39 of file execExpr.h.
typedef void(* ExecEvalSubroutine) (ExprState *state, struct ExprEvalStep *op, ExprContext *econtext) |
Definition at line 34 of file execExpr.h.
typedef enum ExprEvalOp ExprEvalOp |
typedef struct ExprEvalRowtypeCache ExprEvalRowtypeCache |
typedef struct ExprEvalStep ExprEvalStep |
typedef struct JsonConstructorExprState JsonConstructorExprState |
typedef struct SubscriptExecSteps SubscriptExecSteps |
typedef struct SubscriptingRefState SubscriptingRefState |
enum ExprEvalOp |
Definition at line 66 of file execExpr.h.
void CheckExprStillValid | ( | ExprState * | state, |
ExprContext * | econtext | ||
) |
Definition at line 2055 of file execExprInterp.c.
References attnum, CheckVarSlotCompatibility(), ExprContext::ecxt_innertuple, ExprContext::ecxt_outertuple, ExprContext::ecxt_scantuple, EEOP_INNER_VAR, EEOP_OUTER_VAR, EEOP_SCAN_VAR, ExecEvalStepOp(), i, and ExprEvalStep::op.
Referenced by ExecInterpExprStillValid(), and ExecRunCompiledExpr().
Datum ExecAggCopyTransValue | ( | AggState * | aggstate, |
AggStatePerTrans | pertrans, | ||
Datum | newValue, | ||
bool | newValueIsNull, | ||
Datum | oldValue, | ||
bool | oldValueIsNull | ||
) |
Definition at line 5209 of file execExprInterp.c.
References Assert, AggState::curaggcontext, CurrentMemoryContext, datumCopy(), DatumGetEOHP(), DatumGetPointer(), DatumIsReadWriteExpandedObject, DeleteExpandedObject(), ExprContext::ecxt_per_tuple_memory, MemoryContextGetParent(), MemoryContextSwitchTo(), ExprEvalStep::pertrans, pfree(), AggStatePerTransData::transtypeByVal, and AggStatePerTransData::transtypeLen.
Referenced by advance_transition_function(), and ExecAggPlainTransByRef().
void ExecAggInitGroup | ( | AggState * | aggstate, |
AggStatePerTrans | pertrans, | ||
AggStatePerGroup | pergroup, | ||
ExprContext * | aggcontext | ||
) |
Definition at line 5156 of file execExprInterp.c.
References ExprEvalStep::aggcontext, FunctionCallInfoBaseData::args, datumCopy(), ExprContext::ecxt_per_tuple_memory, MemoryContextSwitchTo(), AggStatePerGroupData::noTransValue, ExprEvalStep::pertrans, AggStatePerTransData::transfn_fcinfo, AggStatePerTransData::transtypeByVal, AggStatePerTransData::transtypeLen, AggStatePerGroupData::transValue, AggStatePerGroupData::transValueIsNull, and NullableDatum::value.
Referenced by ExecInterpExpr().
void ExecEvalAggOrderedTransDatum | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 5348 of file execExprInterp.c.
References ExprEvalStep::op, ExprEvalStep::pertrans, ExprEvalStep::setno, AggStatePerTransData::sortstates, and tuplesort_putdatum().
Referenced by ExecInterpExpr().
void ExecEvalAggOrderedTransTuple | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 5362 of file execExprInterp.c.
References ExecClearTuple(), ExecStoreVirtualTuple(), AggStatePerTransData::numInputs, ExprEvalStep::op, ExprEvalStep::pertrans, ExprEvalStep::setno, AggStatePerTransData::sortslot, AggStatePerTransData::sortstates, TupleTableSlot::tts_nvalid, and tuplesort_puttupleslot().
Referenced by ExecInterpExpr().
void ExecEvalArrayCoerce | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 3197 of file execExprInterp.c.
References ARR_ELEMTYPE, array_map(), DatumGetArrayTypePCopy, ExprEvalStep::op, and PointerGetDatum().
Referenced by ExecInterpExpr().
void ExecEvalArrayExpr | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 2983 of file execExprInterp.c.
References AllocSizeIsValid, ARR_DATA_OFFSET, ARR_DATA_PTR, ARR_DIMS, ARR_ELEMTYPE, ARR_HASNULL, ARR_LBOUND, ARR_NDIM, ARR_NULLBITMAP, ARR_OVERHEAD_NONULLS, ARR_OVERHEAD_WITHNULLS, ARR_SIZE, array_bitmap_copy(), ArrayCheckBounds(), ArrayGetNItems(), construct_empty_array(), construct_md_array(), ArrayType::dataoffset, DatumGetArrayTypeP, ExprEvalStep::element_type, ArrayType::elemtype, ereport, errcode(), errdetail(), errmsg(), ERROR, format_type_be(), i, MaxAllocSize, MAXDIM, ArrayType::ndim, ExprEvalStep::nelems, nitems, ExprEvalStep::op, palloc(), palloc0(), PointerGetDatum(), and SET_VARSIZE.
Referenced by ExecInterpExpr().
void ExecEvalCoerceViaIOSafe | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 2717 of file execExprInterp.c.
References FunctionCallInfoBaseData::args, Assert, FunctionCallInfoBaseData::context, DatumGetCString(), FunctionCallInvoke, IsA, FunctionCallInfoBaseData::isnull, NullableDatum::isnull, ExprEvalStep::op, PointerGetDatum(), SOFT_ERROR_OCCURRED, str, and NullableDatum::value.
Referenced by ExecInterpExpr().
void ExecEvalConstraintCheck | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 4004 of file execExprInterp.c.
References DatumGetBool(), errcode(), errdomainconstraint(), errmsg(), errsave, format_type_be(), and ExprEvalStep::op.
Referenced by ExecInterpExpr().
void ExecEvalConstraintNotNull | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 3990 of file execExprInterp.c.
References errcode(), errdatatype(), errmsg(), errsave, format_type_be(), and ExprEvalStep::op.
Referenced by ExecInterpExpr().
void ExecEvalConvertRowtype | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 3510 of file execExprInterp.c.
References Assert, convert_tuples_by_name(), DatumGetHeapTupleHeader, DecrTupleDescRefCount(), ExprContext::ecxt_per_query_memory, execute_attr_map_tuple(), get_cached_rowtype(), heap_copy_tuple_as_datum(), HeapTupleGetDatum(), HeapTupleHeaderGetDatumLength, HeapTupleHeaderGetTypeId, IncrTupleDescRefCount(), MemoryContextSwitchTo(), ExprEvalStep::op, HeapTupleData::t_data, HeapTupleData::t_len, and TupleDescData::tdtypeid.
Referenced by ExecInterpExpr().
void ExecEvalCurrentOfExpr | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
void ExecEvalFieldSelect | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 3311 of file execExprInterp.c.
References Assert, DatumGetEOHP(), DatumGetHeapTupleHeader, DatumGetPointer(), elog, ER_MAGIC, ExpandedRecordHeader::er_magic, ereport, errcode(), errdetail(), errmsg(), ERROR, expanded_record_get_field(), expanded_record_get_tupdesc(), ExprEvalStep::fieldnum, format_type_be(), get_cached_rowtype(), heap_getattr(), HeapTupleHeaderGetDatumLength, HeapTupleHeaderGetTypeId, HeapTupleHeaderGetTypMod, TupleDescData::natts, ExprEvalStep::op, HeapTupleData::t_data, HeapTupleData::t_len, TupleDescAttr, and VARATT_IS_EXTERNAL_EXPANDED.
Referenced by ExecInterpExpr().
void ExecEvalFieldStoreDeForm | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 3436 of file execExprInterp.c.
References DatumGetHeapTupleHeader, elog, ERROR, get_cached_rowtype(), heap_deform_tuple(), HeapTupleHeaderGetDatumLength, InvalidOid, ItemPointerSetInvalid(), TupleDescData::natts, ExprEvalStep::op, HeapTupleData::t_data, HeapTupleData::t_len, HeapTupleData::t_self, HeapTupleData::t_tableOid, and unlikely.
Referenced by ExecInterpExpr().
void ExecEvalFieldStoreForm | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 3486 of file execExprInterp.c.
References get_cached_rowtype(), heap_form_tuple(), HeapTupleGetDatum(), and ExprEvalStep::op.
Referenced by ExecInterpExpr().
void ExecEvalFuncExprFusage | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 2572 of file execExprInterp.c.
References ExprEvalStep::d, FunctionCallInfoBaseData::isnull, ExprEvalStep::op, pgstat_end_function_usage(), and pgstat_init_function_usage().
Referenced by ExecInterpExpr().
void ExecEvalFuncExprStrictFusage | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 2593 of file execExprInterp.c.
References generate_unaccent_rules::args, FunctionCallInfoBaseData::args, ExprEvalStep::d, ExprEvalStep::isnull, FunctionCallInfoBaseData::isnull, ExprEvalStep::nargs, ExprEvalStep::op, pgstat_end_function_usage(), and pgstat_init_function_usage().
Referenced by ExecInterpExpr().
void ExecEvalGroupingFunc | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 4828 of file execExprInterp.c.
References attnum, bms_is_member(), castNode, AggState::grouped_cols, Int32GetDatum(), lfirst_int, and ExprEvalStep::op.
Referenced by ExecInterpExpr().
void ExecEvalHashedScalarArrayOp | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 3808 of file execExprInterp.c.
References FunctionCallInfoBaseData::args, ARR_DATA_PTR, ARR_DIMS, ARR_ELEMTYPE, ARR_NDIM, ARR_NULLBITMAP, ArrayGetNItems(), Assert, att_addlength_pointer, att_align_nominal, BoolGetDatum(), CurrentMemoryContext, DatumGetArrayTypeP, ExprContext::ecxt_per_query_memory, element(), ExprEvalStep::elements_tab, fetch_att(), fmgr_info(), fmgr_info_set_expr, get_typlenbyvalalign(), ExprEvalStep::has_nulls, ScalarArrayOpExprHashTable::hash_fcinfo_data, ScalarArrayOpExprHashTable::hash_finfo, ScalarArrayOpExprHashTable::hashtab, i, ExprEvalStep::inclause, InitFunctionCallInfoData, FunctionCallInfoBaseData::isnull, NullableDatum::isnull, MemoryContextSwitchTo(), nitems, ScalarArrayOpExprHashTable::op, ExprEvalStep::op, palloc0(), ExprEvalStep::saop, SizeForFunctionCallInfo, typalign, ExprEvalStep::typbyval, ExprEvalStep::typlen, and NullableDatum::value.
Referenced by ExecInterpExpr().
void ExecEvalJsonCoercion | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 4694 of file execExprInterp.c.
References bool_int4(), CStringGetDatum(), DatumGetBool(), DirectFunctionCall1, domain_check_safe(), ExprContext::ecxt_per_query_memory, ExprEvalStep::escontext, json_populate_type(), jsonb_in(), and ExprEvalStep::op.
Referenced by ExecInterpExpr().
void ExecEvalJsonCoercionFinish | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 4774 of file execExprInterp.c.
References BoolGetDatum(), DatumGetBool(), ErrorSaveContext::details_wanted, JsonExprState::empty, ereport, errcode(), errdetail(), errmsg(), JsonExprState::error, ERROR, ErrorSaveContext::error_data, ErrorSaveContext::error_occurred, JsonExprState::escontext, GetJsonBehaviorValueString(), ExprEvalStep::jsestate, JsonExprState::jsexpr, ErrorData::message, JsonExpr::on_empty, JsonExpr::on_error, ExprEvalStep::op, SOFT_ERROR_OCCURRED, and NullableDatum::value.
Referenced by ExecInterpExpr().
void ExecEvalJsonConstructor | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 4239 of file execExprInterp.c.
References JsonConstructorExpr::absent_on_null, JsonConstructorExprState::arg_nulls, JsonConstructorExprState::arg_type_cache, JsonConstructorExprState::arg_types, JsonConstructorExprState::arg_values, JsonConstructorExprState::category, JsonConstructorExprState::constructor, datum_to_json(), datum_to_jsonb(), DatumGetTextP, elog, ERROR, JsonReturning::format, JsonFormat::format_type, if(), ExprEvalStep::isnull, ExprEvalStep::jcstate, JS_FORMAT_JSONB, JSCTOR_JSON_ARRAY, JSCTOR_JSON_OBJECT, JSCTOR_JSON_PARSE, JSCTOR_JSON_SCALAR, json_build_array_worker(), json_build_object_worker(), json_validate(), jsonb_build_array_worker(), jsonb_build_object_worker(), jsonb_from_text(), JsonConstructorExprState::nargs, ExprEvalStep::op, JsonConstructorExprState::outfuncid, res, JsonConstructorExpr::returning, JsonConstructorExpr::type, JsonConstructorExpr::unique, and value.
Referenced by ExecInterpExpr().
int ExecEvalJsonExprPath | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 4417 of file execExprInterp.c.
References FunctionCallInfoBaseData::args, JsonExprState::args, Assert, BoolGetDatum(), JsonBehavior::btype, JsonExpr::column_name, CStringGetDatum(), DatumGetCString(), DatumGetJsonPathP(), DatumGetPointer(), ErrorSaveContext::details_wanted, DirectFunctionCall1, elog, JsonExprState::empty, ereport, errcode(), errmsg(), JsonExprState::error, ERROR, error(), ErrorSaveContext::error_data, ErrorSaveContext::error_occurred, JsonExprState::escontext, ExecGetJsonValueItemString(), JsonExprState::formatted_expr, FunctionCallInvoke, JsonExprState::input_fcinfo, FunctionCallInfoBaseData::isnull, NullableDatum::isnull, ExprEvalStep::jsestate, JsonExprState::jsexpr, JSON_BEHAVIOR_ERROR, JSON_EXISTS_OP, JSON_QUERY_OP, JSON_VALUE_OP, jsonb_out(), JsonbPGetDatum(), JsonbValueToJsonb(), JsonPathExists(), JsonPathQuery(), JsonPathValue(), JsonExprState::jump_empty, JsonExprState::jump_end, JsonExprState::jump_error, JsonExprState::jump_eval_coercion, JsonExpr::on_empty, JsonExpr::on_error, ExprEvalStep::op, JsonExpr::op, JsonExprState::pathspec, PointerGetDatum(), JsonExpr::returning, SOFT_ERROR_OCCURRED, textin(), JsonReturning::typid, JsonExpr::use_io_coercion, JsonExpr::use_json_coercion, val_string, NullableDatum::value, and JsonExpr::wrapper.
Referenced by ExecInterpExpr().
void ExecEvalJsonIsPredicate | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 4317 of file execExprInterp.c.
References BoolGetDatum(), DatumGetJsonbP(), DatumGetTextP, JsonIsPredicate::expr, exprType(), JsonIsPredicate::item_type, JB_ROOT_IS_ARRAY, JB_ROOT_IS_OBJECT, JB_ROOT_IS_SCALAR, JS_TYPE_ANY, JS_TYPE_ARRAY, JS_TYPE_OBJECT, JS_TYPE_SCALAR, json_get_first_token(), JSON_TOKEN_ARRAY_START, JSON_TOKEN_FALSE, JSON_TOKEN_NULL, JSON_TOKEN_NUMBER, JSON_TOKEN_OBJECT_START, JSON_TOKEN_STRING, JSON_TOKEN_TRUE, json_validate(), ExprEvalStep::op, ExprEvalStep::pred, res, and JsonIsPredicate::unique_keys.
Referenced by ExecInterpExpr().
void ExecEvalMergeSupportFunc | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 4855 of file execExprInterp.c.
References castNode, CMD_DELETE, CMD_INSERT, CMD_NOTHING, CMD_UPDATE, MergeAction::commandType, cstring_to_text_with_len(), elog, ERROR, MergeActionState::mas_action, ModifyTableState::mt_merge_action, ExprEvalStep::op, and PointerGetDatum().
Referenced by ExecInterpExpr().
void ExecEvalMinMax | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 3258 of file execExprInterp.c.
References FunctionCallInfoBaseData::args, Assert, DatumGetInt32(), FunctionCallInvoke, IS_GREATEST, IS_LEAST, FunctionCallInfoBaseData::isnull, NullableDatum::isnull, ExprEvalStep::nulls, ExprEvalStep::op, NullableDatum::value, and values.
Referenced by ExecInterpExpr().
void ExecEvalNextValueExpr | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 2855 of file execExprInterp.c.
References elog, ERROR, Int16GetDatum(), Int32GetDatum(), Int64GetDatum(), newval, nextval_internal(), and ExprEvalStep::op.
Referenced by ExecInterpExpr().
void ExecEvalParamExec | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 2630 of file execExprInterp.c.
References Assert, ExprContext::ecxt_param_exec_vals, ParamExecData::execPlan, ExecSetParamPlan(), ParamExecData::isnull, ExprEvalStep::op, unlikely, and ParamExecData::value.
Referenced by ExecInterpExpr().
void ExecEvalParamExtern | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 2652 of file execExprInterp.c.
References ExprContext::ecxt_param_list_info, ereport, errcode(), errmsg(), ERROR, format_type_be(), ParamExternData::isnull, likely, OidIsValid, ExprEvalStep::op, ParamListInfoData::paramFetch, ParamListInfoData::params, ParamExternData::ptype, unlikely, and ParamExternData::value.
Referenced by ExecInterpExpr().
void ExecEvalParamSet | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 2695 of file execExprInterp.c.
References Assert, ExprContext::ecxt_param_exec_vals, ParamExecData::execPlan, ParamExecData::isnull, ExprEvalStep::op, and ParamExecData::value.
Referenced by ExecInterpExpr().
bool ExecEvalPreOrderedDistinctMulti | ( | AggState * | aggstate, |
AggStatePerTrans | pertrans | ||
) |
Definition at line 5301 of file execExprInterp.c.
References FunctionCallInfoBaseData::args, ExprContext::ecxt_innertuple, ExprContext::ecxt_outertuple, AggStatePerTransData::equalfnMulti, ExecClearTuple(), ExecCopySlot(), ExecQual(), ExecStoreVirtualTuple(), AggStatePerTransData::haslast, i, NullableDatum::isnull, AggStatePerTransData::numInputs, AggStatePerTransData::numTransInputs, ExprEvalStep::pertrans, AggStatePerTransData::sortslot, AggState::tmpcontext, AggStatePerTransData::transfn_fcinfo, TupleTableSlot::tts_isnull, TupleTableSlot::tts_nvalid, TupleTableSlot::tts_values, AggStatePerTransData::uniqslot, and NullableDatum::value.
Referenced by ExecInterpExpr().
bool ExecEvalPreOrderedDistinctSingle | ( | AggState * | aggstate, |
AggStatePerTrans | pertrans | ||
) |
Definition at line 5258 of file execExprInterp.c.
References AggStatePerTransData::aggCollation, FunctionCallInfoBaseData::args, AggState::curaggcontext, datumCopy(), DatumGetBool(), DatumGetPointer(), ExprContext::ecxt_per_tuple_memory, AggStatePerTransData::equalfnOne, FunctionCall2Coll(), AggStatePerTransData::haslast, AggStatePerTransData::inputtypeByVal, AggStatePerTransData::inputtypeLen, ExprEvalStep::isnull, NullableDatum::isnull, AggStatePerTransData::lastdatum, AggStatePerTransData::lastisnull, MemoryContextSwitchTo(), ExprEvalStep::pertrans, pfree(), AggStatePerTransData::transfn_fcinfo, NullableDatum::value, and value.
Referenced by ExecInterpExpr().
void ExecEvalRow | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 3238 of file execExprInterp.c.
References heap_form_tuple(), HeapTupleGetDatum(), and ExprEvalStep::op.
Referenced by ExecInterpExpr().
void ExecEvalRowNotNull | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 2890 of file execExprInterp.c.
References ExecEvalRowNullInt(), and ExprEvalStep::op.
Referenced by ExecInterpExpr().
void ExecEvalRowNull | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 2881 of file execExprInterp.c.
References ExecEvalRowNullInt(), and ExprEvalStep::op.
Referenced by ExecInterpExpr().
void ExecEvalScalarArrayOp | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 3605 of file execExprInterp.c.
References FunctionCallInfoBaseData::args, ARR_DATA_PTR, ARR_DIMS, ARR_ELEMTYPE, ARR_NDIM, ARR_NULLBITMAP, ArrayGetNItems(), att_addlength_pointer, att_align_nominal, BoolGetDatum(), DatumGetArrayTypeP, DatumGetBool(), fetch_att(), get_typlenbyvalalign(), i, FunctionCallInfoBaseData::isnull, NullableDatum::isnull, nitems, ExprEvalStep::op, typalign, ExprEvalStep::typbyval, ExprEvalStep::typlen, ExprEvalStep::useOr, and NullableDatum::value.
Referenced by ExecInterpExpr().
void ExecEvalSQLValueFunction | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 2777 of file execExprInterp.c.
References current_database(), current_schema(), current_user(), DateADTGetDatum(), GetSQLCurrentDate(), GetSQLCurrentTime(), GetSQLCurrentTimestamp(), GetSQLLocalTime(), GetSQLLocalTimestamp(), InitFunctionCallInfoData, InvalidOid, LOCAL_FCINFO, ExprEvalStep::op, SQLValueFunction::op, session_user(), ExprEvalStep::svf, SVFOP_CURRENT_CATALOG, SVFOP_CURRENT_DATE, SVFOP_CURRENT_ROLE, SVFOP_CURRENT_SCHEMA, SVFOP_CURRENT_TIME, SVFOP_CURRENT_TIME_N, SVFOP_CURRENT_TIMESTAMP, SVFOP_CURRENT_TIMESTAMP_N, SVFOP_CURRENT_USER, SVFOP_LOCALTIME, SVFOP_LOCALTIME_N, SVFOP_LOCALTIMESTAMP, SVFOP_LOCALTIMESTAMP_N, SVFOP_SESSION_USER, SVFOP_USER, TimeADTGetDatum(), TimestampGetDatum(), TimestampTzGetDatum(), TimeTzADTPGetDatum(), and SQLValueFunction::typmod.
Referenced by ExecInterpExpr().
ExprEvalOp ExecEvalStepOp | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 2542 of file execExprInterp.c.
References Assert, EEO_FLAG_DIRECT_THREADED, EEOP_LAST, sort-test::key, ExprEvalStep::op, and res.
Referenced by CheckExprStillValid().
void ExecEvalSubPlan | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 4892 of file execExprInterp.c.
References check_stack_depth(), ExecSubPlan(), ExprEvalStep::op, and ExprEvalStep::sstate.
Referenced by ExecInterpExpr().
void ExecEvalSysVar | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext, | ||
TupleTableSlot * | slot | ||
) |
Definition at line 5136 of file execExprInterp.c.
References ExprEvalStep::d, elog, ERROR, ExprEvalStep::op, slot_getsysattr(), and unlikely.
Referenced by ExecInterpExpr().
void ExecEvalWholeRowVar | ( | ExprState * | state, |
ExprEvalStep * | op, | ||
ExprContext * | econtext | ||
) |
Definition at line 4909 of file execExprInterp.c.
References Assert, BlessTupleDesc(), CreateTupleDescCopy(), ExprContext::ecxt_estate, ExprContext::ecxt_innertuple, ExprContext::ecxt_outertuple, ExprContext::ecxt_per_query_memory, ExprContext::ecxt_scantuple, ereport, errcode(), errdetail(), errdetail_plural(), errmsg(), ERROR, EState::es_range_table_size, exec_rt_fetch(), ExecFilterJunk(), ExecTypeSetColNames(), format_type_be(), HeapTupleHeaderSetTypeId, HeapTupleHeaderSetTypMod, i, INNER_VAR, InvalidAttrNumber, lookup_rowtype_tupdesc_domain(), MemoryContextSwitchTo(), TupleDescData::natts, ExprEvalStep::op, OUTER_VAR, PointerGetDatum(), ReleaseTupleDesc, slot_getallattrs(), HeapTupleData::t_data, TupleDescData::tdtypeid, TupleDescData::tdtypmod, toast_build_flattened_tuple(), TupleTableSlot::tts_isnull, TupleTableSlot::tts_tupleDescriptor, TupleTableSlot::tts_values, and TupleDescAttr.
Referenced by ExecInterpExpr().
void ExecEvalXmlExpr | ( | ExprState * | state, |
ExprEvalStep * | op | ||
) |
Definition at line 4024 of file execExprInterp.c.
References appendStringInfo(), arg, ExprEvalStep::argnull, XmlExpr::args, ExprEvalStep::argvalue, Assert, BoolGetDatum(), buf, cstring_to_text_with_len(), data, DatumGetBool(), DatumGetInt32(), DatumGetPointer(), DatumGetTextPP, DatumGetXmlP(), elog, ERROR, exprType(), forboth, i, XmlExpr::indent, initStringInfo(), IS_DOCUMENT, IS_XMLCONCAT, IS_XMLELEMENT, IS_XMLFOREST, IS_XMLPARSE, IS_XMLPI, IS_XMLROOT, IS_XMLSERIALIZE, ExprEvalStep::isnull, lappend(), lfirst, list_length(), map_sql_value_to_xml_value(), XmlExpr::named_args, NIL, ExprEvalStep::op, XmlExpr::op, pfree(), PointerGetDatum(), strVal, value, values, ExprEvalStep::xexpr, xml_is_document(), xmlconcat(), xmlelement(), xmlparse(), xmlpi(), xmlroot(), and xmltotext_with_options().
Referenced by ExecInterpExpr().
Datum ExecInterpExprStillValid | ( | ExprState * | state, |
ExprContext * | econtext, | ||
bool * | isNull | ||
) |
Definition at line 2035 of file execExprInterp.c.
References CheckExprStillValid().
Referenced by ExecReadyInterpretedExpr().
void ExecReadyInterpretedExpr | ( | ExprState * | state | ) |
Definition at line 236 of file execExprInterp.c.
References Assert, EEO_FLAG_DIRECT_THREADED, EEO_FLAG_INTERPRETER_INITIALIZED, EEO_OPCODE, EEOP_ASSIGN_INNER_VAR, EEOP_ASSIGN_OUTER_VAR, EEOP_ASSIGN_SCAN_VAR, EEOP_CASE_TESTVAL, EEOP_CONST, EEOP_DONE, EEOP_FUNCEXPR_STRICT, EEOP_INNER_FETCHSOME, EEOP_INNER_VAR, EEOP_OUTER_FETCHSOME, EEOP_OUTER_VAR, EEOP_SCAN_FETCHSOME, EEOP_SCAN_VAR, ExecInitInterpreter(), ExecInterpExpr(), ExecInterpExprStillValid(), ExecJustApplyFuncToCase(), ExecJustAssignInnerVar(), ExecJustAssignInnerVarVirt(), ExecJustAssignOuterVar(), ExecJustAssignOuterVarVirt(), ExecJustAssignScanVar(), ExecJustAssignScanVarVirt(), ExecJustConst(), ExecJustInnerVar(), ExecJustInnerVarVirt(), ExecJustOuterVar(), ExecJustOuterVarVirt(), ExecJustScanVar(), ExecJustScanVarVirt(), and ExprEvalStep::op.
Referenced by ExecReadyExpr().
void ExprEvalPushStep | ( | ExprState * | es, |
const ExprEvalStep * | s | ||
) |
Definition at line 2592 of file execExpr.c.
References palloc(), repalloc(), ExprState::steps, ExprState::steps_alloc, and ExprState::steps_len.
Referenced by ExecBuildAggTrans(), ExecBuildAggTransCall(), ExecBuildGroupingEqual(), ExecBuildHash32Expr(), ExecBuildParamSetEqual(), ExecBuildProjectionInfo(), ExecBuildUpdateProjection(), ExecInitCoerceToDomain(), ExecInitExpr(), ExecInitExprRec(), ExecInitExprWithParams(), ExecInitJsonCoercion(), ExecInitJsonExpr(), ExecInitQual(), ExecInitSubPlanExpr(), ExecInitSubscriptingRef(), ExecPushExprSetupSteps(), and plpgsql_param_compile().
StaticAssertDecl | ( | sizeof(ExprEvalStep)<= | 64, |
"size of ExprEvalStep exceeds 64 bytes" | |||
) |