116 elog(
ERROR,
"unrecognized result from subplan");
120 node->
tbmres = tbmres = NULL;
142 elog(
ERROR,
"unrecognized result from subplan");
174 node->
tbmres = tbmres = NULL;
299 node->
tbmres = tbmres = NULL;
310 node->
tbmres = tbmres = NULL;
375 else if (prefetch_iterator)
381 elog(
ERROR,
"prefetch and main iterators are out of sync");
409 if (prefetch_iterator)
473 if (prefetch_iterator)
518 if (prefetch_iterator)
523 bool do_prefetch =
false;
716 scanstate->
tbm = NULL;
741 node->
scan.plan.targetlist ==
NIL);
PrefetchBufferResult PrefetchBuffer(Relation reln, ForkNumber forkNum, BlockNumber blockNum)
void ReleaseBuffer(Buffer buffer)
bool ConditionVariableCancelSleep(void)
void ConditionVariableBroadcast(ConditionVariable *cv)
void ConditionVariableInit(ConditionVariable *cv)
void ConditionVariableSleep(ConditionVariable *cv, uint32 wait_event_info)
elog(ERROR, "%s: %s", p2, msg)
#define InvalidDsaPointer
#define DsaPointerIsValid(x)
void ExecReScan(PlanState *node)
ExprState * ExecInitQual(List *qual, PlanState *parent)
void ExecEndNode(PlanState *node)
Node * MultiExecProcNode(PlanState *node)
PlanState * ExecInitNode(Plan *node, EState *estate, int eflags)
TupleTableSlot * ExecScan(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd)
void ExecAssignScanProjectionInfo(ScanState *node)
void ExecScanReScan(ScanState *node)
TupleTableSlot * ExecStoreAllNullTuple(TupleTableSlot *slot)
void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
void ExecInitResultTypeTL(PlanState *planstate)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
Relation ExecOpenScanRelation(EState *estate, Index scanrelid, int eflags)
#define outerPlanState(node)
#define InstrCountFiltered2(node, delta)
#define EXEC_FLAG_BACKWARD
TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)
bool(* ExecScanRecheckMtd)(ScanState *node, TupleTableSlot *slot)
static bool ExecQualAndReset(ExprState *state, ExprContext *econtext)
Assert(fmt[strlen(fmt) - 1] !='\n')
#define CHECK_FOR_INTERRUPTS()
void ExecEndBitmapHeapScan(BitmapHeapScanState *node)
void ExecBitmapHeapInitializeWorker(BitmapHeapScanState *node, ParallelWorkerContext *pwcxt)
void ExecReScanBitmapHeapScan(BitmapHeapScanState *node)
void ExecBitmapHeapEstimate(BitmapHeapScanState *node, ParallelContext *pcxt)
void ExecBitmapHeapInitializeDSM(BitmapHeapScanState *node, ParallelContext *pcxt)
static TupleTableSlot * ExecBitmapHeapScan(PlanState *pstate)
static void BitmapAdjustPrefetchIterator(BitmapHeapScanState *node, TBMIterateResult *tbmres)
BitmapHeapScanState * ExecInitBitmapHeapScan(BitmapHeapScan *node, EState *estate, int eflags)
static bool BitmapShouldInitializeSharedState(ParallelBitmapHeapState *pstate)
static void BitmapPrefetch(BitmapHeapScanState *node, TableScanDesc scan)
void ExecBitmapHeapReInitializeDSM(BitmapHeapScanState *node, ParallelContext *pcxt)
static void BitmapAdjustPrefetchTarget(BitmapHeapScanState *node)
static TupleTableSlot * BitmapHeapNext(BitmapHeapScanState *node)
static void BitmapDoneInitializingSharedState(ParallelBitmapHeapState *pstate)
static bool BitmapHeapRecheck(BitmapHeapScanState *node, TupleTableSlot *slot)
#define IsA(nodeptr, _type_)
#define castNode(_type_, nodeptr)
#define RelationGetDescr(relation)
void shm_toc_insert(shm_toc *toc, uint64 key, void *address)
void * shm_toc_allocate(shm_toc *toc, Size nbytes)
void * shm_toc_lookup(shm_toc *toc, uint64 key, bool noError)
#define shm_toc_estimate_chunk(e, sz)
#define shm_toc_estimate_keys(e, cnt)
Size add_size(Size s1, Size s2)
void SerializeSnapshot(Snapshot snapshot, char *start_address)
Snapshot RestoreSnapshot(char *start_address)
Size EstimateSnapshotSpace(Snapshot snapshot)
#define IsMVCCSnapshot(snapshot)
int get_tablespace_io_concurrency(Oid spcid)
#define SpinLockInit(lock)
#define SpinLockRelease(lock)
#define SpinLockAcquire(lock)
ParallelBitmapHeapState * pstate
ExprState * bitmapqualorig
TBMIterateResult * tbmres
TBMIterator * tbmiterator
TBMIterator * prefetch_iterator
TBMSharedIterator * shared_prefetch_iterator
TBMSharedIterator * shared_tbmiterator
struct dsa_area * es_query_dsa
TupleTableSlot * ecxt_scantuple
dsa_pointer prefetch_iterator
char phs_snapshot_data[FLEXIBLE_ARRAY_MEMBER]
shm_toc_estimator estimator
ExprContext * ps_ExprContext
ExecProcNodeMtd ExecProcNode
Relation ss_currentRelation
TupleTableSlot * ss_ScanTupleSlot
struct TableScanDescData * ss_currentScanDesc
const TupleTableSlotOps * table_slot_callbacks(Relation relation)
void table_scan_update_snapshot(TableScanDesc scan, Snapshot snapshot)
static void table_endscan(TableScanDesc scan)
static TableScanDesc table_beginscan_bm(Relation rel, Snapshot snapshot, int nkeys, struct ScanKeyData *key)
static bool table_scan_bitmap_next_tuple(TableScanDesc scan, struct TBMIterateResult *tbmres, TupleTableSlot *slot)
static void table_rescan(TableScanDesc scan, struct ScanKeyData *key)
static bool table_scan_bitmap_next_block(TableScanDesc scan, struct TBMIterateResult *tbmres)
void tbm_free(TIDBitmap *tbm)
TBMIterator * tbm_begin_iterate(TIDBitmap *tbm)
void tbm_end_iterate(TBMIterator *iterator)
void tbm_end_shared_iterate(TBMSharedIterator *iterator)
TBMSharedIterator * tbm_attach_shared_iterate(dsa_area *dsa, dsa_pointer dp)
dsa_pointer tbm_prepare_shared_iterate(TIDBitmap *tbm)
void tbm_free_shared_area(dsa_area *dsa, dsa_pointer dp)
TBMIterateResult * tbm_shared_iterate(TBMSharedIterator *iterator)
TBMIterateResult * tbm_iterate(TBMIterator *iterator)
static TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)
#define VM_ALL_VISIBLE(r, b, v)