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: Robert Haas <robertmhaas@gmail.com>
Cc: "Andrey V. Lepikhov" <a.lepikhov@postgrespro.ru>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-11-15T19:19:05Z
Lists: pgsql-hackers
Attachments
- 0001-Add-pg_depend-index-scan-tiebreaker-column.patch (text/x-patch) patch 0001
On Thu, Nov 15, 2018 at 10:52 AM Robert Haas <robertmhaas@gmail.com> wrote: > I think that the solution that you are proposing sorta sucks, but it's > better than hacking objsubid to do it, which did in fact pass the > laugh test, in that I laughed when I read it. :-) Probably a good idea to get another cup of coffee if I'm pre-apologizing for my ideas. > In a perfect world, it seems to me that what we ought to do is have > some real logic in the server that figures out which of the various > things we could report would be most likely to be useful to the user > ... but that's probably a non-trivial project involving a fair amount > of human judgement. Reasonable people may differ about what is best, > never mind unreasonable people. I am inclined to think that your > proposal here is good enough for now, and somebody who dislikes it > (surely such a person will exist) can decide to look for ways to make > it better. Great. Actually, the on-disk size of the pg_depend heap relation is *unchanged* in the attached WIP patch, since it fits in a hole previously lost to alignment. And, as I said, the indexes end up smaller with suffix truncation. Even if the only thing you care about is the on-disk size of system catalogs, you'll still pretty reliably come out ahead. The design here is squirrelly, but we're already relying on scan order to reach objsubid = 0 entries first. There is a single tiny behavioral change to the regression test output with this patch applied. I think that that's just because there is one place where this dependency management stuff interacts with pages full of duplicates, and therefore stops putting duplicates in pg_depend indexes in exactly DESC TID order. My other patches add a couple of more tiny changes along similar lines, since of course I'm only doing this with the pg_depend indexes, and not for every system catalog index. -- 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