| From: | Александр Акципетров <alex(dot)akts(at)gmail(dot)com> | 
|---|---|
| To: | Александр Акципетров <alex(dot)akts(at)gmail(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org | 
| Subject: | Re: BUG #15900: `executor could not find named tuplestore` in triggers with transition table and row locks | 
| Date: | 2019-07-08 23:32:55 | 
| Message-ID: | CALPsoAJN=Z8sR8c0d2CGkCWVyV9-Q3X0mciHsWcvBzWbCGreLQ@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs | 
On Tue, 9 Jul 2019 at 01:22, PG Bug reporting form <noreply(at)postgresql(dot)org>
wrote:
> The following bug has been logged on the website:
>
> Bug reference:      15900
> Logged by:          Alex Aktsipetrov
> Email address:      alex(dot)akts(at)gmail(dot)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.
>
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alex Aktsipetrov | 2019-07-08 23:39:23 | Re: BUG #15900: `executor could not find named tuplestore` in triggers with transition table and row locks | 
| Previous Message | PG Bug reporting form | 2019-07-08 22:22:45 | BUG #15900: `executor could not find named tuplestore` in triggers with transition table and row locks |