1 /*-------------------------------------------------------------------------
2  *
3  * nodeMemoize.h
4  *
5  *
6  *
7  * Portions Copyright (c) 2021, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/executor/nodeMemoize.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef NODEMEMOIZE_H
15 #define NODEMEMOIZE_H
16 
17 #include "access/parallel.h"
18 #include "nodes/execnodes.h"
19 
20 extern MemoizeState *ExecInitMemoize(Memoize *node, EState *estate, int eflags);
21 extern void ExecEndMemoize(MemoizeState *node);
22 extern void ExecReScanMemoize(MemoizeState *node);
23 extern double ExecEstimateCacheEntryOverheadBytes(double ntuples);
24 extern void ExecMemoizeEstimate(MemoizeState *node,
25 								ParallelContext *pcxt);
26 extern void ExecMemoizeInitializeDSM(MemoizeState *node,
27 									 ParallelContext *pcxt);
28 extern void ExecMemoizeInitializeWorker(MemoizeState *node,
29 										ParallelWorkerContext *pwcxt);
30 extern void ExecMemoizeRetrieveInstrumentation(MemoizeState *node);
31 
32 #endif							/* NODEMEMOIZE_H */
33