|
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 481 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 499 of file nodeTidscan.c.
References ExecAssignExprContext(), ExecAssignScanProjectionInfo(), ExecInitQual(), ExecInitResultTypeTL(), ExecInitScanTupleSlot(), ExecOpenScanRelation(), ExecTidScan(), fb(), makeNode, RelationGetDescr, TidScan::scan, Scan::scanrelid, table_slot_callbacks(), and TidExprListCreate().
Referenced by ExecInitNode().
| void ExecReScanTidScan | ( | TidScanState * | node | ) |
Definition at line 458 of file nodeTidscan.c.
References ExecScanReScan(), fb(), 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 444 of file nodeTidscan.c.
References castNode, ExecScan(), TidScanState::ss, TidNext(), and TidRecheck().
Referenced by ExecInitTidScan().
Definition at line 283 of file nodeTidscan.c.
References a, b, fb(), ItemPointerGetBlockNumber(), and ItemPointerGetOffsetNumber().
Referenced by TidListEval(), and TidRecheck().
|
static |
Definition at line 70 of file nodeTidscan.c.
References Assert, elog, ERROR, ExecInitExpr(), fb(), get_leftop(), get_rightop(), is_opclause(), IsA, IsCTIDVar, lappend(), lfirst, linitial, list_length(), lsecond, NIL, palloc0_object, and TidScan::tidquals.
Referenced by ExecInitTidScan().
|
static |
Definition at line 134 of file nodeTidscan.c.
References Assert, DatumGetArrayTypeP, DatumGetPointer(), deconstruct_array_builtin(), execCurrentOf(), ExecEvalExprSwitchContext(), fb(), i, itemptr_comparator(), lfirst, list_length(), palloc(), pfree(), qsort, qunique(), RelationGetRelid, repalloc(), table_beginscan_tid(), and table_tuple_tid_valid().
Referenced by TidNext(), and TidRecheck().
|
static |
Definition at line 312 of file nodeTidscan.c.
References CHECK_FOR_INTERRUPTS, EState::es_direction, EState::es_snapshot, ExecClearTuple(), fb(), 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.
References fb(), itemptr_comparator(), TidListEval(), TidScanState::tss_isCurrentOf, TidScanState::tss_NumTids, TidScanState::tss_TidList, and TupleTableSlot::tts_tid.
Referenced by ExecTidScan().