1/*-------------------------------------------------------------------------
2 *
3 * nodeHashjoin.h
4 * prototypes for nodeHashjoin.c
5 *
6 *
7 * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/executor/nodeHashjoin.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef NODEHASHJOIN_H
15#define NODEHASHJOIN_H
16
17#include "access/parallel.h"
18#include "nodes/execnodes.h"
19#include "storage/buffile.h"
20
21extern HashJoinState *ExecInitHashJoin(HashJoin *node, EState *estate, int eflags);
22extern void ExecEndHashJoin(HashJoinState *node);
23extern void ExecReScanHashJoin(HashJoinState *node);
24extern void ExecShutdownHashJoin(HashJoinState *node);
25extern void ExecHashJoinEstimate(HashJoinState *state, ParallelContext *pcxt);
26extern void ExecHashJoinInitializeDSM(HashJoinState *state, ParallelContext *pcxt);
27extern void ExecHashJoinReInitializeDSM(HashJoinState *state, ParallelContext *pcxt);
28extern void ExecHashJoinInitializeWorker(HashJoinState *state,
29 ParallelWorkerContext *pwcxt);
30
31extern void ExecHashJoinSaveTuple(MinimalTuple tuple, uint32 hashvalue,
32 BufFile **fileptr);
33
34#endif /* NODEHASHJOIN_H */
35