]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
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;