Re: A row-level trigger on a partitioned table is not created on a sub-partition created later

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Amit Langote <amitlangote09(at)gmail(dot)com>
Cc: Petr Fedorov <petr(dot)fedorov(at)phystech(dot)edu>, PostgreSQL mailing lists <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: A row-level trigger on a partitioned table is not created on a sub-partition created later
Date: 2019-12-18 09:56:45
Message-ID: 20191218095645.GA9168@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 2019-Dec-18, Amit Langote wrote:

> Hello,
>
> On Thu, Dec 5, 2019 at 4:24 PM Petr Fedorov <petr(dot)fedorov(at)phystech(dot)edu> wrote:
> > create table level1 (id1 integer not null, id2 integer not null, id3 integer not null) partition by list (id2);
> > create or replace function trigger_func() returns trigger language 'plpgsql' as $body$ begin raise exception 'fired'; return null; end $body$;
> > create trigger test_trigger after insert on level1 for each row execute procedure trigger_func();
> >
> > create table level2 partition of level1 for values in (1) partition by list (id3);
> > create table level3 partition of level2 for values in (1);
> >
> > insert into level1 values (1,1,1); -- row inserted
> >
> > psql \d+ shows that level3 does not have row level trigger while level2 and level1 have.
>
> That is a bug. :(

Ouch.

> Alvaro, isn't marking triggers cloned to partitions "internal"
> unnecessary? Because the cloned trigger on partition (level2 in above
> example) is marked internal, CloneRowTriggersToPartition() skips it
> when called on a sub-partition (level3 in above example).
>
> Attached patch to fix that passes make check, although a bit surprised
> that it does.

IIRC that change would break pg_dump.

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message PG Bug reporting form 2019-12-18 10:28:43 BUG #16171: Potential malformed JSON in explain output
Previous Message James (王旭) 2019-12-18 09:53:26 How to prevent POSTGRES killing linux system from accepting too much inserts?