Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers
От | Alvaro Herrera |
---|---|
Тема | Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers |
Дата | |
Msg-id | 20201021170237.GA17401@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers (Justin Pryzby <pryzby@telsasoft.com>) |
Ответы |
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers
|
Список | pgsql-hackers |
On 2020-Oct-21, Justin Pryzby wrote: > I came up with this, which probably needs more than a little finesse. Hmm, there are two important changes needed on this: 1) it must not emit CREATE lines for the child triggers; only the ALTER TABLE ONLY <partition> lines to set disable state on the partition are needed. 2) tgparentid does not exist prior to pg13, so you need some additional trick to cover that case. Also, I think the multipartition case is broken: if grandparent has trigger enabled, parent has trigger disabled and child trigger set to always, is that dumped correctly? I think the right way to do this is change only the partitions that differ from the topmost partitioned table -- not their immediate parents; and use ONLY to ensure they don't affect downstream children. Change 1 also means that the test with the "this shouldn't ever get emitted" comment remains unchanged. I'm not sure how to tackle change 2. You need to search pg_depend for entries with classid=pg_trigger and refclass=pg_trigger ... (commit 1fa846f1c9af might give some clue)
В списке pgsql-hackers по дате отправления: