107 elog(
ERROR,
"unrecognized result from subplan");
146 else if (prefetch_iterator)
152 elog(
ERROR,
"prefetch and main iterators are out of sync");
237 if (prefetch_iterator)
326 Assert(page < scan->rs_nblocks);
360 for (curslot = 0; curslot < tbmres->
ntuples; curslot++)
368 &heapTuple,
NULL,
true))
TupleTableSlot * ExecStoreTuple(HeapTuple tuple, TupleTableSlot *slot, Buffer buffer, bool shouldFree)
#define BUFFER_LOCK_UNLOCK
void ExecReScanBitmapHeapScan(BitmapHeapScanState *node)
int target_prefetch_pages
void tbm_end_iterate(TBMIterator *iterator)
#define IsA(nodeptr, _type_)
BitmapHeapScanState * ExecInitBitmapHeapScan(BitmapHeapScan *node, EState *estate, int eflags)
void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate)
void heap_endscan(HeapScanDesc scan)
#define RelationGetDescr(relation)
void ExecEndNode(PlanState *node)
HeapTupleHeaderData * HeapTupleHeader
static void bitgetpage(HeapScanDesc scan, TBMIterateResult *tbmres)
TupleTableSlot * ExecScan(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd)
ExprContext * ps_ExprContext
void ExecReScan(PlanState *node)
TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)
#define MaxHeapTuplesPerPage
int get_tablespace_io_concurrency(Oid spcid)
TupleTableSlot * ss_ScanTupleSlot
Relation ss_currentRelation
#define PageGetMaxOffsetNumber(page)
void ExecFreeExprContext(PlanState *planstate)
int effective_io_concurrency
void CheckForSerializableConflictOut(bool visible, Relation relation, HeapTuple tuple, Buffer buffer, Snapshot snapshot)
void ExecAssignResultTypeFromTL(PlanState *planstate)
#define HeapTupleSatisfiesVisibility(tuple, snapshot, buffer)
bool ComputeIoConcurrency(int io_concurrency, double *target)
TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)
bool heap_hot_search_buffer(ItemPointer tid, Relation relation, Buffer buffer, Snapshot snapshot, HeapTuple heapTuple, bool *all_dead, bool first_call)
bool(* ExecScanRecheckMtd)(ScanState *node, TupleTableSlot *slot)
TupleTableSlot * ps_ResultTupleSlot
ExprState * ExecInitExpr(Expr *node, PlanState *parent)
#define ItemIdGetLength(itemId)
static TupleTableSlot * BitmapHeapNext(BitmapHeapScanState *node)
void ExecAssignScanProjectionInfo(ScanState *node)
void ExecInitResultTupleSlot(EState *estate, PlanState *planstate)
Relation ExecOpenScanRelation(EState *estate, Index scanrelid, int eflags)
#define pgstat_count_heap_fetch(rel)
#define EXEC_FLAG_BACKWARD
#define outerPlanState(node)
void tbm_free(TIDBitmap *tbm)
OffsetNumber offsets[FLEXIBLE_ARRAY_MEMBER]
#define FirstOffsetNumber
void heap_rescan(HeapScanDesc scan, ScanKey key)
bool ExecQual(List *qual, ExprContext *econtext, bool resultForNull)
#define BufferGetPage(buffer)
TBMIterateResult * tbmres
HeapScanDesc heap_beginscan_bm(Relation relation, Snapshot snapshot, int nkeys, ScanKey key)
#define PageGetItemId(page, offsetNumber)
static bool BitmapHeapRecheck(BitmapHeapScanState *node, TupleTableSlot *slot)
void LockBuffer(Buffer buffer, int mode)
void PrefetchBuffer(Relation reln, ForkNumber forkNum, BlockNumber blockNum)
TBMIterateResult * tbm_iterate(TBMIterator *iterator)
#define Assert(condition)
#define IsMVCCSnapshot(snapshot)
OffsetNumber rs_vistuples[MaxHeapTuplesPerPage]
#define ItemIdIsNormal(itemId)
#define InstrCountFiltered2(node, delta)
#define OffsetNumberNext(offsetNumber)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
TBMIterator * tbm_begin_iterate(TIDBitmap *tbm)
void ExecCloseScanRelation(Relation scanrel)
Buffer ReleaseAndReadBuffer(Buffer buffer, Relation relation, BlockNumber blockNum)
TupleTableSlot * ecxt_scantuple
#define ItemPointerGetOffsetNumber(pointer)
TupleTableSlot * ExecBitmapHeapScan(BitmapHeapScanState *node)
TBMIterator * tbmiterator
void PredicateLockTuple(Relation relation, HeapTuple tuple, Snapshot snapshot)
HeapScanDesc ss_currentScanDesc
Node * MultiExecProcNode(PlanState *node)
TBMIterator * prefetch_iterator
void ExecScanReScan(ScanState *node)
#define BUFFER_LOCK_SHARE
void ExecAssignScanType(ScanState *scanstate, TupleDesc tupDesc)
void heap_page_prune_opt(Relation relation, Buffer buffer)
void ExecEndBitmapHeapScan(BitmapHeapScanState *node)
PlanState * ExecInitNode(Plan *node, EState *estate, int eflags)
#define PageGetItem(page, itemId)
#define ResetExprContext(econtext)
#define ItemPointerSet(pointer, blockNumber, offNum)