|
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/executor.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 } |
Functions | |
| static TidOpExpr * | MakeTidOpExpr (OpExpr *expr, TidRangeScanState *tidstate) |
| static void | TidExprListCreate (TidRangeScanState *tidrangestate) |
| static bool | TidRangeEval (TidRangeScanState *node) |
| static TupleTableSlot * | TidRangeNext (TidRangeScanState *node) |
| static bool | TidRangeRecheck (TidRangeScanState *node, TupleTableSlot *slot) |
| static TupleTableSlot * | ExecTidRangeScan (PlanState *pstate) |
| void | ExecReScanTidRangeScan (TidRangeScanState *node) |
| void | ExecEndTidRangeScan (TidRangeScanState *node) |
| TidRangeScanState * | ExecInitTidRangeScan (TidRangeScan *node, EState *estate, int eflags) |
| void | ExecTidRangeScanEstimate (TidRangeScanState *node, ParallelContext *pcxt) |
| void | ExecTidRangeScanInitializeDSM (TidRangeScanState *node, ParallelContext *pcxt) |
| void | ExecTidRangeScanReInitializeDSM (TidRangeScanState *node, ParallelContext *pcxt) |
| void | ExecTidRangeScanInitializeWorker (TidRangeScanState *node, ParallelWorkerContext *pwcxt) |
| #define IsCTIDVar | ( | node | ) |
Definition at line 33 of file nodeTidrangescan.c.
| enum TidExprType |
| Enumerator | |
|---|---|
| TIDEXPR_UPPER_BOUND | |
| TIDEXPR_LOWER_BOUND | |
Definition at line 38 of file nodeTidrangescan.c.
| void ExecEndTidRangeScan | ( | TidRangeScanState * | node | ) |
Definition at line 339 of file nodeTidrangescan.c.
References TidRangeScanState::ss, ScanState::ss_currentScanDesc, and table_endscan().
Referenced by ExecEndNode().
| TidRangeScanState * ExecInitTidRangeScan | ( | TidRangeScan * | node, |
| EState * | estate, | ||
| int | eflags | ||
| ) |
Definition at line 359 of file nodeTidrangescan.c.
References ExecAssignExprContext(), ExecAssignScanProjectionInfo(), ExecInitQual(), ExecInitResultTypeTL(), ExecInitScanTupleSlot(), ExecOpenScanRelation(), PlanState::ExecProcNode, ExecTidRangeScan(), makeNode, PlanState::plan, ScanState::ps, PlanState::qual, RelationGetDescr, TidRangeScan::scan, Scan::scanrelid, TidRangeScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, PlanState::state, table_slot_callbacks(), TidExprListCreate(), and TidRangeScanState::trss_inScan.
Referenced by ExecInitNode().
| void ExecReScanTidRangeScan | ( | TidRangeScanState * | node | ) |
Definition at line 320 of file nodeTidrangescan.c.
References ExecScanReScan(), TidRangeScanState::ss, and TidRangeScanState::trss_inScan.
Referenced by ExecReScan().
|
static |
Definition at line 306 of file nodeTidrangescan.c.
References castNode, ExecScan(), TidRangeScanState::ss, TidRangeNext(), and TidRangeRecheck().
Referenced by ExecInitTidRangeScan().
| void ExecTidRangeScanEstimate | ( | TidRangeScanState * | node, |
| ParallelContext * | pcxt | ||
| ) |
Definition at line 432 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 450 of file nodeTidrangescan.c.
References EState::es_snapshot, PlanState::plan, Plan::plan_node_id, ScanState::ps, shm_toc_allocate(), shm_toc_insert(), 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 488 of file nodeTidrangescan.c.
References PlanState::plan, Plan::plan_node_id, ScanState::ps, shm_toc_lookup(), TidRangeScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, table_beginscan_parallel_tidrange(), and ParallelWorkerContext::toc.
Referenced by ExecParallelInitializeWorker().
| void ExecTidRangeScanReInitializeDSM | ( | TidRangeScanState * | node, |
| ParallelContext * | pcxt | ||
| ) |
Definition at line 472 of file nodeTidrangescan.c.
References TableScanDescData::rs_parallel, TidRangeScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, and table_parallelscan_reinitialize().
Referenced by ExecParallelReInitializeDSM().
|
static |
Definition at line 57 of file nodeTidrangescan.c.
References elog, ERROR, ExecInitExpr(), TidOpExpr::exprstate, TidOpExpr::exprtype, get_leftop(), get_rightop(), TidOpExpr::inclusive, IsCTIDVar, OpExpr::opno, palloc(), ScanState::ps, TidRangeScanState::ss, TIDEXPR_LOWER_BOUND, and TIDEXPR_UPPER_BOUND.
Referenced by TidExprListCreate().
|
static |
Definition at line 106 of file nodeTidrangescan.c.
References elog, ERROR, IsA, lappend(), lfirst, MakeTidOpExpr(), NIL, PlanState::plan, ScanState::ps, TidRangeScanState::ss, TidRangeScan::tidrangequals, and TidRangeScanState::trss_tidexprs.
Referenced by ExecInitTidRangeScan().
|
static |
Definition at line 139 of file nodeTidrangescan.c.
References DatumGetPointer(), ExecEvalExprSwitchContext(), TidOpExpr::exprstate, TidOpExpr::exprtype, TidOpExpr::inclusive, 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 222 of file nodeTidrangescan.c.
References EState::es_direction, EState::es_snapshot, ExecClearTuple(), ScanState::ps, 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 275 of file nodeTidrangescan.c.
References Assert(), ItemPointerCompare(), ItemPointerIsValid(), TidRangeEval(), TidRangeScanState::trss_maxtid, TidRangeScanState::trss_mintid, and TupleTableSlot::tts_tid.
Referenced by ExecTidRangeScan().