PostgreSQL Source Code  git master
nodeIndexscan.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * nodeIndexscan.h
4  *
5  *
6  *
7  * Portions Copyright (c) 1996-2024, 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 
21 extern IndexScanState *ExecInitIndexScan(IndexScan *node, EState *estate, int eflags);
22 extern void ExecEndIndexScan(IndexScanState *node);
23 extern void ExecIndexMarkPos(IndexScanState *node);
24 extern void ExecIndexRestrPos(IndexScanState *node);
25 extern void ExecReScanIndexScan(IndexScanState *node);
26 extern void ExecIndexScanEstimate(IndexScanState *node, ParallelContext *pcxt);
30  ParallelWorkerContext *pwcxt);
31 
32 /*
33  * These routines are exported to share code with nodeIndexonlyscan.c and
34  * nodeBitmapIndexscan.c
35  */
36 extern 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);
41 extern void ExecIndexEvalRuntimeKeys(ExprContext *econtext,
42  IndexRuntimeKeyInfo *runtimeKeys, int numRuntimeKeys);
43 extern bool ExecIndexEvalArrayKeys(ExprContext *econtext,
44  IndexArrayKeyInfo *arrayKeys, int numArrayKeys);
45 extern 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:95