PostgreSQL Source Code git master
|
#include "postgres.h"
#include "access/sysattr.h"
#include "access/tableam.h"
#include "catalog/pg_type.h"
#include "executor/executor.h"
#include "executor/nodeTidscan.h"
#include "lib/qunique.h"
#include "miscadmin.h"
#include "nodes/nodeFuncs.h"
#include "utils/array.h"
#include "utils/rel.h"
Go to the source code of this file.
Data Structures | |
struct | TidExpr |
Macros | |
#define | IsCTIDVar(node) |
Typedefs | |
typedef struct TidExpr | TidExpr |
Functions | |
static void | TidExprListCreate (TidScanState *tidstate) |
static void | TidListEval (TidScanState *tidstate) |
static int | itemptr_comparator (const void *a, const void *b) |
static TupleTableSlot * | TidNext (TidScanState *node) |
static bool | TidRecheck (TidScanState *node, TupleTableSlot *slot) |
static TupleTableSlot * | ExecTidScan (PlanState *pstate) |
void | ExecReScanTidScan (TidScanState *node) |
void | ExecEndTidScan (TidScanState *node) |
TidScanState * | ExecInitTidScan (TidScan *node, EState *estate, int eflags) |
#define IsCTIDVar | ( | node | ) |
Definition at line 43 of file nodeTidscan.c.
void ExecEndTidScan | ( | TidScanState * | node | ) |
Definition at line 470 of file nodeTidscan.c.
References TidScanState::ss, ScanState::ss_currentScanDesc, and table_endscan().
Referenced by ExecEndNode().
TidScanState * ExecInitTidScan | ( | TidScan * | node, |
EState * | estate, | ||
int | eflags | ||
) |
Definition at line 488 of file nodeTidscan.c.
References ExecAssignExprContext(), ExecAssignScanProjectionInfo(), ExecInitQual(), ExecInitResultTypeTL(), ExecInitScanTupleSlot(), ExecOpenScanRelation(), PlanState::ExecProcNode, ExecTidScan(), makeNode, PlanState::plan, ScanState::ps, PlanState::qual, RelationGetDescr, TidScan::scan, Scan::scanrelid, TidScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, PlanState::state, table_slot_callbacks(), TidExprListCreate(), TidScanState::tss_NumTids, TidScanState::tss_TidList, and TidScanState::tss_TidPtr.
Referenced by ExecInitNode().
void ExecReScanTidScan | ( | TidScanState * | node | ) |
Definition at line 447 of file nodeTidscan.c.
References ExecScanReScan(), pfree(), TidScanState::ss, ScanState::ss_currentScanDesc, table_rescan(), TidScanState::tss_NumTids, TidScanState::tss_TidList, and TidScanState::tss_TidPtr.
Referenced by ExecReScan().
|
static |
Definition at line 433 of file nodeTidscan.c.
References castNode, ExecScan(), TidScanState::ss, TidNext(), and TidRecheck().
Referenced by ExecInitTidScan().
|
static |
Definition at line 283 of file nodeTidscan.c.
References a, b, ItemPointerGetBlockNumber(), and ItemPointerGetOffsetNumber().
Referenced by TidListEval().
|
static |
Definition at line 70 of file nodeTidscan.c.
References ScalarArrayOpExpr::args, Assert, TidExpr::cexpr, elog, ERROR, ExecInitExpr(), TidExpr::exprstate, get_leftop(), get_rightop(), is_opclause(), IsA, TidExpr::isarray, IsCTIDVar, lappend(), lfirst, linitial, list_length(), lsecond, NIL, palloc0(), PlanState::plan, ScanState::ps, TidScanState::ss, TidScan::tidquals, TidScanState::tss_isCurrentOf, and TidScanState::tss_tidexprs.
Referenced by ExecInitTidScan().
|
static |
Definition at line 134 of file nodeTidscan.c.
References Assert, TidExpr::cexpr, DatumGetArrayTypeP, DatumGetPointer(), deconstruct_array_builtin(), EState::es_snapshot, execCurrentOf(), ExecEvalExprSwitchContext(), TidExpr::exprstate, i, TidExpr::isarray, itemptr_comparator(), lfirst, list_length(), palloc(), pfree(), ScanState::ps, PlanState::ps_ExprContext, qsort, qunique(), RelationGetRelid, repalloc(), TidScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, PlanState::state, table_beginscan_tid(), table_tuple_tid_valid(), TidScanState::tss_isCurrentOf, TidScanState::tss_NumTids, TidScanState::tss_tidexprs, TidScanState::tss_TidList, and TidScanState::tss_TidPtr.
Referenced by TidNext().
|
static |
Definition at line 312 of file nodeTidscan.c.
References CHECK_FOR_INTERRUPTS, EState::es_direction, EState::es_snapshot, ExecClearTuple(), ScanState::ps, ScanDirectionIsBackward, TidScanState::ss, ScanState::ss_currentRelation, ScanState::ss_currentScanDesc, ScanState::ss_ScanTupleSlot, PlanState::state, table_tuple_fetch_row_version(), table_tuple_get_latest_tid(), TidListEval(), TidScanState::tss_isCurrentOf, TidScanState::tss_NumTids, TidScanState::tss_TidList, and TidScanState::tss_TidPtr.
Referenced by ExecTidScan().
|
static |
Definition at line 403 of file nodeTidscan.c.
Referenced by ExecTidScan().