BUG #15900: `executor could not find named tuplestore` in triggers with transition table and row locks
The Post Office <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: alex.akts@gmail.com
Date: 2019-07-08T22:22:45Z
Lists: pgsql-bugs
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