]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix overly tense optimization of PLpgSQL_func_hashkey: we must represent
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 9 Oct 2008 16:35:13 +0000 (16:35 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 9 Oct 2008 16:35:13 +0000 (16:35 +0000)
commita4f5d8a51e22ff459602c05dcd3ca37bcfe1384a
tree76eb10153563424c9a18dad006bd26706acccc5a
parent5b61c9a81288faa290f008efba51ce1fcfe985cd
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.
src/pl/plpgsql/src/pl_comp.c
src/pl/plpgsql/src/plpgsql.h