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)