Re: A row-level trigger on a partitioned table is not created on asub-partition created later
От | Alvaro Herrera |
---|---|
Тема | Re: A row-level trigger on a partitioned table is not created on asub-partition created later |
Дата | |
Msg-id | 20191218095645.GA9168@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: A row-level trigger on a partitioned table is not created on asub-partition created later (Amit Langote <amitlangote09@gmail.com>) |
Ответы |
Re: A row-level trigger on a partitioned table is not created on asub-partition created later
|
Список | pgsql-bugs |
On 2019-Dec-18, Amit Langote wrote: > Hello, > > On Thu, Dec 5, 2019 at 4:24 PM Petr Fedorov <petr.fedorov@phystech.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
В списке pgsql-bugs по дате отправления: