PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
nodeIndexscan.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * nodeIndexscan.h
4 *
5 *
6 *
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/executor/nodeIndexscan.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef NODEINDEXSCAN_H
15#define NODEINDEXSCAN_H
16
17#include "access/genam.h"
18#include "access/parallel.h"
19#include "nodes/execnodes.h"
20
21extern IndexScanState *ExecInitIndexScan(IndexScan *node, EState *estate, int eflags);
22extern void ExecEndIndexScan(IndexScanState *node);
23extern void ExecIndexMarkPos(IndexScanState *node);
24extern void ExecIndexRestrPos(IndexScanState *node);
25extern void ExecReScanIndexScan(IndexScanState *node);
31
32/*
33 * These routines are exported to share code with nodeIndexonlyscan.c and
34 * nodeBitmapIndexscan.c
35 */
36extern void ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
37 List *quals, bool isorderby,
38 ScanKey *scanKeys, int *numScanKeys,
39 IndexRuntimeKeyInfo **runtimeKeys, int *numRuntimeKeys,
40 IndexArrayKeyInfo **arrayKeys, int *numArrayKeys);
41extern void ExecIndexEvalRuntimeKeys(ExprContext *econtext,
42 IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys);
43extern bool ExecIndexEvalArrayKeys(ExprContext *econtext,
44 IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
45extern bool ExecIndexAdvanceArrayKeys(IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
46
47#endif /* NODEINDEXSCAN_H */
void ExecIndexBuildScanKeys(PlanState *planstate, Relation index, List *quals, bool isorderby, ScanKey *scanKeys, int *numScanKeys, IndexRuntimeKeyInfo **runtimeKeys, int *numRuntimeKeys, IndexArrayKeyInfo **arrayKeys, int *numArrayKeys)
void ExecIndexScanEstimate(IndexScanState *node, ParallelContext *pcxt)
bool ExecIndexEvalArrayKeys(ExprContext *econtext, IndexArrayKeyInfo *arrayKeys, int numArrayKeys)
void ExecIndexEvalRuntimeKeys(ExprContext *econtext, IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys)
void ExecIndexScanReInitializeDSM(IndexScanState *node, ParallelContext *pcxt)
void ExecReScanIndexScan(IndexScanState *node)
void ExecIndexScanInitializeDSM(IndexScanState *node, ParallelContext *pcxt)
IndexScanState * ExecInitIndexScan(IndexScan *node, EState *estate, int eflags)
void ExecIndexScanInitializeWorker(IndexScanState *node, ParallelWorkerContext *pwcxt)
void ExecEndIndexScan(IndexScanState *node)
void ExecIndexRestrPos(IndexScanState *node)
void ExecIndexMarkPos(IndexScanState *node)
bool ExecIndexAdvanceArrayKeys(IndexArrayKeyInfo *arrayKeys, int numArrayKeys)
Definition: pg_list.h:54
Definition: type.h:96