Re: BUG #15900: `executor could not find named tuplestore` in triggers with transition table and row locks

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Alex Aktsipetrov <alex.akts@gmail.com>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Andres Freund <andres@anarazel.de>
Date: 2019-07-09T01:13:31Z
Lists: pgsql-bugs

Attachments

On Tue, Jul 9, 2019 at 11:49 AM Thomas Munro <thomas.munro@gmail.com> wrote:
> On Tue, Jul 9, 2019 at 11:39 AM Alex Aktsipetrov <alex.akts@gmail.com> wrote:
> > Attaching the patch that fixes the issue, although I am not familiar with the codebase to be sure that it is the right idea.
>
> Thanks for the report and the proposed fix!

The repro works for me, and I think the patch is correct.  Here's a
version with that line moved to a more natural place IMHO.

> Hmm, I wonder if EPQ might be involved in bug report #15720 (version 11.2):
>
> https://www.postgresql.org/message-id/flat/15720-38c2b29e5d720187%40postgresql.org

I think it's highly likely that bug #15720 was a case of this bug and
would be fixed by this patch.  Alex's repro doesn't work on 11 though,
because EPQ is not entered at all.  Which raises the question: why do
we need to enter EPQ after commit ad0bda5d on 12/master, for a row
that hasn't been updated by anyone else?

-- 
Thomas Munro
https://enterprisedb.com

Commits

  1. Pass QueryEnvironment down to EvalPlanQual's EState.

  2. Store tuples for EvalPlanQual in slots, rather than as HeapTuples.