Michael Fuhr wrote: > FAQ 4.15 "What is an OID? What is a TID?" is misleading about the > uniqueness of OIDs. It does mention the possibility of overflow > (while mentioning that nobody has ever reported it), but it doesn't > discourage their use as primary keys like the documentation does > in, for example, the following sections: > > http://www.postgresql.org/docs/8.0/static/datatype-oid.html > http://www.postgresql.org/docs/8.0/static/ddl-system-columns.html
Wow, that one really needed updating! Here is the new text: --------------------------------------------------------------------------- 4.15) What is an OID? What is a TID? Every row that is created in PostgreSQL gets a unique OID unless created WITHOUT OIDS. OIDs are autotomatically assigned unique 4-byte integers that are unique across the entire installation. However, they overflow at 4 billion, and then the OIDs start being duplicated. PostgreSQL uses OIDs to link its internal system tables together. To uniquely number columns in user tables, it is best to use SERIAL rather than OIDs because SERIAL sequences are unique only within a single table. and are therefore less likely to overflow. SERIAL8 is available for storing eight-byte sequence values. TIDs are used to identify specific physical rows with block and offset values. TIDs change after rows are modified or reloaded. They are used by index entries to point to physical rows. -- Bruce Momjian | http://candle.pha.pa.us [email protected] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly
