293 gatherstate->
pei ? gatherstate->
pei->
area : NULL;
298 return outerTupleSlot;
375 if (nvisited >= gatherstate->
nreaders)
386 WAIT_EVENT_EXECUTE_GATHER);
402 if (node->
pei != NULL)
423 if (node->
pei != NULL)
void LaunchParallelWorkers(ParallelContext *pcxt)
Bitmapset * bms_add_member(Bitmapset *a, int x)
void ExecReScan(PlanState *node)
void ExecParallelCleanup(ParallelExecutorInfo *pei)
void ExecParallelReinitialize(PlanState *planstate, ParallelExecutorInfo *pei, Bitmapset *sendParams)
void ExecParallelCreateReaders(ParallelExecutorInfo *pei)
ParallelExecutorInfo * ExecInitParallelPlan(PlanState *planstate, EState *estate, Bitmapset *sendParams, int nworkers, int64 tuples_needed)
void ExecParallelFinish(ParallelExecutorInfo *pei)
void ExecEndNode(PlanState *node)
PlanState * ExecInitNode(Plan *node, EState *estate, int eflags)
void ExecInitResultTypeTL(PlanState *planstate)
TupleTableSlot * ExecStoreMinimalTuple(MinimalTuple mtup, TupleTableSlot *slot, bool shouldFree)
TupleTableSlot * ExecInitExtraTupleSlot(EState *estate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
const TupleTableSlotOps TTSOpsMinimalTuple
TupleDesc ExecGetResultType(PlanState *planstate)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
void ExecConditionalAssignProjectionInfo(PlanState *planstate, TupleDesc inputDesc, int varno)
#define outerPlanState(node)
static TupleTableSlot * ExecProject(ProjectionInfo *projInfo)
#define ResetExprContext(econtext)
static TupleTableSlot * ExecProcNode(PlanState *node)
Assert(PointerIsAligned(start, uint64))
#define HeapTupleIsValid(tuple)
if(TABLE==NULL||TABLE_index==NULL)
void ResetLatch(Latch *latch)
int WaitLatch(Latch *latch, int wakeEvents, long timeout, uint32 wait_event_info)
void pfree(void *pointer)
#define CHECK_FOR_INTERRUPTS()
void ExecEndGather(GatherState *node)
static MinimalTuple gather_readnext(GatherState *gatherstate)
static TupleTableSlot * ExecGather(PlanState *pstate)
static void ExecShutdownGatherWorkers(GatherState *node)
void ExecShutdownGather(GatherState *node)
void ExecReScanGather(GatherState *node)
GatherState * ExecInitGather(Gather *node, EState *estate, int eflags)
static TupleTableSlot * gather_getnext(GatherState *gatherstate)
#define castNode(_type_, nodeptr)
bool parallel_leader_participation
struct dsa_area * es_query_dsa
int es_parallel_workers_to_launch
bool es_use_parallel_mode
int es_parallel_workers_launched
TupleTableSlot * ecxt_outertuple
TupleTableSlot * funnel_slot
struct ParallelExecutorInfo * pei
struct TupleQueueReader ** reader
bool need_to_scan_locally
struct TupleQueueReader ** reader
ExprContext * ps_ExprContext
ProjectionInfo * ps_ProjInfo
ExecProcNodeMtd ExecProcNode
MinimalTuple TupleQueueReaderNext(TupleQueueReader *reader, bool nowait, bool *done)
static TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)
#define WL_EXIT_ON_PM_DEATH