Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages)
Amit Langote <amitlangote09@gmail.com>
From: Amit Langote <amitlangote09@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, Peter Geoghegan <pg@bowt.ie>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-02-09T07:14:41Z
Lists: pgsql-hackers
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
Commits
-
Redesign the partition dependency mechanism.
- 1d92a0c9f7dd 12.0 landed
-
Fix trigger drop procedure
- cc126b45ea5c 11.2 landed
- cb90de1aac18 12.0 landed
-
Sort the dependent objects before recursing in findDependentObjects().
- f1ad067fc3ae 12.0 landed
-
Avoid sometimes printing both tables and their columns in DROP CASCADE.
- 9194c4270b28 12.0 landed