Fix breakage in hashjoin from recent backpatch of left-join bug fix.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 13 Oct 2004 21:56:14 +0000 (21:56 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 13 Oct 2004 21:56:14 +0000 (21:56 +0000)
(That's what I get for not testing the back branches *before* committing.)

src/backend/executor/nodeHashjoin.c

index 64ab1cc23383bd069136c057bd0d85a302862883..37f74a7f2d976480204afd1a828c9ac56ba89bd9 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.39.2.1 2004/09/17 18:29:40 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.39.2.2 2004/10/13 21:56:14 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "utils/memutils.h"
 
 
-static TupleTableSlot *ExecHashJoinOuterGetTuple(Plan *node, Plan *parent,
+static TupleTableSlot *ExecHashJoinOuterGetTuple(Plan *node, HashJoin *parent,
                          HashJoinState *hjstate);
 static TupleTableSlot *ExecHashJoinGetSavedTuple(HashJoinState *hjstate,
                          BufFile *file,
                          TupleTableSlot *tupleSlot);
 static int ExecHashJoinGetBatch(int bucketno, HashJoinTable hashtable);
-static int ExecHashJoinNewBatch(HashJoinState *hjstate);
+static int ExecHashJoinNewBatch(HashJoinState *hjstate, HashJoin *node);
 
 
 /* ----------------------------------------------------------------
@@ -154,7 +154,7 @@ ExecHashJoin(HashJoin *node)
        if (hjstate->hj_NeedNewOuter)
        {
            outerTupleSlot = ExecHashJoinOuterGetTuple(outerNode,
-                                                      (Plan *) node,
+                                                      node,
                                                       hjstate);
            if (TupIsNull(outerTupleSlot))
            {
@@ -470,7 +470,7 @@ ExecEndHashJoin(HashJoin *node)
  */
 
 static TupleTableSlot *
-ExecHashJoinOuterGetTuple(Plan *node, Plan *parent, HashJoinState *hjstate)
+ExecHashJoinOuterGetTuple(Plan *node, HashJoin *parent, HashJoinState *hjstate)
 {
    HashJoinTable hashtable = hjstate->hj_HashTable;
    int         curbatch = hashtable->curbatch;
@@ -478,7 +478,7 @@ ExecHashJoinOuterGetTuple(Plan *node, Plan *parent, HashJoinState *hjstate)
 
    if (curbatch == 0)
    {                           /* if it is the first pass */
-       slot = ExecProcNode(node, parent);
+       slot = ExecProcNode(node, (Plan *) parent);
        if (!TupIsNull(slot))
            return slot;
 
@@ -486,7 +486,7 @@ ExecHashJoinOuterGetTuple(Plan *node, Plan *parent, HashJoinState *hjstate)
         * We have just reached the end of the first pass. Try to switch
         * to a saved batch.
         */
-       curbatch = ExecHashJoinNewBatch(hjstate);
+       curbatch = ExecHashJoinNewBatch(hjstate, parent);
    }
 
    /*
@@ -500,7 +500,7 @@ ExecHashJoinOuterGetTuple(Plan *node, Plan *parent, HashJoinState *hjstate)
                                         hjstate->hj_OuterTupleSlot);
        if (!TupIsNull(slot))
            return slot;
-       curbatch = ExecHashJoinNewBatch(hjstate);
+       curbatch = ExecHashJoinNewBatch(hjstate, parent);
    }
 
    /* Out of batches... */
@@ -546,7 +546,7 @@ ExecHashJoinGetSavedTuple(HashJoinState *hjstate,
  * ----------------------------------------------------------------
  */
 static int
-ExecHashJoinNewBatch(HashJoinState *hjstate)
+ExecHashJoinNewBatch(HashJoinState *hjstate, HashJoin *node)
 {
    HashJoinTable hashtable = hjstate->hj_HashTable;
    int         nbatch = hashtable->nbatch;
@@ -576,7 +576,7 @@ ExecHashJoinNewBatch(HashJoinState *hjstate)
    while (newbatch <= nbatch &&
           (outerBatchSize[newbatch - 1] == 0L ||
            (innerBatchSize[newbatch - 1] == 0L &&
-            hjstate->js.jointype != JOIN_LEFT)))
+            node->join.jointype != JOIN_LEFT)))
    {
        BufFileClose(hashtable->innerBatchFile[newbatch - 1]);
        hashtable->innerBatchFile[newbatch - 1] = NULL;