232 Size initBlockSize,
Size maxBlockSize)
323 while (16 * maxBlockSize >
work_mem * 1024L)
330 initBlockSize, maxBlockSize);
584 int numattrs = tupdesc->
natts;
589 for (attrno = 1; attrno <= numattrs; attrno++)
594 if (tlist_item == NULL)
597 if (!var || !
IsA(var,
Var))
604 if (att_tup->attisdropped)
606 if (att_tup->atthasmissing)
619 if (var->
vartype != att_tup->atttypid ||
624 tlist_item =
lnext(tlist, tlist_item);
735 (
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
736 errmsg(
"materialized view \"%s\" has not been populated",
738 errhint(
"Use the REFRESH MATERIALIZED VIEW command.")));
786 Assert(rti > 0 && rti <= estate->es_range_table_size);
960 while ((ecxt_callback = *prev_callback) != NULL)
962 if (ecxt_callback->
function ==
function && ecxt_callback->
arg == arg)
964 *prev_callback = ecxt_callback->
next;
965 pfree(ecxt_callback);
968 prev_callback = &ecxt_callback->
next;
1005 pfree(ecxt_callback);
1033 if (attname == NULL)
1037 elog(
ERROR,
"a NULL isNull pointer was passed");
1051 for (i = 0; i < tupDesc->
natts; i++)
1055 if (
namestrcmp(&(att->attname), attname) == 0)
1057 attrno = att->attnum;
1063 elog(
ERROR,
"attribute \"%s\" does not exist", attname);
1097 elog(
ERROR,
"invalid attribute number %d", attrno);
1100 elog(
ERROR,
"a NULL isNull pointer was passed");
1152 foreach(tl, targetlist)
void ExecInitRangeTable(EState *estate, List *rangeTable)
ExprContext * CreateStandaloneExprContext(void)
JunkFilter * es_junkFilter
int ExecTargetListLength(List *targetlist)
#define IsA(nodeptr, _type_)
Bitmapset * ExecGetExtraUpdatedCols(ResultRelInfo *relinfo, EState *estate)
void MemoryContextDelete(MemoryContext context)
#define AllocSetContextCreate
int errhint(const char *fmt,...)
TupleTableSlot * ExecInitExtraTupleSlot(EState *estate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
TupleTableSlot * ExecGetReturningSlot(EState *estate, ResultRelInfo *relInfo)
ProjectionInfo * ps_ProjInfo
const TupleTableSlotOps * ExecGetResultSlotOps(PlanState *planstate, bool *isfixed)
TupleDesc lookup_rowtype_tupdesc(Oid type_id, int32 typmod)
struct JitContext * es_jit
static ListCell * lnext(const List *l, const ListCell *c)
#define RelationGetDescr(relation)
#define RelationIsScannable(relation)
void ExecInitResultRelation(EState *estate, ResultRelInfo *resultRelInfo, Index rti)
void UnregisterExprContextCallback(ExprContext *econtext, ExprContextCallbackFunction function, Datum arg)
#define TupleDescAttr(tupdesc, i)
ExprContext * ps_ExprContext
MemoryContext ecxt_per_tuple_memory
static ExprContext * CreateExprContextInternal(EState *estate, Size minContextSize, Size initBlockSize, Size maxBlockSize)
const TupleTableSlotOps * table_slot_callbacks(Relation relation)
Bitmapset * ExecGetUpdatedCols(ResultRelInfo *relinfo, EState *estate)
const TupleTableSlotOps TTSOpsVirtual
Bitmapset * ExecGetAllUpdatedCols(ResultRelInfo *relinfo, EState *estate)
static MemoryContext MemoryContextSwitchTo(MemoryContext context)
PlannedStmt * es_plannedstmt
Snapshot es_crosscheck_snapshot
TupleTableSlot * ExecGetTriggerOldSlot(EState *estate, ResultRelInfo *relInfo)
const TupleTableSlotOps *const tts_ops
int errcode(int sqlerrcode)
int namestrcmp(Name name, const char *str)
ExprContext * es_per_tuple_exprcontext
#define EXEC_FLAG_WITH_NO_DATA
Datum GetAttributeByName(HeapTupleHeader tuple, const char *attname, bool *isNull)
TupleTableSlot * ss_ScanTupleSlot
void MemoryContextReset(MemoryContext context)
List * list_delete_ptr(List *list, void *datum)
void ExecConditionalAssignProjectionInfo(PlanState *planstate, TupleDesc inputDesc, Index varno)
TupleTableSlot * ri_TrigNewSlot
TupleTableSlot * ExecGetTriggerNewSlot(EState *estate, ResultRelInfo *relInfo)
void ExecFreeExprContext(PlanState *planstate)
ScanDirection es_direction
#define ALLOCSET_DEFAULT_MINSIZE
const TupleTableSlotOps * resultops
bool es_use_parallel_mode
int pg_mbstrlen_with_len(const char *mbstr, int limit)
struct ExecRowMark ** es_rowmarks
#define HeapTupleHeaderGetTypMod(tup)
void FreeExecutorState(EState *estate)
const char * es_sourceText
Bitmapset * extraUpdatedCols
TupleTableSlot * ps_ResultTupleSlot
ParamExecData * es_param_exec_vals
void pfree(void *pointer)
MemoryContext es_query_cxt
ExprContextCallbackFunction function
void DestroyPartitionDirectory(PartitionDirectory pdir)
Bitmapset * bms_join(Bitmapset *a, Bitmapset *b)
Relation ExecOpenScanRelation(EState *estate, Index scanrelid, int eflags)
ExprContext_CB * ecxt_callbacks
struct ResultRelInfo * ri_RootResultRelInfo
#define ALLOCSET_DEFAULT_SIZES
#define lfirst_node(type, lc)
#define outerPlanState(node)
bool list_member_int(const List *list, int datum)
void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
const TupleTableSlotOps * scanops
void ExecAssignProjectionInfo(PlanState *planstate, TupleDesc inputDesc)
TupleTableSlot * ri_ReturningSlot
List * es_opened_result_relations
TupleTableSlot * ecxt_innertuple
ParamExecData * ecxt_param_exec_vals
#define RelationGetRelationName(relation)
struct EState * ecxt_estate
static ListCell * list_head(const List *l)
static RangeTblEntry * exec_rt_fetch(Index rti, EState *estate)
FormData_pg_attribute * Form_pg_attribute
MemoryContext CurrentMemoryContext
ResultRelInfo ** es_result_relations
#define IsParallelWorker()
EState * CreateExecutorState(void)
struct ExprContext_CB * next
List * lappend(List *list, void *datum)
int ExecCleanTargetListLength(List *targetlist)
QueryEnvironment * es_queryEnv
bool bms_is_empty(const Bitmapset *a)
static void ShutdownExprContext(ExprContext *econtext, bool isCommit)
#define heap_getattr(tup, attnum, tupleDesc, isnull)
TupleDesc ps_ResultTupleDesc
#define AttributeNumberIsValid(attributeNumber)
List * es_trig_target_relations
void * palloc0(Size size)
List * es_auxmodifytables
void InitResultRelInfo(ResultRelInfo *resultRelInfo, Relation resultRelationDesc, Index resultRelationIndex, ResultRelInfo *partition_root_rri, int instrument_options)
void ExecSetSlotDescriptor(TupleTableSlot *slot, TupleDesc tupdesc)
Bitmapset * bms_intersect(const Bitmapset *a, const Bitmapset *b)
void FreeExprContext(ExprContext *econtext, bool isCommit)
#define HeapTupleHeaderGetTypeId(tup)
List * es_tuple_routing_result_relations
#define ereport(elevel,...)
void UpdateChangedParamSet(PlanState *node, Bitmapset *newchg)
int executor_errposition(EState *estate, int location)
Relation ExecGetRangeTableRelation(EState *estate, Index rti)
List * lcons(void *datum, List *list)
void bms_free(Bitmapset *a)
TupleTableSlot * ecxt_outertuple
TupleTableSlot * ri_TrigOldSlot
#define Assert(condition)
void RegisterExprContextCallback(ExprContext *econtext, ExprContextCallbackFunction function, Datum arg)
void ExecInitResultSlot(PlanState *planstate, const TupleTableSlotOps *tts_ops)
void(* ExprContextCallbackFunction)(Datum arg)
Bitmapset * bms_union(const Bitmapset *a, const Bitmapset *b)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
static int list_length(const List *l)
TupleTableSlot * ecxt_scantuple
Index es_range_table_size
void ReScanExprContext(ExprContext *econtext)
static bool tlist_matches_tupdesc(PlanState *ps, List *tlist, Index varno, TupleDesc tupdesc)
Bitmapset * ExecGetInsertedCols(ResultRelInfo *relinfo, EState *estate)
PartitionDirectory es_partition_directory
MemoryContext ecxt_per_query_memory
bool CheckRelationLockedByMe(Relation relation, LOCKMODE lockmode, bool orstronger)
TupleDesc ExecGetResultType(PlanState *planstate)
#define InvalidAttrNumber
#define ItemPointerSetInvalid(pointer)
void jit_release_context(JitContext *context)
TupleConversionMap * ri_RootToPartitionMap
ProjectionInfo * ExecBuildProjectionInfo(List *targetList, ExprContext *econtext, TupleTableSlot *slot, PlanState *parent, TupleDesc inputDesc)
int errmsg(const char *fmt,...)
void * MemoryContextAlloc(MemoryContext context, Size size)
ExprContext * MakePerTupleExprContext(EState *estate)
#define ALLOCSET_DEFAULT_INITSIZE
ExprContext * CreateExprContext(EState *estate)
void ExecAssignScanType(ScanState *scanstate, TupleDesc tupDesc)
ParamListInfo es_param_list_info
Bitmapset * execute_attr_map_cols(AttrMap *attrMap, Bitmapset *in_cols)
#define ALLOCSET_DEFAULT_MAXSIZE
ExprContext * CreateWorkExprContext(EState *estate)
void ExecCreateScanSlotFromOuterPlan(EState *estate, ScanState *scanstate, const TupleTableSlotOps *tts_ops)
Datum GetAttributeByNum(HeapTupleHeader tuple, AttrNumber attrno, bool *isNull)
#define ReleaseTupleDesc(tupdesc)
ParamListInfo ecxt_param_list_info
Relation table_open(Oid relationId, LOCKMODE lockmode)
#define EXEC_FLAG_EXPLAIN_ONLY
bool ExecRelationIsTargetRelation(EState *estate, Index scanrelid)
int errposition(int cursorpos)
#define HeapTupleHeaderGetDatumLength(tup)