Thread: A slightly misleading comment in GetNewObjectId()
Hi hackers, While contemplating plans to use new kinds of OIDs in buffer tags, I noticed $SUBJECT. It says: * Check for wraparound of the OID counter. We *must* not return 0 * (InvalidOid); and as long as we have to check that, it seems a good * idea to skip over everything below FirstNormalObjectId too. (This * basically just avoids lots of collisions with bootstrap-assigned OIDs * right after a wrap occurs, so as to avoid a possibly large number of * iterations in GetNewOid.) Note we are relying on unsigned comparison. That makes it sound like a mere optimisation, but since commit 8e18d04d4da user-created objects are not allowed to have OIDs below that threshold. So I propose the attached tweak. -- Thomas Munro http://www.enterprisedb.com
Attachment
Thomas Munro <thomas.munro@enterprisedb.com> writes: > That makes it sound like a mere optimisation, but since commit > 8e18d04d4da user-created objects are not allowed to have OIDs below > that threshold. So I propose the attached tweak. +1 regards, tom lane
On Thu, Aug 16, 2018 at 12:47 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Thomas Munro <thomas.munro@enterprisedb.com> writes: >> That makes it sound like a mere optimisation, but since commit >> 8e18d04d4da user-created objects are not allowed to have OIDs below >> that threshold. So I propose the attached tweak. > > +1 Looks good to me, too. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
On Thu, Aug 16, 2018 at 11:36:58AM -0400, Robert Haas wrote: > On Thu, Aug 16, 2018 at 12:47 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Thomas Munro <thomas.munro@enterprisedb.com> writes: > >> That makes it sound like a mere optimisation, but since commit > >> 8e18d04d4da user-created objects are not allowed to have OIDs below > >> that threshold. So I propose the attached tweak. > > > > +1 > > Looks good to me, too. +1 and thanks for pointing to the commit which makes this a reality. -- Shawn Debnath