1 /*-------------------------------------------------------------------------
2  *
3  * nodeIndexonlyscan.h
4  *
5  *
6  *
7  * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/executor/nodeIndexonlyscan.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef NODEINDEXONLYSCAN_H
15 #define NODEINDEXONLYSCAN_H
16 
17 #include "nodes/execnodes.h"
18 #include "access/parallel.h"
19 
20 extern IndexOnlyScanState *ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags);
21 extern void ExecEndIndexOnlyScan(IndexOnlyScanState *node);
22 extern void ExecIndexOnlyMarkPos(IndexOnlyScanState *node);
23 extern void ExecIndexOnlyRestrPos(IndexOnlyScanState *node);
24 extern void ExecReScanIndexOnlyScan(IndexOnlyScanState *node);
25 
26 /* Support functions for parallel index-only scans */
27 extern void ExecIndexOnlyScanEstimate(IndexOnlyScanState *node,
28 						  ParallelContext *pcxt);
29 extern void ExecIndexOnlyScanInitializeDSM(IndexOnlyScanState *node,
30 							   ParallelContext *pcxt);
31 extern void ExecIndexOnlyScanReInitializeDSM(IndexOnlyScanState *node,
32 								 ParallelContext *pcxt);
33 extern void ExecIndexOnlyScanInitializeWorker(IndexOnlyScanState *node,
34 								  ParallelWorkerContext *pwcxt);
35 
36 #endif							/* NODEINDEXONLYSCAN_H */
37