Re: Rename of triggers for partitioned tables
David Steele <david@pgmasters.net>
From: David Steele <david@pgmasters.net>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>, Arne Roland <A.Roland@index.de>
Cc: Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-03-18T15:50:37Z
Lists: pgsql-hackers
On 1/15/21 5:26 PM, Alvaro Herrera wrote: > 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. Arne, thoughts on Álvaro's comments? Marking this patch as Waiting for Author. Regards, -- -David david@pgmasters.net
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