1/*-------------------------------------------------------------------------
2 *
3 * nodeIndexonlyscan.h
4 *
5 *
6 *
7 * Portions Copyright (c) 1996-2019, 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
20extern IndexOnlyScanState *ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags);
21extern void ExecEndIndexOnlyScan(IndexOnlyScanState *node);
22extern void ExecIndexOnlyMarkPos(IndexOnlyScanState *node);
23extern void ExecIndexOnlyRestrPos(IndexOnlyScanState *node);
24extern void ExecReScanIndexOnlyScan(IndexOnlyScanState *node);
25
26/* Support functions for parallel index-only scans */
27extern void ExecIndexOnlyScanEstimate(IndexOnlyScanState *node,
28 ParallelContext *pcxt);
29extern void ExecIndexOnlyScanInitializeDSM(IndexOnlyScanState *node,
30 ParallelContext *pcxt);
31extern void ExecIndexOnlyScanReInitializeDSM(IndexOnlyScanState *node,
32 ParallelContext *pcxt);
33extern void ExecIndexOnlyScanInitializeWorker(IndexOnlyScanState *node,
34 ParallelWorkerContext *pwcxt);
35
36#endif /* NODEINDEXONLYSCAN_H */
37