95 param = &(estate->es_param_exec_vals[plan->
wtParam]);
void tuplestore_rescan(Tuplestorestate *state)
#define IsA(nodeptr, _type_)
void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate)
#define ScanDirectionIsForward(direction)
static TupleTableSlot * WorkTableScanNext(WorkTableScanState *node)
TupleTableSlot * ExecScan(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd)
void ExecEndWorkTableScan(WorkTableScanState *node)
TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)
TupleTableSlot * ss_ScanTupleSlot
void ExecReScanWorkTableScan(WorkTableScanState *node)
void ExecFreeExprContext(PlanState *planstate)
ScanDirection es_direction
void ExecAssignResultTypeFromTL(PlanState *planstate)
TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)
bool(* ExecScanRecheckMtd)(ScanState *node, TupleTableSlot *slot)
TupleTableSlot * ps_ResultTupleSlot
ExprState * ExecInitExpr(Expr *node, PlanState *parent)
void ExecAssignScanProjectionInfo(ScanState *node)
void ExecInitResultTupleSlot(EState *estate, PlanState *planstate)
#define EXEC_FLAG_BACKWARD
Tuplestorestate * working_table
RecursiveUnionState * rustate
TupleTableSlot * ExecWorkTableScan(WorkTableScanState *node)
bool tuplestore_gettupleslot(Tuplestorestate *state, bool forward, bool copy, TupleTableSlot *slot)
#define Assert(condition)
static bool WorkTableScanRecheck(WorkTableScanState *node, TupleTableSlot *slot)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
TupleDesc ExecGetResultType(PlanState *planstate)
#define DatumGetPointer(X)
void ExecScanReScan(ScanState *node)
void ExecAssignScanType(ScanState *scanstate, TupleDesc tupDesc)
WorkTableScanState * ExecInitWorkTableScan(WorkTableScan *node, EState *estate, int eflags)