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: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-12-18T22:02:37Z
Lists: pgsql-hackers
On Tue, Dec 18, 2018 at 1:20 PM Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > > On 2018-Dec-18, Peter Geoghegan wrote: > Hmm, interesting. I wonder if this is just a case of never testing this > code under "postgres --ignore-system-indexes". I suppose that you could say that. The regression tests will fail at many points with --ignore-system-indexes, almost all of which are due to well understood issues. For example, you'll get load of WARNINGs about needing to use a system index despite the server being run under --ignore-system-indexes. > I can reproduce the > reported problem without your patch by using that flag. Here's a > recipe: > > create extension cube; > create table dep as select ctid as tid,* from pg_depend; > create extension earthdistance; > select tid, deptype, (dep).type, (dep).identity, (ref).type, (ref).identity > from (select tid, deptype, pg_identify_object(classid, objid, objsubid) as dep, > pg_identify_object(refclassid, refobjid, refobjsubid) as ref > from (select ctid as tid, * from pg_depend except select * from dep) a > ) b; Interesting. Note that if the standard that we're going to hold a solution to here is "must produce sane output with --ignore-system-indexes", then my solution will not meet that standard. However, I fear that it's going to be really hard to accomplish that goal some other way (besides which, as I said, the tests will still fail with --ignore-system-indexes for reasons that have nothing to do with dependency management). -- Peter Geoghegan
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