Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Amit Langote <amitlangote09@gmail.com>, Peter Geoghegan <pg@bowt.ie>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-02-09T16:10:38Z
Lists: pgsql-hackers
Alvaro Herrera <alvherre@2ndquadrant.com> writes: > On 2019-Feb-09, Tom Lane wrote: >> No, that's still the back end of the deletion machinery, and in particular >> it would fail to clean pg_depend entries for the trigger. Going in by the >> front door would use performDeletion(). (See deleteOneObject() to get >> an idea of what's being possibly missed out here.) > This patch I think does the right thing. (squint ...) Don't much like the undocumented deleteDependencyRecordsFor call; that looks like it's redundant with what deleteOneObject will do. I think you're doing it to get rid of the INTERNAL dependency so that deletion won't recurse across that, but why is that a good idea? Needs a comment at least. Also, I suspect you might need a second CCI after the performDeletion call, in case the loop iterates? regards, tom lane
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