238 Size initBlockSize,
Size maxBlockSize)
336 initBlockSize, maxBlockSize);
547 for (
int i = 1;
i < nplans;
i++)
554 if (result != thisops)
633 int numattrs = tupdesc->
natts;
638 for (attrno = 1; attrno <= numattrs; attrno++)
643 if (tlist_item == NULL)
646 if (!var || !
IsA(var,
Var))
653 if (att_tup->attisdropped)
655 if (att_tup->atthasmissing)
668 if (var->vartype != att_tup->atttypid ||
669 (var->vartypmod != att_tup->atttypmod &&
670 var->vartypmod != -1))
673 tlist_item =
lnext(tlist, tlist_item);
758 (
errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
759 errmsg(
"materialized view \"%s\" has not been populated",
761 errhint(
"Use the REFRESH MATERIALIZED VIEW command.")));
822 Assert(rti > 0 && rti <= estate->es_range_table_size);
988 while ((ecxt_callback = *prev_callback) != NULL)
992 *prev_callback = ecxt_callback->
next;
993 pfree(ecxt_callback);
996 prev_callback = &ecxt_callback->
next;
1033 pfree(ecxt_callback);
1065 elog(
ERROR,
"a NULL isNull pointer was passed");
1079 for (
i = 0;
i < tupDesc->
natts;
i++)
1085 attrno = att->attnum;
1125 elog(
ERROR,
"invalid attribute number %d", attrno);
1128 elog(
ERROR,
"a NULL isNull pointer was passed");
1180 foreach(tl, targetlist)
1184 if (!curTle->resjunk)
1338 !childrel->
rd_rel->relispartition);
1355 if (perminfo == NULL)
1376 if (perminfo == NULL)
1484 if (perminfo == NULL)
1485 elog(
ERROR,
"no RTEPermissionInfo found for result relation with OID %u",
AttrMap * build_attrmap_by_name_if_req(TupleDesc indesc, TupleDesc outdesc, bool missing_ok)
#define AttributeNumberIsValid(attributeNumber)
#define InvalidAttrNumber
Bitmapset * bms_intersect(const Bitmapset *a, const Bitmapset *b)
Bitmapset * bms_union(const Bitmapset *a, const Bitmapset *b)
Bitmapset * bms_join(Bitmapset *a, Bitmapset *b)
#define Assert(condition)
int errhint(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
int errposition(int cursorpos)
#define ereport(elevel,...)
ProjectionInfo * ExecBuildProjectionInfo(List *targetList, ExprContext *econtext, TupleTableSlot *slot, PlanState *parent, TupleDesc inputDesc)
void InitResultRelInfo(ResultRelInfo *resultRelInfo, Relation resultRelationDesc, Index resultRelationIndex, ResultRelInfo *partition_root_rri, int instrument_options)
const TupleTableSlotOps TTSOpsVirtual
void ExecInitResultSlot(PlanState *planstate, const TupleTableSlotOps *tts_ops)
void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
TupleTableSlot * ExecInitExtraTupleSlot(EState *estate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
void ExecSetSlotDescriptor(TupleTableSlot *slot, TupleDesc tupdesc)
TupleTableSlot * ExecStoreAllNullTuple(TupleTableSlot *slot)
TupleDesc ExecGetResultType(PlanState *planstate)
TupleConversionMap * ExecGetRootToChildMap(ResultRelInfo *resultRelInfo, EState *estate)
Bitmapset * ExecGetExtraUpdatedCols(ResultRelInfo *relinfo, EState *estate)
static void ShutdownExprContext(ExprContext *econtext, bool isCommit)
Bitmapset * ExecGetInsertedCols(ResultRelInfo *relinfo, EState *estate)
TupleTableSlot * ExecGetTriggerNewSlot(EState *estate, ResultRelInfo *relInfo)
void ReScanExprContext(ExprContext *econtext)
ExprContext * CreateExprContext(EState *estate)
static RTEPermissionInfo * GetResultRTEPermissionInfo(ResultRelInfo *relinfo, EState *estate)
TupleConversionMap * ExecGetChildToRootMap(ResultRelInfo *resultRelInfo)
ExprContext * CreateStandaloneExprContext(void)
TupleTableSlot * ExecGetTriggerOldSlot(EState *estate, ResultRelInfo *relInfo)
int executor_errposition(EState *estate, int location)
Datum GetAttributeByNum(HeapTupleHeader tuple, AttrNumber attrno, bool *isNull)
void FreeExprContext(ExprContext *econtext, bool isCommit)
void ExecInitRangeTable(EState *estate, List *rangeTable, List *permInfos, Bitmapset *unpruned_relids)
static bool tlist_matches_tupdesc(PlanState *ps, List *tlist, int varno, TupleDesc tupdesc)
Bitmapset * ExecGetUpdatedCols(ResultRelInfo *relinfo, EState *estate)
const TupleTableSlotOps * ExecGetCommonSlotOps(PlanState **planstates, int nplans)
void ExecInitResultRelation(EState *estate, ResultRelInfo *resultRelInfo, Index rti)
void ExecCreateScanSlotFromOuterPlan(EState *estate, ScanState *scanstate, const TupleTableSlotOps *tts_ops)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
Relation ExecGetRangeTableRelation(EState *estate, Index rti)
void ExecAssignProjectionInfo(PlanState *planstate, TupleDesc inputDesc)
ExprContext * MakePerTupleExprContext(EState *estate)
void UnregisterExprContextCallback(ExprContext *econtext, ExprContextCallbackFunction function, Datum arg)
void ExecAssignScanType(ScanState *scanstate, TupleDesc tupDesc)
const TupleTableSlotOps * ExecGetCommonChildSlotOps(PlanState *ps)
void ExecConditionalAssignProjectionInfo(PlanState *planstate, TupleDesc inputDesc, int varno)
void RegisterExprContextCallback(ExprContext *econtext, ExprContextCallbackFunction function, Datum arg)
int ExecTargetListLength(List *targetlist)
void FreeExecutorState(EState *estate)
bool ExecRelationIsTargetRelation(EState *estate, Index scanrelid)
static ExprContext * CreateExprContextInternal(EState *estate, Size minContextSize, Size initBlockSize, Size maxBlockSize)
TupleTableSlot * ExecGetAllNullSlot(EState *estate, ResultRelInfo *relInfo)
int ExecCleanTargetListLength(List *targetlist)
ExprContext * CreateWorkExprContext(EState *estate)
void UpdateChangedParamSet(PlanState *node, Bitmapset *newchg)
const TupleTableSlotOps * ExecGetResultSlotOps(PlanState *planstate, bool *isfixed)
Datum GetAttributeByName(HeapTupleHeader tuple, const char *attname, bool *isNull)
Bitmapset * ExecGetAllUpdatedCols(ResultRelInfo *relinfo, EState *estate)
TupleTableSlot * ExecGetReturningSlot(EState *estate, ResultRelInfo *relInfo)
Relation ExecOpenScanRelation(EState *estate, Index scanrelid, int eflags)
Oid ExecGetResultRelCheckAsUser(ResultRelInfo *relInfo, EState *estate)
EState * CreateExecutorState(void)
void(* ExprContextCallbackFunction)(Datum arg)
#define outerPlanState(node)
#define innerPlanState(node)
#define EXEC_FLAG_WITH_NO_DATA
static RangeTblEntry * exec_rt_fetch(Index rti, EState *estate)
#define GetPerTupleMemoryContext(estate)
#define EXEC_FLAG_EXPLAIN_ONLY
static Datum heap_getattr(HeapTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull)
static int32 HeapTupleHeaderGetTypMod(const HeapTupleHeaderData *tup)
static uint32 HeapTupleHeaderGetDatumLength(const HeapTupleHeaderData *tup)
static Oid HeapTupleHeaderGetTypeId(const HeapTupleHeaderData *tup)
#define IsParallelWorker()
static void ItemPointerSetInvalid(ItemPointerData *pointer)
void jit_release_context(JitContext *context)
List * list_delete_ptr(List *list, void *datum)
List * lappend(List *list, void *datum)
List * lcons(void *datum, List *list)
bool list_member_int(const List *list, int datum)
bool CheckRelationLockedByMe(Relation relation, LOCKMODE lockmode, bool orstronger)
int pg_mbstrlen_with_len(const char *mbstr, int limit)
void * MemoryContextAlloc(MemoryContext context, Size size)
void MemoryContextReset(MemoryContext context)
void pfree(void *pointer)
void * palloc0(Size size)
MemoryContext CurrentMemoryContext
void MemoryContextDelete(MemoryContext context)
#define AllocSetContextCreate
#define ALLOCSET_DEFAULT_MAXSIZE
#define ALLOCSET_DEFAULT_MINSIZE
#define ALLOCSET_DEFAULT_SIZES
#define ALLOCSET_DEFAULT_INITSIZE
int namestrcmp(Name name, const char *str)
void ExecInitGenerated(ResultRelInfo *resultRelInfo, EState *estate, CmdType cmdtype)
#define IsA(nodeptr, _type_)
static MemoryContext MemoryContextSwitchTo(MemoryContext context)
RTEPermissionInfo * getRTEPermissionInfo(List *rteperminfos, RangeTblEntry *rte)
void DestroyPartitionDirectory(PartitionDirectory pdir)
FormData_pg_attribute * Form_pg_attribute
on_exit_nicely_callback function
#define lfirst_node(type, lc)
static int list_length(const List *l)
static ListCell * list_head(const List *l)
static ListCell * lnext(const List *l, const ListCell *c)
#define RelationGetRelid(relation)
#define RelationIsScannable(relation)
#define RelationGetDescr(relation)
#define RelationGetRelationName(relation)
List * es_part_prune_infos
struct ExecRowMark ** es_rowmarks
int es_parallel_workers_to_launch
List * es_tuple_routing_result_relations
struct JitContext * es_jit
PlannedStmt * es_plannedstmt
QueryEnvironment * es_queryEnv
ResultRelInfo ** es_result_relations
ParamExecData * es_param_exec_vals
uint64 es_total_processed
Bitmapset * es_unpruned_relids
ParamListInfo es_param_list_info
List * es_insert_pending_result_relations
MemoryContext es_query_cxt
ScanDirection es_direction
PartitionDirectory es_partition_directory
List * es_trig_target_relations
List * es_opened_result_relations
bool es_use_parallel_mode
ExprContext * es_per_tuple_exprcontext
int es_parallel_workers_launched
Index es_range_table_size
List * es_insert_pending_modifytables
const char * es_sourceText
List * es_auxmodifytables
JunkFilter * es_junkFilter
Snapshot es_crosscheck_snapshot
struct ExprContext_CB * next
ExprContextCallbackFunction function
ParamListInfo ecxt_param_list_info
MemoryContext ecxt_per_tuple_memory
TupleTableSlot * ecxt_innertuple
ParamExecData * ecxt_param_exec_vals
TupleTableSlot * ecxt_scantuple
MemoryContext ecxt_per_query_memory
ExprContext_CB * ecxt_callbacks
struct EState * ecxt_estate
TupleTableSlot * ecxt_outertuple
const TupleTableSlotOps * resultops
const TupleTableSlotOps * scanops
TupleDesc ps_ResultTupleDesc
ExprContext * ps_ExprContext
TupleTableSlot * ps_ResultTupleSlot
ProjectionInfo * ps_ProjInfo
TupleConversionMap * ri_RootToChildMap
struct ResultRelInfo * ri_RootResultRelInfo
TupleTableSlot * ri_ReturningSlot
bool ri_extraUpdatedCols_valid
bool ri_RootToChildMapValid
TupleTableSlot * ri_AllNullSlot
Bitmapset * ri_extraUpdatedCols
TupleConversionMap * ri_ChildToRootMap
bool ri_ChildToRootMapValid
TupleTableSlot * ri_TrigNewSlot
TupleTableSlot * ri_TrigOldSlot
TupleTableSlot * ss_ScanTupleSlot
const TupleTableSlotOps *const tts_ops
Relation table_open(Oid relationId, LOCKMODE lockmode)
const TupleTableSlotOps * table_slot_callbacks(Relation relation)
TupleConversionMap * convert_tuples_by_name(TupleDesc indesc, TupleDesc outdesc)
TupleConversionMap * convert_tuples_by_name_attrmap(TupleDesc indesc, TupleDesc outdesc, AttrMap *attrMap)
Bitmapset * execute_attr_map_cols(AttrMap *attrMap, Bitmapset *in_cols)
#define ReleaseTupleDesc(tupdesc)
static FormData_pg_attribute * TupleDescAttr(TupleDesc tupdesc, int i)
TupleDesc lookup_rowtype_tupdesc(Oid type_id, int32 typmod)