Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages)

Peter Geoghegan <pg@bowt.ie>

From: Peter Geoghegan <pg@bowt.ie>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-02-05T22:50:34Z
Lists: pgsql-hackers
On Tue, Feb 5, 2019 at 2:08 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I've got much of the code for it already (in the wreckage of my failed
> attempts), so I'll go back and finish that up.  I was just waiting to see
> how loudly people would howl about using object type as a condition for
> figuring out what a pg_depend entry really means.  If we're okay with
> that hack, I think I can make it work.

Perhaps I've missed some subtlety, but I'm not sure that it's all that
ugly. If splitting INTERNAL_AUTO into two new dependency types amounts
to the same thing as what you suggest here, then what's the
difference? If this secondary INTERNAL_AUTO entry property can be
determined from the pg_depend record alone with either approach, then
it's not obvious to me that an "explicit representation" buys us
anything. Yes, you must introduce a special case...but isn't it a
special case either way?

-- 
Peter Geoghegan


Commits

  1. Redesign the partition dependency mechanism.

  2. Fix trigger drop procedure

  3. Sort the dependent objects before recursing in findDependentObjects().

  4. Avoid sometimes printing both tables and their columns in DROP CASCADE.