
on-the-fly, and thereby avoid blowing out memory when the planner has underestimated the hash table size. Hash join will now obey the work_mem limit with some faithfulness. Per my recent proposal (hash aggregate part isn't done yet though).
30 lines
1012 B
C
30 lines
1012 B
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* nodeHashjoin.h
|
|
* prototypes for nodeHashjoin.c
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $PostgreSQL: pgsql/src/include/executor/nodeHashjoin.h,v 1.29 2005/03/06 22:15:05 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef NODEHASHJOIN_H
|
|
#define NODEHASHJOIN_H
|
|
|
|
#include "nodes/execnodes.h"
|
|
#include "storage/buffile.h"
|
|
|
|
extern int ExecCountSlotsHashJoin(HashJoin *node);
|
|
extern HashJoinState *ExecInitHashJoin(HashJoin *node, EState *estate);
|
|
extern TupleTableSlot *ExecHashJoin(HashJoinState *node);
|
|
extern void ExecEndHashJoin(HashJoinState *node);
|
|
extern void ExecReScanHashJoin(HashJoinState *node, ExprContext *exprCtxt);
|
|
|
|
extern void ExecHashJoinSaveTuple(HeapTuple heapTuple, uint32 hashvalue,
|
|
BufFile **fileptr);
|
|
|
|
#endif /* NODEHASHJOIN_H */
|