|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/relscan.h"#include "access/sysattr.h"#include "access/tableam.h"#include "catalog/pg_operator.h"#include "executor/execParallel.h"#include "executor/executor.h"#include "executor/instrument.h"#include "executor/nodeTidrangescan.h"#include "nodes/nodeFuncs.h"#include "utils/rel.h"
Go to the source code of this file.
Data Structures | |
| struct | TidOpExpr |
Macros | |
| #define | IsCTIDVar(node) |
Typedefs | |
| typedef struct TidOpExpr | TidOpExpr |
Enumerations | |
| enum | TidExprType { TIDEXPR_UPPER_BOUND , TIDEXPR_LOWER_BOUND } |
| #define IsCTIDVar | ( | node | ) |
Definition at line 35 of file nodeTidrangescan.c.
| Enumerator | |
|---|---|
| TIDEXPR_UPPER_BOUND | |
| TIDEXPR_LOWER_BOUND | |
Definition at line 40 of file nodeTidrangescan.c.
| void ExecEndTidRangeScan | ( | TidRangeScanState * | node | ) |
Definition at line 350 of file nodeTidrangescan.c.
References AccumulateIOStats(), Assert, fb(), TableScanInstrumentation::io, IsParallelWorker, ParallelWorkerNumber, TableScanDescData::rs_instrument, SharedTidRangeScanInstrumentation::sinstrument, TidRangeScanState::ss, ScanState::ss_currentScanDesc, table_endscan(), and TidRangeScanState::trss_sinstrument.
Referenced by ExecEndNode().
| TidRangeScanState * ExecInitTidRangeScan | ( | TidRangeScan * | node, |
| EState * | estate, | ||
| int | eflags | ||
| ) |
Definition at line 384 of file nodeTidrangescan.c.
References ExecAssignExprContext(), ExecAssignScanProjectionInfo(), ExecInitQual(), ExecInitResultTypeTL(), ExecInitScanTupleSlot(), ExecOpenScanRelation(), ExecTidRangeScan(), fb(), makeNode, RelationGetDescr, TidRangeScan::scan, Scan::scanrelid, table_slot_callbacks(), TidExprListCreate(), and TTS_FLAG_OBEYS_NOT_NULL_CONSTRAINTS.
Referenced by ExecInitNode().
| void ExecReScanTidRangeScan | ( | TidRangeScanState * | node | ) |
Definition at line 331 of file nodeTidrangescan.c.
References ExecScanReScan(), TidRangeScanState::ss, and TidRangeScanState::trss_inScan.
Referenced by ExecReScan().
|
static |
Definition at line 317 of file nodeTidrangescan.c.
References castNode, ExecScan(), TidRangeScanState::ss, TidRangeNext(), and TidRangeRecheck().
Referenced by ExecInitTidRangeScan().
| void ExecTidRangeScanEstimate | ( | TidRangeScanState * | node, |
| ParallelContext * | pcxt | ||
| ) |
Definition at line 458 of file nodeTidrangescan.c.
References EState::es_snapshot, ParallelContext::estimator, ScanState::ps, shm_toc_estimate_chunk, shm_toc_estimate_keys, TidRangeScanState::ss, ScanState::ss_currentRelation, PlanState::state, table_parallelscan_estimate(), and TidRangeScanState::trss_pscanlen.
Referenced by ExecParallelEstimate().
| void ExecTidRangeScanInitializeDSM | ( | TidRangeScanState * | node, |
| ParallelContext * | pcxt | ||
| ) |
Definition at line 476 of file nodeTidrangescan.c.
References EState::es_instrument, EState::es_snapshot, fb(), INSTRUMENT_IO, PlanState::plan, Plan::plan_node_id, ScanState::ps, ScanRelIsReadOnly(), shm_toc_allocate(), shm_toc_insert(), SO_HINT_REL_READ_ONLY, SO_NONE, SO_SCAN_INSTRUMENT, TidRangeScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, PlanState::state, table_beginscan_parallel_tidrange(), table_parallelscan_initialize(), ParallelContext::toc, and TidRangeScanState::trss_pscanlen.
Referenced by ExecParallelInitializeDSM().
| void ExecTidRangeScanInitializeWorker | ( | TidRangeScanState * | node, |
| ParallelWorkerContext * | pwcxt | ||
| ) |
Definition at line 521 of file nodeTidrangescan.c.
References EState::es_instrument, fb(), INSTRUMENT_IO, PlanState::plan, Plan::plan_node_id, ScanState::ps, ScanRelIsReadOnly(), shm_toc_lookup(), SO_HINT_REL_READ_ONLY, SO_NONE, SO_SCAN_INSTRUMENT, TidRangeScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, PlanState::state, and table_beginscan_parallel_tidrange().
Referenced by ExecParallelInitializeWorker().
| void ExecTidRangeScanInstrumentEstimate | ( | TidRangeScanState * | node, |
| ParallelContext * | pcxt | ||
| ) |
Definition at line 544 of file nodeTidrangescan.c.
References add_size(), EState::es_instrument, ParallelContext::estimator, fb(), INSTRUMENT_IO, mul_size(), ParallelContext::nworkers, ScanState::ps, shm_toc_estimate_chunk, shm_toc_estimate_keys, TidRangeScanState::ss, and PlanState::state.
Referenced by ExecParallelEstimate().
| void ExecTidRangeScanInstrumentInitDSM | ( | TidRangeScanState * | node, |
| ParallelContext * | pcxt | ||
| ) |
Definition at line 564 of file nodeTidrangescan.c.
References add_size(), EState::es_instrument, fb(), INSTRUMENT_IO, mul_size(), SharedTidRangeScanInstrumentation::num_workers, ParallelContext::nworkers, PARALLEL_KEY_SCAN_INSTRUMENT_OFFSET, PlanState::plan, Plan::plan_node_id, ScanState::ps, shm_toc_allocate(), shm_toc_insert(), TidRangeScanState::ss, PlanState::state, ParallelContext::toc, and TidRangeScanState::trss_sinstrument.
Referenced by ExecParallelInitializeDSM().
| void ExecTidRangeScanInstrumentInitWorker | ( | TidRangeScanState * | node, |
| ParallelWorkerContext * | pwcxt | ||
| ) |
Definition at line 590 of file nodeTidrangescan.c.
References EState::es_instrument, fb(), INSTRUMENT_IO, PARALLEL_KEY_SCAN_INSTRUMENT_OFFSET, PlanState::plan, Plan::plan_node_id, ScanState::ps, shm_toc_lookup(), TidRangeScanState::ss, PlanState::state, and TidRangeScanState::trss_sinstrument.
Referenced by ExecParallelInitializeWorker().
| void ExecTidRangeScanReInitializeDSM | ( | TidRangeScanState * | node, |
| ParallelContext * | pcxt | ||
| ) |
Definition at line 505 of file nodeTidrangescan.c.
References fb(), TableScanDescData::rs_parallel, TidRangeScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, and table_parallelscan_reinitialize().
Referenced by ExecParallelReInitializeDSM().
| void ExecTidRangeScanRetrieveInstrumentation | ( | TidRangeScanState * | node | ) |
Definition at line 608 of file nodeTidrangescan.c.
References fb(), memcpy(), SharedTidRangeScanInstrumentation::num_workers, palloc(), and TidRangeScanState::trss_sinstrument.
Referenced by ExecParallelRetrieveInstrumentation().
|
static |
Definition at line 59 of file nodeTidrangescan.c.
References elog, ERROR, ExecInitExpr(), fb(), get_leftop(), get_rightop(), IsCTIDVar, OpExpr::opno, palloc_object, pg_fallthrough, TIDEXPR_LOWER_BOUND, and TIDEXPR_UPPER_BOUND.
Referenced by TidExprListCreate().
|
static |
Definition at line 108 of file nodeTidrangescan.c.
References elog, ERROR, fb(), IsA, lappend(), lfirst, MakeTidOpExpr(), NIL, and TidRangeScan::tidrangequals.
Referenced by ExecInitTidRangeScan().
|
static |
Definition at line 141 of file nodeTidrangescan.c.
References DatumGetPointer(), ExecEvalExprSwitchContext(), fb(), InvalidBlockNumber, ItemPointerCompare(), ItemPointerCopy(), ItemPointerDec(), ItemPointerInc(), ItemPointerSet(), lfirst, PG_UINT16_MAX, ScanState::ps, PlanState::ps_ExprContext, TidRangeScanState::ss, TIDEXPR_LOWER_BOUND, TIDEXPR_UPPER_BOUND, TidRangeScanState::trss_maxtid, TidRangeScanState::trss_mintid, and TidRangeScanState::trss_tidexprs.
Referenced by TidRangeNext(), and TidRangeRecheck().
|
static |
Definition at line 224 of file nodeTidrangescan.c.
References EState::es_direction, EState::es_instrument, EState::es_snapshot, ExecClearTuple(), fb(), INSTRUMENT_IO, ScanState::ps, ScanRelIsReadOnly(), SO_HINT_REL_READ_ONLY, SO_NONE, SO_SCAN_INSTRUMENT, TidRangeScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, ScanState::ss_ScanTupleSlot, PlanState::state, table_beginscan_tidrange(), table_rescan_tidrange(), table_scan_getnextslot_tidrange(), TidRangeEval(), TidRangeScanState::trss_inScan, TidRangeScanState::trss_maxtid, and TidRangeScanState::trss_mintid.
Referenced by ExecTidRangeScan().
|
static |
Definition at line 286 of file nodeTidrangescan.c.
References Assert, ItemPointerCompare(), ItemPointerIsValid(), TidRangeEval(), TidRangeScanState::trss_maxtid, TidRangeScanState::trss_mintid, and TupleTableSlot::tts_tid.
Referenced by ExecTidRangeScan().