summaryrefslogtreecommitdiff
path: root/src/include/executor/nodeIndexonlyscan.h
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2017-02-19 15:53:59 +0530
committerRobert Haas <rhaas@postgresql.org>2017-02-19 15:57:55 +0530
commit0414b26bac09379a4cbf1fbd847d1cee2293c5e4 (patch)
tree16554f77178d068e27bd53c2404a6f8468c90746 /src/include/executor/nodeIndexonlyscan.h
parent16be2fd100199bdf284becfcee02c5eb20d8a11d (diff)
Add optimizer and executor support for parallel index-only scans.
Commit 5262f7a4fc44f651241d2ff1fa688dd664a34874 added similar support for parallel index scans; this extends that work to index-only scans. As with parallel index scans, this requires support from the index AM, so currently parallel index-only scans will only be possible for btree indexes. Rafia Sabih, reviewed and tested by Rahila Syed, Tushar Ahuja, and Amit Kapila Discussion: http://postgr.es/m/CAOGQiiPEAs4C=TBp0XShxBvnWXuzGL2u++Hm1=qnCpd6_Mf8Fw@mail.gmail.com
Diffstat (limited to 'src/include/executor/nodeIndexonlyscan.h')
-rw-r--r--src/include/executor/nodeIndexonlyscan.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/include/executor/nodeIndexonlyscan.h b/src/include/executor/nodeIndexonlyscan.h
index 4018af257d2..5d3c6bbc0de 100644
--- a/src/include/executor/nodeIndexonlyscan.h
+++ b/src/include/executor/nodeIndexonlyscan.h
@@ -15,6 +15,7 @@
#define NODEINDEXONLYSCAN_H
#include "nodes/execnodes.h"
+#include "access/parallel.h"
extern IndexOnlyScanState *ExecInitIndexOnlyScan(IndexOnlyScan *node, EState *estate, int eflags);
extern TupleTableSlot *ExecIndexOnlyScan(IndexOnlyScanState *node);
@@ -23,4 +24,12 @@ extern void ExecIndexOnlyMarkPos(IndexOnlyScanState *node);
extern void ExecIndexOnlyRestrPos(IndexOnlyScanState *node);
extern void ExecReScanIndexOnlyScan(IndexOnlyScanState *node);
+/* Support functions for parallel index-only scans */
+extern void ExecIndexOnlyScanEstimate(IndexOnlyScanState *node,
+ ParallelContext *pcxt);
+extern void ExecIndexOnlyScanInitializeDSM(IndexOnlyScanState *node,
+ ParallelContext *pcxt);
+extern void ExecIndexOnlyScanInitializeWorker(IndexOnlyScanState *node,
+ shm_toc *toc);
+
#endif /* NODEINDEXONLYSCAN_H */