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

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Peter Geoghegan <pg(at)bowt(dot)ie>
Cc: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Fixing findDependentObjects()'s dependency on scan order (regressions in DROP diagnostic messages)
Date: 2019-01-19 00:24:18
Message-ID: 16266.1547857458@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Peter Geoghegan <pg(at)bowt(dot)ie> writes:
> On Fri, Jan 18, 2019 at 3:34 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2019-01-19 00:57:03 Re: Protect syscache from bloating with negative cache entries
Previous Message Michael Paquier 2019-01-19 00:08:27 Re: pgsql: Restrict the use of temporary namespace in two-phase transaction