summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/executor/hashjoin.h13
-rw-r--r--src/include/executor/nodeHash.h6
-rw-r--r--src/include/nodes/execnodes.h8
-rw-r--r--src/include/nodes/plannodes.h5
-rw-r--r--src/include/nodes/relation.h4
5 files changed, 18 insertions, 18 deletions
diff --git a/src/include/executor/hashjoin.h b/src/include/executor/hashjoin.h
index 1869feae08..a2d5f633fc 100644
--- a/src/include/executor/hashjoin.h
+++ b/src/include/executor/hashjoin.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: hashjoin.h,v 1.26 2002/06/20 20:29:49 momjian Exp $
+ * $Id: hashjoin.h,v 1.27 2002/11/30 00:08:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -69,12 +69,13 @@ typedef struct HashTableData
* file */
/*
- * Info about the datatype being hashed. We assume that the inner and
- * outer sides of the hash are the same type, or at least
- * binary-compatible types.
+ * Info about the datatypes being hashed. We assume that the inner and
+ * outer sides of each hashclause are the same type, or at least
+ * binary-compatible types. Each of these fields points to an array
+ * of the same length as the number of hash keys.
*/
- int16 typLen;
- bool typByVal;
+ int16 *typLens;
+ bool *typByVals;
/*
* During 1st scan of inner relation, we get tuples from executor. If
diff --git a/src/include/executor/nodeHash.h b/src/include/executor/nodeHash.h
index 8bea51e8af..654906cd3c 100644
--- a/src/include/executor/nodeHash.h
+++ b/src/include/executor/nodeHash.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: nodeHash.h,v 1.25 2002/11/06 22:31:24 tgl Exp $
+ * $Id: nodeHash.h,v 1.26 2002/11/30 00:08:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,10 +24,10 @@ extern HashJoinTable ExecHashTableCreate(Hash *node);
extern void ExecHashTableDestroy(HashJoinTable hashtable);
extern void ExecHashTableInsert(HashJoinTable hashtable,
ExprContext *econtext,
- Node *hashkey);
+ List *hashkeys);
extern int ExecHashGetBucket(HashJoinTable hashtable,
ExprContext *econtext,
- Node *hashkey);
+ List *hashkeys);
extern HeapTuple ExecScanHashBucket(HashJoinState *hjstate, List *hjclauses,
ExprContext *econtext);
extern void ExecHashTableReset(HashJoinTable hashtable, long ntuples);
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index 6ee39b9818..544510746d 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: execnodes.h,v 1.80 2002/11/25 21:29:42 tgl Exp $
+ * $Id: execnodes.h,v 1.81 2002/11/30 00:08:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -618,7 +618,8 @@ typedef struct MergeJoinState
* tuple, or NULL if starting search
* (CurBucketNo and CurTuple are meaningless
* unless OuterTupleSlot is nonempty!)
- * hj_InnerHashKey the inner hash key in the hashjoin condition
+ * hj_OuterHashKeys the outer hash keys in the hashjoin condition
+ * hj_InnerHashKeys the inner hash keys in the hashjoin condition
* hj_OuterTupleSlot tuple slot for outer tuples
* hj_HashTupleSlot tuple slot for hashed tuples
* hj_NullInnerTupleSlot prepared null tuple for left outer joins
@@ -633,7 +634,8 @@ typedef struct HashJoinState
HashJoinTable hj_HashTable;
int hj_CurBucketNo;
HashJoinTuple hj_CurTuple;
- Node *hj_InnerHashKey;
+ List *hj_OuterHashKeys;
+ List *hj_InnerHashKeys;
TupleTableSlot *hj_OuterTupleSlot;
TupleTableSlot *hj_HashTupleSlot;
TupleTableSlot *hj_NullInnerTupleSlot;
diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h
index 0cf9d0bac9..6a6ac415f9 100644
--- a/src/include/nodes/plannodes.h
+++ b/src/include/nodes/plannodes.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: plannodes.h,v 1.60 2002/11/06 22:31:24 tgl Exp $
+ * $Id: plannodes.h,v 1.61 2002/11/30 00:08:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -318,7 +318,6 @@ typedef struct HashJoin
{
Join join;
List *hashclauses;
- Oid hashjoinop;
HashJoinState *hashjoinstate;
} HashJoin;
@@ -443,7 +442,7 @@ typedef struct Limit
typedef struct Hash
{
Plan plan;
- Node *hashkey;
+ List *hashkeys;
HashState *hashstate;
} Hash;
diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h
index a3f0e36c76..4c06224ecc 100644
--- a/src/include/nodes/relation.h
+++ b/src/include/nodes/relation.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: relation.h,v 1.70 2002/11/27 20:52:04 tgl Exp $
+ * $Id: relation.h,v 1.71 2002/11/30 00:08:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -464,8 +464,6 @@ typedef struct MergePath
* A hashjoin path has these fields.
*
* The remarks above for mergeclauses apply for hashclauses as well.
- * (But note that path_hashclauses will always be a one-element list,
- * since we only hash on one hashable clause.)
*
* Hashjoin does not care what order its inputs appear in, so we have
* no need for sortkeys.