From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
Cc: | John Naylor <john(dot)naylor(at)2ndquadrant(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, Justin Pryzby <pryzby(at)telsasoft(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: assert pg_class.relnatts is consistent |
Date: | 2020-02-14 19:00:56 |
Message-ID: | 618.1581706856@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> writes:
> On 2020-Feb-14, John Naylor wrote:
>> One possible objection to what I wrote above is that it adds a
>> different kind of special case, but in a sneaky way. Perhaps it would
>> be more principled to treat it the same as oid after all. If we do
>> that, it would help to add a comment that we can't treat relnatts like
>> pronangs, since we need more information than what's in each pg_class
>> row.
> How about something like this? (untested)
I think John's idea of setting a dummy BKI_DEFAULT value is better,
as that means the only code that has to worry about this directly
is the code that's actually filling in relnatts. As far as said
code goes, we don't need an additional global variable when we can
just look in the $catalogs data structure; and I'm not a fan of
cramming this into the OID-assignment logic just to save a loop.
So that leads me to the attached.
(I agree with Alvaro's thought of shortening AddDefaultValues,
but didn't do that here.)
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
v3-0001-no-manual-relnatts-assignment.patch | text/x-diff | 8.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Dave Cramer | 2020-02-14 19:08:20 | Re: Error on failed COMMIT |
Previous Message | Robert Haas | 2020-02-14 18:34:03 | Re: [HACKERS] Moving relation extension locks out of heavyweight lock manager |