Re: Rename of triggers for partitioned tables
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Arne Roland <A.Roland@index.de>
Cc: Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-01-15T22:26:41Z
Lists: pgsql-hackers
On 2020-Nov-27, Arne Roland wrote: > I got too annoyed at building queries for gexec all the time. So wrote > a patch to fix the issue that the rename of partitioned trigger > doesn't affect children. As you say, triggers on children don't necessarily have to have the same name as on parent; this already happens when the trigger is renamed in the child table but not on parent. In that situation the search on the child will fail, which will cause the whole thing to fail I think. We now have the column pg_trigger.tgparentid, and I think it would be better (more reliable) to search for the trigger in the child by the tgparentid column instead, rather than by name. Also, I think it would be good to have ALTER TRIGGER .. ON ONLY parent RENAME TO .. to avoid recursing to children. This seems mostly pointless, but since we've allowed changing the name of the trigger in children thus far, then we've implicitly made it supported to have triggers that are named differently. (And it's not entirely academic, since the trigger name determines firing order.) Alternatively to this last point, we could decide to disallow renaming of triggers on children (i.e. if trigger has tgparentid set, then renaming is disallowed). I don't have a problem with that, but it would have to be an explicit decision to take. I think you did not register the patch in commitfest, so I did that for you: https://commitfest.postgresql.org/32/2943/ Thanks! -- Álvaro Herrera Valdivia, Chile "¿Cómo puedes confiar en algo que pagas y que no ves, y no confiar en algo que te dan y te lo muestran?" (Germán Poo)
Commits
-
Remove newly added useless assertion check
- 21b3aa9c8faf 15.0 landed
-
Make ALTER TRIGGER RENAME consistent for partitioned tables
- 80ba4bb38353 15.0 landed
-
Fix pg_dump for disabled triggers on partitioned tables
- ccfc3cbb341a 11.13 cited
-
Preserve firing-on state when cloning row triggers to partitions
- fed35bd4a650 11.13 cited
-
Fix ALTER TABLE .. ENABLE/DISABLE TRIGGER recursion
- bbb927b4db9b 14.0 cited
-
Record parents of triggers
- b9b408c48724 13.0 cited
-
Allow FOR EACH ROW triggers on partitioned tables
- 86f575948c77 11.0 cited