diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/access/hash.h | 3 | ||||
-rw-r--r-- | src/include/executor/hashjoin.h | 11 | ||||
-rw-r--r-- | src/include/executor/nodeHash.h | 3 | ||||
-rw-r--r-- | src/include/utils/lsyscache.h | 8 |
4 files changed, 14 insertions, 11 deletions
diff --git a/src/include/access/hash.h b/src/include/access/hash.h index 40c86b74552..baed9fdb4b7 100644 --- a/src/include/access/hash.h +++ b/src/include/access/hash.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/access/hash.h,v 1.75 2007/01/20 18:43:35 neilc Exp $ + * $PostgreSQL: pgsql/src/include/access/hash.h,v 1.76 2007/01/30 01:33:36 tgl Exp $ * * NOTES * modeled after Margo Seltzer's hash implementation for unix. @@ -308,6 +308,7 @@ extern bool _hash_step(IndexScanDesc scan, Buffer *bufP, ScanDirection dir); /* hashutil.c */ extern bool _hash_checkqual(IndexScanDesc scan, IndexTuple itup); extern uint32 _hash_datum2hashkey(Relation rel, Datum key); +extern uint32 _hash_datum2hashkey_type(Relation rel, Datum key, Oid keytype); extern Bucket _hash_hashkey2bucket(uint32 hashkey, uint32 maxbucket, uint32 highmask, uint32 lowmask); extern uint32 _hash_log2(uint32 num); diff --git a/src/include/executor/hashjoin.h b/src/include/executor/hashjoin.h index ba086407679..19cfb1c473b 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 */ diff --git a/src/include/executor/nodeHash.h b/src/include/executor/nodeHash.h index bf7292e8156..7c210bf99a0 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.43 2007/01/28 23:21:26 tgl Exp $ + * $PostgreSQL: pgsql/src/include/executor/nodeHash.h,v 1.44 2007/01/30 01:33:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -31,6 +31,7 @@ extern void ExecHashTableInsert(HashJoinTable hashtable, extern bool ExecHashGetHashValue(HashJoinTable hashtable, ExprContext *econtext, List *hashkeys, + bool outer_tuple, bool keep_nulls, uint32 *hashvalue); extern void ExecHashGetBucketAndBatch(HashJoinTable hashtable, diff --git a/src/include/utils/lsyscache.h b/src/include/utils/lsyscache.h index 28bb03eca64..8e9bfaa1edc 100644 --- a/src/include/utils/lsyscache.h +++ b/src/include/utils/lsyscache.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/utils/lsyscache.h,v 1.115 2007/01/22 01:35:22 tgl Exp $ + * $PostgreSQL: pgsql/src/include/utils/lsyscache.h,v 1.116 2007/01/30 01:33:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -42,8 +42,10 @@ extern bool get_compare_function_for_ordering_op(Oid opno, extern Oid get_equality_op_for_ordering_op(Oid opno); extern Oid get_ordering_op_for_equality_op(Oid opno, bool use_lhs_type); extern List *get_mergejoin_opfamilies(Oid opno); -extern Oid get_compatible_hash_operator(Oid opno, bool use_lhs_type); -extern Oid get_op_hash_function(Oid opno); +extern bool get_compatible_hash_operators(Oid opno, + Oid *lhs_opno, Oid *rhs_opno); +extern bool get_op_hash_functions(Oid opno, + RegProcedure *lhs_procno, RegProcedure *rhs_procno); extern void get_op_btree_interpretation(Oid opno, List **opfamilies, List **opstrats); extern bool ops_in_same_btree_opfamily(Oid opno1, Oid opno2); |