Re: BUG #15900: `executor could not find named tuplestore` in triggers with transition table and row locks
Alex Aktsipetrov <alex.akts@gmail.com>
From: Александр Акципетров <alex.akts@gmail.com>
To: Александр Акципетров <alex.akts@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2019-07-08T23:32:55Z
Lists: pgsql-bugs
On Tue, 9 Jul 2019 at 01:22, PG Bug reporting form <noreply@postgresql.org> wrote: > The following bug has been logged on the website: > > Bug reference: 15900 > Logged by: Alex Aktsipetrov > Email address: alex.akts@gmail.com > PostgreSQL version: 12beta2 > Operating system: Ubuntu 16.04 > Description: > > SELECT FOR UPDATE query that references a transition table in AFTER > INSERT/UPDATE triggers produces an unexpected error. The same query with > FOR > UPDATE omitted finishes without any error, which is my expectation for the > original one as well. AFTER DELETE triggers were not tested. > > For example, the following query: > > create table testtr (a int, b text); > > create function testtr_trigger() returns trigger language plpgsql > as > $$begin > perform( > select array_agg(a) from > (select testtr.a from testtr join new_table on testtr.a = > new_table.a > for update) > as tmp > ); > return new; > end$$; > > create trigger testtr_trigger > after insert on testtr > referencing new table as new_table > for each statement execute procedure testtr_trigger(); > > insert into testtr values (1, 'one'), (2, 'two'); > > produces the following error: > > ERROR: executor could not find named tuplestore "new_table" > CONTEXT: SQL statement "SELECT ( > select array_agg(a) from > (select testtr.a from testtr join new_table on testtr.a = > new_table.a > for update) > as tmp > )" > > I think the issue was introduced in > ad0bda5d24ea2bcc72b5e50020e3c79bab10836b > as the query finishes successfully in its ancestor. > >
Commits
-
Pass QueryEnvironment down to EvalPlanQual's EState.
- 72b526779a93 10.10 landed
- 9509173d2430 11.5 landed
- abbb2e143213 12.0 landed
- f5825853e3af 13.0 landed
-
Store tuples for EvalPlanQual in slots, rather than as HeapTuples.
- ad0bda5d24ea 12.0 cited