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) |
#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 327 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 347 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 308 of file nodeTidrangescan.c.
References ExecScanReScan(), TidRangeScanState::ss, and TidRangeScanState::trss_inScan.
Referenced by ExecReScan().
|
static |
Definition at line 294 of file nodeTidrangescan.c.
References castNode, ExecScan(), TidRangeScanState::ss, TidRangeNext(), and TidRangeRecheck().
Referenced by ExecInitTidRangeScan().
|
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 137 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().
|
static |
Definition at line 220 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 273 of file nodeTidrangescan.c.
Referenced by ExecTidRangeScan().