From a635c08fa10fe545d723bcec6eb73bfdca07e2c0 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 30 Jan 2007 01:33:36 +0000 Subject: Add support for cross-type hashing in hash index searches and hash joins. Hashing for aggregation purposes still needs work, so it's not time to mark any cross-type operators as hashable for general use, but these cases work if the operators are so marked by hand in the system catalogs. --- src/include/executor/hashjoin.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/include/executor/hashjoin.h') diff --git a/src/include/executor/hashjoin.h b/src/include/executor/hashjoin.h index ba08640767..19cfb1c473 100644 --- a/src/include/executor/hashjoin.h +++ b/src/include/executor/hashjoin.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/hashjoin.h,v 1.43 2007/01/28 23:21:26 tgl Exp $ + * $PostgreSQL: pgsql/src/include/executor/hashjoin.h,v 1.44 2007/01/30 01:33:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -102,12 +102,11 @@ typedef struct HashJoinTableData /* * Info about the datatype-specific hash functions for the datatypes being - * hashed. We assume that the inner and outer sides of each hashclause - * are the same type, or at least share the same hash function. This is an - * array of the same length as the number of hash keys. + * hashed. These are arrays of the same length as the number of hash join + * clauses (hash keys). */ - FmgrInfo *hashfunctions; /* lookup data for hash functions */ - + FmgrInfo *outer_hashfunctions; /* lookup data for hash functions */ + FmgrInfo *inner_hashfunctions; /* lookup data for hash functions */ bool *hashStrict; /* is each hash join operator strict? */ Size spaceUsed; /* memory space currently used by tuples */ -- cgit v1.2.1