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
da...@pgmasters.net