62 if (!(*recheckMtd) (node, slot))
85 if (!(*recheckMtd) (node, slot))
95 return (*accessMtd) (node);
142 if (!qual && !projInfo)
208 if (!qual ||
ExecQual(qual, econtext,
false))
288 int numattrs = tupdesc->
natts;
294 for (attrno = 1; attrno <= numattrs; attrno++)
299 if (tlist_item ==
NULL)
302 if (!var || !
IsA(var,
Var))
309 if (att_tup->attisdropped)
322 if (var->
vartype != att_tup->atttypid ||
327 tlist_item =
lnext(tlist_item);
TupleTableSlot * ExecStoreTuple(HeapTuple tuple, TupleTableSlot *slot, Buffer buffer, bool shouldFree)
#define IsA(nodeptr, _type_)
ProjectionInfo * ps_ProjInfo
static TupleTableSlot * ExecScanFetch(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd)
TupleTableSlot * ExecScan(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd)
ExprContext * ps_ExprContext
int bms_next_member(const Bitmapset *a, int prevbit)
TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)
Form_pg_attribute * attrs
TupleTableSlot * ExecProject(ProjectionInfo *projInfo, ExprDoneCond *isDone)
TupleTableSlot * ss_ScanTupleSlot
TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)
void ExecAssignScanProjectionInfoWithVarno(ScanState *node, Index varno)
bool(* ExecScanRecheckMtd)(ScanState *node, TupleTableSlot *slot)
void ExecAssignScanProjectionInfo(ScanState *node)
void ExecAssignProjectionInfo(PlanState *planstate, TupleDesc inputDesc)
bool ExecQual(List *qual, ExprContext *econtext, bool resultForNull)
static ListCell * list_head(const List *l)
FormData_pg_attribute * Form_pg_attribute
#define InstrCountFiltered1(node, delta)
TupleDesc tts_tupleDescriptor
static bool tlist_matches_tupdesc(PlanState *ps, List *tlist, Index varno, TupleDesc tupdesc)
#define Assert(condition)
TupleTableSlot * ecxt_scantuple
void ExecScanReScan(ScanState *node)
#define CHECK_FOR_INTERRUPTS()
bool ExecContextForcesOids(PlanState *planstate, bool *hasoids)
#define ResetExprContext(econtext)