Re: BUG #16139: Assertion fails on INSERT into a postgres_fdw' table with two AFTER INSERT triggers

Etsuro Fujita <etsuro.fujita@gmail.com>

From: Etsuro Fujita <etsuro.fujita@gmail.com>
To: exclusion@gmail.com, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2019-11-27T08:20:19Z
Lists: pgsql-bugs
On Wed, Nov 27, 2019 at 4:21 PM PG Bug reporting form
<noreply@postgresql.org> wrote:
> The following script:
> CREATE EXTENSION postgres_fdw;
> CREATE SERVER loopback FOREIGN DATA WRAPPER postgres_fdw OPTIONS (dbname
> 'postgres');
> CREATE USER MAPPING FOR CURRENT_USER SERVER loopback;
> CREATE TABLE loc2 (f1 int);
> CREATE FOREIGN TABLE rem2 (f1 int) SERVER loopback OPTIONS(table_name
> 'loc2');
> CREATE OR REPLACE FUNCTION trigger_data() RETURNS trigger
> LANGUAGE plpgsql AS 'begin return NEW; end;';
>
> CREATE TRIGGER trigger1 AFTER INSERT ON rem2 FOR EACH ROW EXECUTE PROCEDURE
> trigger_data();
> CREATE TRIGGER trigger2 AFTER INSERT ON rem2 FOR EACH ROW EXECUTE PROCEDURE
> trigger_data();
> INSERT INTO rem2 VALUES(1);
>
> raises the assertion:

Reproduced.  Will look into this.

Best regards,
Etsuro Fujita



Commits

  1. Fix handling of multiple AFTER ROW triggers on a foreign table.

  2. Use slots in trigger infrastructure, except for the actual invocation.