Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages) - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages)
Date
Msg-id 16266.1547857458@sss.pgh.pa.us
Whole thread Raw
In response to Re: Fixing findDependentObjects()'s dependency on scan order(regressions in DROP diagnostic messages)  (Peter Geoghegan <pg@bowt.ie>)
Responses Re: Fixing findDependentObjects()'s dependency on scan order(regressions in DROP diagnostic messages)  (Peter Geoghegan <pg@bowt.ie>)
List pgsql-hackers
Peter Geoghegan <pg@bowt.ie> writes:
> On Fri, Jan 18, 2019 at 3:34 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Attached is a draft patch to sort objects before the recursion step
>> in findDependentObjects.  I found that sorting by descending OID is
>> really the right thing; if we sort by increasing OID then we get a
>> whole lot more diffs in the DROP CASCADE output.  As shown, there
>> are just a few such diffs, and many of them seem to be for the better
>> anyway.

> This reminds me of the output that I saw back when my patch used DESC
> heap TID order. I agree that those regression test changes are
> improvements. I think that they're caused by the existing nbtree
> code's preference for storing duplicates on the first leaf page it
> could go on that is found to be empty.

Yeah, I figured the explanation for the weirder changes was somewhere
around there.  Like you, I haven't bothered to verify it.

>> * There is still instability in which object you get told to drop
>> when attempting to drop an index partition or trigger, as a consequence
>> of there being two possible DEPENDENCY_INTERNAL_AUTO targets.  I still
>> feel that the right fix there involves changing the design for what
>> dependency types we store, but I've not worked on it yet.

> I thought that your ALTER OBJECT DEPENDS ON EXTENSION example made the
> case for fixing that directly inarguable. I'm slightly surprised that
> you're not fully convinced of this already. Have I missed some
> subtlety?

It's clear that we must change *something* in that area.  I'm not yet
wedded to a particular fix, just expressing a guess as to what might
be the cleanest fix.

Also, we evidently need something we can back-patch into v11, which might
end up being very far from clean :-(.  I have no opinions yet on what
would make sense in that branch.

            regards, tom lane


pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: pgsql: Restrict the use of temporary namespace in two-phasetransaction
Next
From: Robert Haas
Date:
Subject: Re: Protect syscache from bloating with negative cache entries