94 if (
plan->numCols > 0)
148 if (
plan->numCols > 0)
216 "RecursiveUnion hash table",
330 if (
plan->numCols > 0)
Bitmapset * bms_add_member(Bitmapset *a, int x)
#define Assert(condition)
void ExecReScan(PlanState *node)
void execTuplesHashPrepare(int numCols, const Oid *eqOperators, Oid **eqFuncOids, FmgrInfo **hashFunctions)
TupleHashEntry LookupTupleHashEntry(TupleHashTable hashtable, TupleTableSlot *slot, bool *isnew, uint32 *hash)
TupleHashTable BuildTupleHashTableExt(PlanState *parent, TupleDesc inputDesc, int numCols, AttrNumber *keyColIdx, const Oid *eqfuncoids, FmgrInfo *hashfunctions, Oid *collations, long nbuckets, Size additionalsize, MemoryContext metacxt, MemoryContext tablecxt, MemoryContext tempcxt, bool use_variable_hash_iv)
void ResetTupleHashTable(TupleHashTable hashtable)
void ExecEndNode(PlanState *node)
PlanState * ExecInitNode(Plan *node, EState *estate, int eflags)
void ExecInitResultTypeTL(PlanState *planstate)
TupleDesc ExecGetResultType(PlanState *planstate)
#define outerPlanState(node)
#define innerPlanState(node)
#define EXEC_FLAG_BACKWARD
static TupleTableSlot * ExecProcNode(PlanState *node)
void MemoryContextReset(MemoryContext context)
MemoryContext CurrentMemoryContext
void MemoryContextDelete(MemoryContext context)
#define AllocSetContextCreate
#define ALLOCSET_DEFAULT_SIZES
#define CHECK_FOR_INTERRUPTS()
static void build_hash_table(RecursiveUnionState *rustate)
void ExecEndRecursiveUnion(RecursiveUnionState *node)
RecursiveUnionState * ExecInitRecursiveUnion(RecursiveUnion *node, EState *estate, int eflags)
static TupleTableSlot * ExecRecursiveUnion(PlanState *pstate)
void ExecReScanRecursiveUnion(RecursiveUnionState *node)
#define castNode(_type_, nodeptr)
static Datum PointerGetDatum(const void *X)
ParamExecData * es_param_exec_vals
MemoryContext es_query_cxt
ProjectionInfo * ps_ProjInfo
ExecProcNodeMtd ExecProcNode
MemoryContext tempContext
MemoryContext tableContext
Tuplestorestate * working_table
Tuplestorestate * intermediate_table
void tuplestore_puttupleslot(Tuplestorestate *state, TupleTableSlot *slot)
void tuplestore_clear(Tuplestorestate *state)
Tuplestorestate * tuplestore_begin_heap(bool randomAccess, bool interXact, int maxKBytes)
void tuplestore_end(Tuplestorestate *state)