PostgreSQL Source Code git master
|
Go to the source code of this file.
Functions | |
IndexOnlyScanState * | ExecInitIndexOnlyScan (IndexOnlyScan *node, EState *estate, int eflags) |
void | ExecEndIndexOnlyScan (IndexOnlyScanState *node) |
void | ExecIndexOnlyMarkPos (IndexOnlyScanState *node) |
void | ExecIndexOnlyRestrPos (IndexOnlyScanState *node) |
void | ExecReScanIndexOnlyScan (IndexOnlyScanState *node) |
void | ExecIndexOnlyScanEstimate (IndexOnlyScanState *node, ParallelContext *pcxt) |
void | ExecIndexOnlyScanInitializeDSM (IndexOnlyScanState *node, ParallelContext *pcxt) |
void | ExecIndexOnlyScanReInitializeDSM (IndexOnlyScanState *node, ParallelContext *pcxt) |
void | ExecIndexOnlyScanInitializeWorker (IndexOnlyScanState *node, ParallelWorkerContext *pwcxt) |
void | ExecIndexOnlyScanRetrieveInstrumentation (IndexOnlyScanState *node) |
void ExecEndIndexOnlyScan | ( | IndexOnlyScanState * | node | ) |
Definition at line 399 of file nodeIndexonlyscan.c.
References Assert(), index_close(), index_endscan(), InvalidBuffer, IndexOnlyScanState::ioss_Instrument, IndexOnlyScanState::ioss_RelationDesc, IndexOnlyScanState::ioss_ScanDesc, IndexOnlyScanState::ioss_SharedInfo, IndexOnlyScanState::ioss_VMBuffer, IsParallelWorker, NoLock, IndexScanInstrumentation::nsearches, ParallelWorkerNumber, ReleaseBuffer(), and SharedIndexScanInstrumentation::winstrument.
Referenced by ExecEndNode().
void ExecIndexOnlyMarkPos | ( | IndexOnlyScanState * | node | ) |
Definition at line 455 of file nodeIndexonlyscan.c.
References Assert(), elog, ERROR, EState::es_epq_active, index_markpos(), IndexOnlyScanState::ioss_ScanDesc, PlanState::plan, ScanState::ps, EPQState::relsubs_done, EPQState::relsubs_rowmark, EPQState::relsubs_slot, IndexOnlyScanState::ss, and PlanState::state.
Referenced by ExecMarkPos().
void ExecIndexOnlyRestrPos | ( | IndexOnlyScanState * | node | ) |
Definition at line 492 of file nodeIndexonlyscan.c.
References Assert(), elog, ERROR, EState::es_epq_active, index_restrpos(), IndexOnlyScanState::ioss_ScanDesc, PlanState::plan, ScanState::ps, EPQState::relsubs_done, EPQState::relsubs_rowmark, EPQState::relsubs_slot, IndexOnlyScanState::ss, and PlanState::state.
Referenced by ExecRestrPos().
void ExecIndexOnlyScanEstimate | ( | IndexOnlyScanState * | node, |
ParallelContext * | pcxt | ||
) |
Definition at line 728 of file nodeIndexonlyscan.c.
References EState::es_snapshot, ParallelContext::estimator, index_parallelscan_estimate(), PlanState::instrument, IndexOnlyScanState::ioss_NumOrderByKeys, IndexOnlyScanState::ioss_NumScanKeys, IndexOnlyScanState::ioss_PscanLen, IndexOnlyScanState::ioss_RelationDesc, ParallelContext::nworkers, Plan::parallel_aware, PlanState::plan, ScanState::ps, shm_toc_estimate_chunk, shm_toc_estimate_keys, IndexOnlyScanState::ss, and PlanState::state.
Referenced by ExecParallelEstimate().
void ExecIndexOnlyScanInitializeDSM | ( | IndexOnlyScanState * | node, |
ParallelContext * | pcxt | ||
) |
Definition at line 758 of file nodeIndexonlyscan.c.
References EState::es_snapshot, index_beginscan_parallel(), index_parallelscan_initialize(), index_rescan(), PlanState::instrument, InvalidBuffer, IndexOnlyScanState::ioss_Instrument, IndexOnlyScanState::ioss_NumOrderByKeys, IndexOnlyScanState::ioss_NumRuntimeKeys, IndexOnlyScanState::ioss_NumScanKeys, IndexOnlyScanState::ioss_OrderByKeys, IndexOnlyScanState::ioss_PscanLen, IndexOnlyScanState::ioss_RelationDesc, IndexOnlyScanState::ioss_RuntimeKeysReady, IndexOnlyScanState::ioss_ScanDesc, IndexOnlyScanState::ioss_ScanKeys, IndexOnlyScanState::ioss_SharedInfo, IndexOnlyScanState::ioss_VMBuffer, ParallelContext::nworkers, Plan::parallel_aware, PlanState::plan, Plan::plan_node_id, ScanState::ps, shm_toc_allocate(), shm_toc_insert(), IndexOnlyScanState::ss, ScanState::ss_currentRelation, PlanState::state, ParallelContext::toc, and IndexScanDescData::xs_want_itup.
Referenced by ExecParallelInitializeDSM().
void ExecIndexOnlyScanInitializeWorker | ( | IndexOnlyScanState * | node, |
ParallelWorkerContext * | pwcxt | ||
) |
Definition at line 827 of file nodeIndexonlyscan.c.
References index_beginscan_parallel(), index_rescan(), PlanState::instrument, IndexOnlyScanState::ioss_Instrument, IndexOnlyScanState::ioss_NumOrderByKeys, IndexOnlyScanState::ioss_NumRuntimeKeys, IndexOnlyScanState::ioss_NumScanKeys, IndexOnlyScanState::ioss_OrderByKeys, IndexOnlyScanState::ioss_RelationDesc, IndexOnlyScanState::ioss_RuntimeKeysReady, IndexOnlyScanState::ioss_ScanDesc, IndexOnlyScanState::ioss_ScanKeys, IndexOnlyScanState::ioss_SharedInfo, OffsetToPointer, Plan::parallel_aware, PlanState::plan, Plan::plan_node_id, ScanState::ps, ParallelIndexScanDescData::ps_offset_ins, shm_toc_lookup(), IndexOnlyScanState::ss, ScanState::ss_currentRelation, ParallelWorkerContext::toc, and IndexScanDescData::xs_want_itup.
Referenced by ExecParallelInitializeWorker().
void ExecIndexOnlyScanReInitializeDSM | ( | IndexOnlyScanState * | node, |
ParallelContext * | pcxt | ||
) |
Definition at line 813 of file nodeIndexonlyscan.c.
References Assert(), index_parallelrescan(), IndexOnlyScanState::ioss_ScanDesc, Plan::parallel_aware, PlanState::plan, ScanState::ps, and IndexOnlyScanState::ss.
Referenced by ExecParallelReInitializeDSM().
void ExecIndexOnlyScanRetrieveInstrumentation | ( | IndexOnlyScanState * | node | ) |
Definition at line 878 of file nodeIndexonlyscan.c.
References IndexOnlyScanState::ioss_SharedInfo, SharedIndexScanInstrumentation::num_workers, and palloc().
Referenced by ExecParallelRetrieveInstrumentation().
IndexOnlyScanState * ExecInitIndexOnlyScan | ( | IndexOnlyScan * | node, |
EState * | estate, | ||
int | eflags | ||
) |
Definition at line 528 of file nodeIndexonlyscan.c.
References attnum, EState::es_tupleTable, EXEC_FLAG_EXPLAIN_ONLY, exec_rt_fetch(), ExecAllocTableSlot(), ExecAssignExprContext(), ExecAssignScanProjectionInfoWithVarno(), ExecIndexBuildScanKeys(), ExecIndexOnlyScan(), ExecInitQual(), ExecInitResultTypeTL(), ExecInitScanTupleSlot(), ExecOpenScanRelation(), PlanState::ExecProcNode, ExecTypeFromTL(), idx(), index_open(), INDEX_VAR, IndexOnlyScan::indexid, IndexOnlyScan::indexorderby, IndexOnlyScan::indexqual, IndexOnlyScan::indextlist, IndexOnlyScanState::ioss_NameCStringAttNums, IndexOnlyScanState::ioss_NameCStringCount, IndexOnlyScanState::ioss_NumOrderByKeys, IndexOnlyScanState::ioss_NumRuntimeKeys, IndexOnlyScanState::ioss_NumScanKeys, IndexOnlyScanState::ioss_OrderByKeys, IndexOnlyScanState::ioss_RelationDesc, IndexOnlyScanState::ioss_RuntimeContext, IndexOnlyScanState::ioss_RuntimeKeys, IndexOnlyScanState::ioss_RuntimeKeysReady, IndexOnlyScanState::ioss_ScanKeys, IndexOnlyScanState::ioss_TableSlot, makeNode, palloc(), PlanState::plan, ScanState::ps, PlanState::ps_ExprContext, PlanState::qual, RelationData::rd_att, RelationData::rd_index, RelationData::rd_opcintype, IndexOnlyScanState::recheckqual, IndexOnlyScan::recheckqual, RelationGetDescr, IndexOnlyScan::scan, Scan::scanrelid, IndexOnlyScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, PlanState::state, table_slot_callbacks(), TTSOpsVirtual, and TupleDescAttr().
Referenced by ExecInitNode().
void ExecReScanIndexOnlyScan | ( | IndexOnlyScanState * | node | ) |
Definition at line 364 of file nodeIndexonlyscan.c.
References ExecIndexEvalRuntimeKeys(), ExecScanReScan(), index_rescan(), IndexOnlyScanState::ioss_NumOrderByKeys, IndexOnlyScanState::ioss_NumRuntimeKeys, IndexOnlyScanState::ioss_NumScanKeys, IndexOnlyScanState::ioss_OrderByKeys, IndexOnlyScanState::ioss_RuntimeContext, IndexOnlyScanState::ioss_RuntimeKeys, IndexOnlyScanState::ioss_RuntimeKeysReady, IndexOnlyScanState::ioss_ScanDesc, IndexOnlyScanState::ioss_ScanKeys, ResetExprContext, and IndexOnlyScanState::ss.
Referenced by ExecReScan().