Proposal: OID wraparound: summary and proposal

From: Zeugswetter Andreas SB <ZeugswetterA(at)wien(dot)spardat(dot)at>
To: "'Tom Lane'" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Proposal: OID wraparound: summary and proposal
Date: 2001-08-03 08:17:11
Message-ID: 11C1E6749A55D411A9670001FA6879633683C1@sdexcsrv1.f000.d0188.sd.spardat.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


> > At the same time that we announce support for optional OIDs,
> > we should announce that, in future releases, OIDs will only be
> > guaranteed unique (modulo wraparounds) within a single table.

... if an appropriate unique constraint is explicitly created.

>
> Seems reasonable --- that will give people notice that we're thinking
> about separate-OID-generator-per-table ideas.

Imho we should think about adding other parts to the external representation
of OID before we start thinking about moving from 4 to 8 bytes in the heap.
Essentially the oid would then be a concatenated e.g. 16 byte number,
that is constructed with:

oid128 = installation oid<<96 + class oid<<64 + for_future_use<<32 + tuple oid

Imho walking that direction would serve the "OID" idea a lot better,
and could actually guarantee a globally unique oid, if the "installation
oid" was centrally managed.

It has the additional advantage of knowing the class by only looking at the oid.

The btree code could be specially tuned to only consider the lower 4(or 8) bytes
on insert and make an early exit for select where oid = wrong class id.

Andreas

Browse pgsql-hackers by date

  From Date Subject
Next Message mlw 2001-08-03 11:42:40 Re: Name for new VACUUM
Previous Message Colin 't Hart 2001-08-03 08:07:01 Oracle documentation