56 if (!forward && eof_tuplestore)
69 eof_tuplestore =
false;
84 eof_tuplestore =
true;
210 scanstate->
eflags = eflags;
230 if (scanstate->
leader == NULL)
234 scanstate->
leader = scanstate;
#define Assert(condition)
ExprState * ExecInitQual(List *qual, PlanState *parent)
TupleTableSlot * ExecScan(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd)
void ExecAssignScanProjectionInfo(ScanState *node)
void ExecScanReScan(ScanState *node)
void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
void ExecInitResultTypeTL(PlanState *planstate)
const TupleTableSlotOps TTSOpsMinimalTuple
TupleDesc ExecGetResultType(PlanState *planstate)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)
bool(* ExecScanRecheckMtd)(ScanState *node, TupleTableSlot *slot)
static TupleTableSlot * ExecProcNode(PlanState *node)
CteScanState * ExecInitCteScan(CteScan *node, EState *estate, int eflags)
static TupleTableSlot * ExecCteScan(PlanState *pstate)
void ExecReScanCteScan(CteScanState *node)
static bool CteScanRecheck(CteScanState *node, TupleTableSlot *slot)
void ExecEndCteScan(CteScanState *node)
static TupleTableSlot * CteScanNext(CteScanState *node)
#define castNode(_type_, nodeptr)
static void * list_nth(const List *list, int n)
static Datum PointerGetDatum(const void *X)
static Pointer DatumGetPointer(Datum X)
#define ScanDirectionIsForward(direction)
Tuplestorestate * cte_table
struct CteScanState * leader
ParamExecData * es_param_exec_vals
ScanDirection es_direction
TupleTableSlot * ps_ResultTupleSlot
ExecProcNodeMtd ExecProcNode
TupleTableSlot * ss_ScanTupleSlot
bool tuplestore_gettupleslot(Tuplestorestate *state, bool forward, bool copy, TupleTableSlot *slot)
void tuplestore_puttupleslot(Tuplestorestate *state, TupleTableSlot *slot)
void tuplestore_select_read_pointer(Tuplestorestate *state, int ptr)
void tuplestore_clear(Tuplestorestate *state)
Tuplestorestate * tuplestore_begin_heap(bool randomAccess, bool interXact, int maxKBytes)
void tuplestore_rescan(Tuplestorestate *state)
int tuplestore_alloc_read_pointer(Tuplestorestate *state, int eflags)
bool tuplestore_advance(Tuplestorestate *state, bool forward)
void tuplestore_end(Tuplestorestate *state)
bool tuplestore_ateof(Tuplestorestate *state)
void tuplestore_set_eflags(Tuplestorestate *state, int eflags)
static TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)
static TupleTableSlot * ExecCopySlot(TupleTableSlot *dstslot, TupleTableSlot *srcslot)