71 if (resultSlot != NULL)
152 hassrf = hasresult =
false;
153 for (argno = 0; argno < node->
nelems; argno++)
158 bool *isnull = &resultSlot->
tts_isnull[argno];
308 "tSRF function arguments",
#define IsA(nodeptr, _type_)
#define AllocSetContextCreate
static TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)
#define castNode(_type_, nodeptr)
void ExecEndNode(PlanState *node)
ExprContext * ps_ExprContext
MemoryContext ecxt_per_tuple_memory
void ExecReScan(PlanState *node)
const TupleTableSlotOps TTSOpsVirtual
bool expression_returns_set(Node *clause)
static MemoryContext MemoryContextSwitchTo(MemoryContext context)
static TupleTableSlot * ExecProjectSRF(ProjectSetState *node, bool continuing)
void MemoryContextReset(MemoryContext context)
void ExecFreeExprContext(PlanState *planstate)
struct PlanState * lefttree
TupleTableSlot * ps_ResultTupleSlot
void ExecReScanProjectSet(ProjectSetState *node)
SetExprState * ExecInitFunctionResultSet(Expr *expr, ExprContext *econtext, PlanState *parent)
#define ALLOCSET_DEFAULT_SIZES
#define EXEC_FLAG_BACKWARD
#define outerPlanState(node)
static Datum ExecEvalExpr(ExprState *state, ExprContext *econtext, bool *isNull)
MemoryContext CurrentMemoryContext
Datum ExecMakeFunctionResultSet(SetExprState *fcache, ExprContext *econtext, MemoryContext argContext, bool *isNull, ExprDoneCond *isDone)
ExecProcNodeMtd ExecProcNode
static TupleTableSlot * ExecProcNode(PlanState *node)
static TupleTableSlot * ExecProjectSet(PlanState *pstate)
TupleTableSlot * ecxt_outertuple
#define Assert(condition)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
static int list_length(const List *l)
void ExecInitResultTupleSlotTL(PlanState *planstate, const TupleTableSlotOps *tts_ops)
ProjectSetState * ExecInitProjectSet(ProjectSet *node, EState *estate, int eflags)
void ExecEndProjectSet(ProjectSetState *node)
ExprState * ExecInitExpr(Expr *node, PlanState *parent)
#define CHECK_FOR_INTERRUPTS()
PlanState * ExecInitNode(Plan *node, EState *estate, int eflags)
#define ResetExprContext(econtext)
TupleTableSlot * ExecStoreVirtualTuple(TupleTableSlot *slot)
#define PG_USED_FOR_ASSERTS_ONLY