Fix bug I introduced in recent patch to make hash joins discard null tuples

immediately: ExecHashGetHashValue failed to restore the caller's memory
context before taking the failure exit.
This commit is contained in:
Tom Lane 2007-02-22 22:49:27 +00:00
parent eab6b8b27e
commit 3c5985b473
1 changed files with 5 additions and 2 deletions

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.110 2007/01/30 01:33:36 tgl Exp $ * $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.111 2007/02/22 22:49:27 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -731,7 +731,10 @@ ExecHashGetHashValue(HashJoinTable hashtable,
if (isNull) if (isNull)
{ {
if (hashtable->hashStrict[i] && !keep_nulls) if (hashtable->hashStrict[i] && !keep_nulls)
return false; /* cannot match */ {
MemoryContextSwitchTo(oldContext);
return false; /* cannot match */
}
/* else, leave hashkey unmodified, equivalent to hashcode 0 */ /* else, leave hashkey unmodified, equivalent to hashcode 0 */
} }
else else