diff options
author | Robert Haas <rhaas@postgresql.org> | 2017-02-19 15:53:59 +0530 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2017-02-19 15:57:55 +0530 |
commit | 0414b26bac09379a4cbf1fbd847d1cee2293c5e4 (patch) | |
tree | 16554f77178d068e27bd53c2404a6f8468c90746 /src/include/executor/nodeIndexonlyscan.h | |
parent | 16be2fd100199bdf284becfcee02c5eb20d8a11d (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.h | 9 |
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 */ |