summaryrefslogtreecommitdiff
path: root/src/include/executor/nodeHash.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-01-28 23:21:26 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-01-28 23:21:26 +0000
commitb39e91501c101d67b92f3e6965da5dc111195f52 (patch)
tree1820d8ba0289c5e32a025b9f62bdd98ca494a972 /src/include/executor/nodeHash.h
parent28c480e9ae64fc239fa1ebe32a981312e65ae1e7 (diff)
Improve hash join to discard input tuples immediately if they can't
match because they contain a null join key (and the join operator is known strict). Improves performance significantly when the inner relation contains a lot of nulls, as per bug #2930.
Diffstat (limited to 'src/include/executor/nodeHash.h')
-rw-r--r--src/include/executor/nodeHash.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/include/executor/nodeHash.h b/src/include/executor/nodeHash.h
index 0ed53ec2267..bf7292e8156 100644
--- a/src/include/executor/nodeHash.h
+++ b/src/include/executor/nodeHash.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/executor/nodeHash.h,v 1.42 2007/01/05 22:19:54 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/executor/nodeHash.h,v 1.43 2007/01/28 23:21:26 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -28,9 +28,11 @@ extern void ExecHashTableDestroy(HashJoinTable hashtable);
extern void ExecHashTableInsert(HashJoinTable hashtable,
TupleTableSlot *slot,
uint32 hashvalue);
-extern uint32 ExecHashGetHashValue(HashJoinTable hashtable,
+extern bool ExecHashGetHashValue(HashJoinTable hashtable,
ExprContext *econtext,
- List *hashkeys);
+ List *hashkeys,
+ bool keep_nulls,
+ uint32 *hashvalue);
extern void ExecHashGetBucketAndBatch(HashJoinTable hashtable,
uint32 hashvalue,
int *bucketno,