pgsql: Fix overly tense optimization of PLpgSQL_func_hashkey: we must

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix overly tense optimization of PLpgSQL_func_hashkey: we must
Date: 2008-10-09 16:35:19
Message-ID: 20081009163519.35F597545A4@cvs.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Fix overly tense optimization of PLpgSQL_func_hashkey: we must represent
the isTrigger state explicitly, not rely on nonzero-ness of trigrelOid
to indicate trigger-hood, because trigrelOid will be left zero when compiling
for validation. The (useless) function hash entry built by the validator
was able to match an ordinary non-trigger call later in the same session,
thereby bypassing the check that is supposed to prevent such a call.
Per report from Alvaro.

It might be worth suppressing the useless hash entry altogether, but
that's a bigger change than I want to consider back-patching.

Back-patch to 8.0. 7.4 doesn't have the problem because it doesn't
have validation mode.

Tags:
----
REL8_2_STABLE

Modified Files:
--------------
pgsql/src/pl/plpgsql/src:
pl_comp.c (r1.108.2.2 -> r1.108.2.3)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/pl_comp.c?r1=1.108.2.2&r2=1.108.2.3)
plpgsql.h (r1.81.2.2 -> r1.81.2.3)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/plpgsql.h?r1=1.81.2.2&r2=1.81.2.3)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2008-10-09 16:35:25 pgsql: Fix overly tense optimization of PLpgSQL_func_hashkey: we must
Previous Message Tom Lane 2008-10-09 16:35:13 pgsql: Fix overly tense optimization of PLpgSQL_func_hashkey: we must