Barring any objections I'll apply this tomorrow.
-Neil
Index: src/backend/executor/nodeHash.c =================================================================== RCS file: /Users/neilc/local/cvs/pgsql/src/backend/executor/nodeHash.c,v retrieving revision 1.91 diff -c -r1.91 nodeHash.c *** src/backend/executor/nodeHash.c 16 Mar 2005 21:38:07 -0000 1.91 --- src/backend/executor/nodeHash.c 30 Mar 2005 12:57:07 -0000 *************** *** 54,60 **** * get state info from node */ outerNode = outerPlanState(node); - hashtable = node->hashtable; /* --- 54,59 ---- *************** *** 78,88 **** ExecHashTableInsert(hashtable, ExecFetchSlotTuple(slot), hashvalue); } ! /* ! * Return the slot so that we have the tuple descriptor when we need ! * to save/restore them. -Jeff 11 July 1991 (XXX isn't this dead code?) ! */ ! return slot; } /* ---------------------------------------------------------------- --- 77,84 ---- ExecHashTableInsert(hashtable, ExecFetchSlotTuple(slot), hashvalue); } ! /* We needn't return a tuple slot or anything else */ ! return NULL; } /* ---------------------------------------------------------------- Index: src/backend/executor/nodeHashjoin.c =================================================================== RCS file: /Users/neilc/local/cvs/pgsql/src/backend/executor/nodeHashjoin.c,v retrieving revision 1.69 diff -c -r1.69 nodeHashjoin.c *** src/backend/executor/nodeHashjoin.c 16 Mar 2005 21:38:07 -0000 1.69 --- src/backend/executor/nodeHashjoin.c 30 Mar 2005 11:17:36 -0000 *************** *** 97,104 **** * outer tuple; so we can stop scanning the inner scan if we matched * on the previous try. */ ! if (node->js.jointype == JOIN_IN && ! node->hj_MatchedOuter) node->hj_NeedNewOuter = true; /* --- 97,103 ---- * outer tuple; so we can stop scanning the inner scan if we matched * on the previous try. */ ! if (node->js.jointype == JOIN_IN && node->hj_MatchedOuter) node->hj_NeedNewOuter = true; /*
---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster