From: Tom Lane Date: Thu, 22 Feb 2007 22:49:27 +0000 (+0000) Subject: Fix bug I introduced in recent patch to make hash joins discard null tuples X-Git-Tag: REL8_3_BETA1~1116 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3c5985b473024f45005c8b4776d4d63ed2d39d82;p=thirdparty%2Fpostgresql.git 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. --- diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index 88d9360e422..a6da272d47c 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -8,7 +8,7 @@ * * * 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 (hashtable->hashStrict[i] && !keep_nulls) - return false; /* cannot match */ + { + MemoryContextSwitchTo(oldContext); + return false; /* cannot match */ + } /* else, leave hashkey unmodified, equivalent to hashcode 0 */ } else