40 elog(
ERROR,
"BitmapIndexScan node does not support ExecProcNode call convention");
75 doscan = node->biss_RuntimeKeysReady;
195 Assert(ParallelWorkerNumber <= node->biss_SharedInfo->num_workers);
212 if (indexRelationDesc)
429 if (SharedInfo == NULL)
void ExecReScan(PlanState *node)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
#define EXEC_FLAG_BACKWARD
static RangeTblEntry * exec_rt_fetch(Index rti, EState *estate)
#define ResetExprContext(econtext)
#define EXEC_FLAG_EXPLAIN_ONLY
struct IndexScanInstrumentation IndexScanInstrumentation
Assert(PointerIsAligned(start, uint64))
#define IsParallelWorker()
void index_close(Relation relation, LOCKMODE lockmode)
void index_endscan(IndexScanDesc scan)
IndexScanDesc index_beginscan_bitmap(Relation indexRelation, Snapshot snapshot, IndexScanInstrumentation *instrument, int nkeys)
Relation index_open(Oid relationId, LOCKMODE lockmode)
int64 index_getbitmap(IndexScanDesc scan, TIDBitmap *bitmap)
void index_rescan(IndexScanDesc scan, ScanKey keys, int nkeys, ScanKey orderbys, int norderbys)
void InstrStartNode(Instrumentation *instr)
void InstrStopNode(Instrumentation *instr, double nTuples)
#define CHECK_FOR_INTERRUPTS()
void ExecBitmapIndexScanEstimate(BitmapIndexScanState *node, ParallelContext *pcxt)
Node * MultiExecBitmapIndexScan(BitmapIndexScanState *node)
void ExecEndBitmapIndexScan(BitmapIndexScanState *node)
void ExecBitmapIndexScanInitializeDSM(BitmapIndexScanState *node, ParallelContext *pcxt)
BitmapIndexScanState * ExecInitBitmapIndexScan(BitmapIndexScan *node, EState *estate, int eflags)
void ExecReScanBitmapIndexScan(BitmapIndexScanState *node)
void ExecBitmapIndexScanRetrieveInstrumentation(BitmapIndexScanState *node)
static TupleTableSlot * ExecBitmapIndexScan(PlanState *pstate)
void ExecBitmapIndexScanInitializeWorker(BitmapIndexScanState *node, ParallelWorkerContext *pwcxt)
void ExecIndexBuildScanKeys(PlanState *planstate, Relation index, List *quals, bool isorderby, ScanKey *scanKeys, int *numScanKeys, IndexRuntimeKeyInfo **runtimeKeys, int *numRuntimeKeys, IndexArrayKeyInfo **arrayKeys, int *numArrayKeys)
bool ExecIndexEvalArrayKeys(ExprContext *econtext, IndexArrayKeyInfo *arrayKeys, int numArrayKeys)
void ExecIndexEvalRuntimeKeys(ExprContext *econtext, IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys)
bool ExecIndexAdvanceArrayKeys(IndexArrayKeyInfo *arrayKeys, int numArrayKeys)
void * shm_toc_allocate(shm_toc *toc, Size nbytes)
void shm_toc_insert(shm_toc *toc, uint64 key, void *address)
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)
bool biss_RuntimeKeysReady
ExprContext * biss_RuntimeContext
IndexArrayKeyInfo * biss_ArrayKeys
IndexRuntimeKeyInfo * biss_RuntimeKeys
SharedIndexScanInstrumentation * biss_SharedInfo
struct ScanKeyData * biss_ScanKeys
struct IndexScanDescData * biss_ScanDesc
Relation biss_RelationDesc
IndexScanInstrumentation biss_Instrument
struct dsa_area * es_query_dsa
shm_toc_estimator estimator
Instrumentation * instrument
ExprContext * ps_ExprContext
ExecProcNodeMtd ExecProcNode
Relation ss_currentRelation
struct TableScanDescData * ss_currentScanDesc
IndexScanInstrumentation winstrument[FLEXIBLE_ARRAY_MEMBER]
TIDBitmap * tbm_create(Size maxbytes, dsa_area *dsa)