On 2018-Dec-18, Peter Geoghegan wrote: > Well, you also have cases like this: > > --- a/contrib/earthdistance/expected/earthdistance.out > +++ b/contrib/earthdistance/expected/earthdistance.out > @@ -972,7 +972,7 @@ SELECT abs(cube_distance(ll_to_earth(-30,-90), > '(0)'::cube) / earth() - 1) < > > drop extension cube; -- fail, earthdistance requires it > ERROR: cannot drop extension cube because other objects depend on it > -DETAIL: extension earthdistance depends on extension cube > +DETAIL: extension earthdistance depends on function cube_out(cube) > > This is a further example of "wrong, not just annoying". Technically > this is a broader problem than DEPENDENCY_INTERNAL_AUTO, I think, > though perhaps not too much broader.
Hmm, interesting. I wonder if this is just a case of never testing this code under "postgres --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; -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services