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 */
21extern CustomScanState *ExecInitCustomScan(CustomScan *cscan,
22 EState *estate, int eflags);
23extern void ExecEndCustomScan(CustomScanState *node);
24
25extern void ExecReScanCustomScan(CustomScanState *node);
26extern void ExecCustomMarkPos(CustomScanState *node);
27extern void ExecCustomRestrPos(CustomScanState *node);
28
29/*
30 * Parallel execution support
31 */
32extern void ExecCustomScanEstimate(CustomScanState *node,
33 ParallelContext *pcxt);
34extern void ExecCustomScanInitializeDSM(CustomScanState *node,
35 ParallelContext *pcxt);
36extern void ExecCustomScanReInitializeDSM(CustomScanState *node,
37 ParallelContext *pcxt);
38extern void ExecCustomScanInitializeWorker(CustomScanState *node,
39 ParallelWorkerContext *pwcxt);
40extern void ExecShutdownCustomScan(CustomScanState *node);
41
42#endif /* NODECUSTOM_H */
43