1 /* ------------------------------------------------------------------------ 2 * 3 * nodeCustom.h 4 * 5 * prototypes for CustomScan nodes 6 * 7 * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group 8 * Portions Copyright (c) 1994, Regents of the University of California 9 * 10 * ------------------------------------------------------------------------ 11 */ 12 #ifndef NODECUSTOM_H 13 #define NODECUSTOM_H 14 15 #include "access/parallel.h" 16 #include "nodes/execnodes.h" 17 18 /* 19 * General executor code 20 */ 21 extern CustomScanState *ExecInitCustomScan(CustomScan *cscan, 22 EState *estate, int eflags); 23 extern void ExecEndCustomScan(CustomScanState *node); 24 25 extern void ExecReScanCustomScan(CustomScanState *node); 26 extern void ExecCustomMarkPos(CustomScanState *node); 27 extern void ExecCustomRestrPos(CustomScanState *node); 28 29 /* 30 * Parallel execution support 31 */ 32 extern void ExecCustomScanEstimate(CustomScanState *node, 33 ParallelContext *pcxt); 34 extern void ExecCustomScanInitializeDSM(CustomScanState *node, 35 ParallelContext *pcxt); 36 extern void ExecCustomScanReInitializeDSM(CustomScanState *node, 37 ParallelContext *pcxt); 38 extern void ExecCustomScanInitializeWorker(CustomScanState *node, 39 ParallelWorkerContext *pwcxt); 40 extern void ExecShutdownCustomScan(CustomScanState *node); 41 42 #endif /* NODECUSTOM_H */ 43