From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Replacing pg_depend PIN entries with a fixed range check |
Date: | 2021-04-15 23:59:24 |
Message-ID: | 3965335.1618531164@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Andres Freund <andres(at)anarazel(dot)de> writes:
> Hm, maybe we ought to swap template0 and template1 instead? I.e. have
> template0 be in pg_database.dat and thus get a pinned oid, and then
> create template1, postgres etc from that?
No, *neither* of them are pinned, and we don't want them to be.
It's something of a historical artifact that template1 has a low OID.
>> + /*
>> + * Large objects are never pinned. We need this special case because
>> + * their OIDs can be user-assigned.
>> + */
>> + if (classId == LargeObjectRelationId)
>> + return false;
> Huh, shouldn't we reject that when creating them?
We've got regression tests that create blobs with small OIDs :-(.
We could change those tests of course, but they're pretty ancient
and I'm hesitant to move those goal posts.
> I guess you didn't because of dump/restore concerns?
That too.
In short, I'm really skeptical of changing any of these pin-or-not
decisions to save one or two comparisons in IsPinnedObject. That
function is already orders of magnitude faster than what it replaces;
we don't need to sweat over making it faster yet.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2021-04-15 23:59:54 | Re: pg_stat_bgwriter.buffers_backend is pretty meaningless (and more?) |
Previous Message | Andres Freund | 2021-04-15 23:48:12 | Re: Replacing pg_depend PIN entries with a fixed range check |