Fix pg_dump bug in the database-level collation patch. "datcollate" and
[PostgreSQL.git] / src / include / executor / nodeHash.h
blob701a87c9ec5df1a09fdf4a4ba385b90cffb87967
1 /*-------------------------------------------------------------------------
3 * nodeHash.h
4 * prototypes for nodeHash.c
7 * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
10 * $PostgreSQL$
12 *-------------------------------------------------------------------------
14 #ifndef NODEHASH_H
15 #define NODEHASH_H
17 #include "nodes/execnodes.h"
19 extern int ExecCountSlotsHash(Hash *node);
20 extern HashState *ExecInitHash(Hash *node, EState *estate, int eflags);
21 extern TupleTableSlot *ExecHash(HashState *node);
22 extern Node *MultiExecHash(HashState *node);
23 extern void ExecEndHash(HashState *node);
24 extern void ExecReScanHash(HashState *node, ExprContext *exprCtxt);
26 extern HashJoinTable ExecHashTableCreate(Hash *node, List *hashOperators);
27 extern void ExecHashTableDestroy(HashJoinTable hashtable);
28 extern void ExecHashTableInsert(HashJoinTable hashtable,
29 TupleTableSlot *slot,
30 uint32 hashvalue);
31 extern bool ExecHashGetHashValue(HashJoinTable hashtable,
32 ExprContext *econtext,
33 List *hashkeys,
34 bool outer_tuple,
35 bool keep_nulls,
36 uint32 *hashvalue);
37 extern void ExecHashGetBucketAndBatch(HashJoinTable hashtable,
38 uint32 hashvalue,
39 int *bucketno,
40 int *batchno);
41 extern HashJoinTuple ExecScanHashBucket(HashJoinState *hjstate,
42 ExprContext *econtext);
43 extern void ExecHashTableReset(HashJoinTable hashtable);
44 extern void ExecChooseHashTableSize(double ntuples, int tupwidth,
45 int *numbuckets,
46 int *numbatches);
48 #endif /* NODEHASH_H */