Re: A row-level trigger on a partitioned table is not created on asub-partition created later
От
Amit Langote
Тема
Re: A row-level trigger on a partitioned table is not created on asub-partition created later
Дата
Msg-id
CA+HiwqFM2=i+uHB9o4OkLbE2S3sjPHoVe2wXuAD1GLJ4+Pk9eg@mail.gmail.com
Ответ на
A row-level trigger on a partitioned table is not created on asub-partition created later (Petr Fedorov)
Список
Дерево обсуждения
A row-level trigger on a partitioned table is not created on asub-partition created later Petr Fedorov <petr.fedorov@phystech.edu>
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 Alvaro Herrera <alvherre@2ndquadrant.com>
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 Alvaro Herrera <alvherre@2ndquadrant.com>
Re: A row-level trigger on a partitioned table is not created on asub-partition created later Alvaro Herrera <alvherre@2ndquadrant.com>
Re: A row-level trigger on a partitioned table is not created on asub-partition created later Alvaro Herrera <alvherre@2ndquadrant.com>
Re: A row-level trigger on a partitioned table is not created on asub-partition created later Amit Langote <amitlangote09@gmail.com>
Hello, On Thu, Dec 5, 2019 at 4:24 PM Petr Fedorov 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. :( 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. Thanks, Amit
В списке pgsql-bugs по дате отправления
От: Amit Langote
Дата:
От: Kyotaro Horiguchi
Дата: