On Sat, Feb 9, 2019 at 9:41 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> > On 2019-Feb-08, Tom Lane wrote:
> >> Also, I came across some coding in CloneFkReferencing() that looks fishy
> >> as hell: that function imagines that it can delete an existing trigger
> >> with nothing more than a summary CatalogTupleDelete(). I didn't do
> >> anything about that here, but if it's not broken, I'd like to see an
> >> explanation why not. I added a comment complaining about the lack of
> >> pg_depend cleanup, and there's also the question of whether we don't
> >> need to broadcast a relcache inval for the trigger's table.
>
> > Oops, this is new code in 0464fdf07f69 (Jan 21st). Unless you object,
> > I'll study a fix for this now, to avoid letting it appear in the minor
> > next week.
>
> +1. The best solution would presumably be to go through the normal
> object deletion mechanism; though possibly there's a reason that
> won't work given you're already inside some other DDL.
Maybe:
- CatalogTupleDelete(trigrel, &trigtup->t_self);
+ RemoveTriggerById(trgform->oid)?
Thanks,
Amit