Solve the problem of OID collisions by probing for duplicate OIDs
Tom Lane <tgl@sss.pgh.pa.us>
Solve the problem of OID collisions by probing for duplicate OIDs whenever we generate a new OID. This prevents occasional duplicate-OID errors that can otherwise occur once the OID counter has wrapped around. Duplicate relfilenode values are also checked for when creating new physical files. Per my recent proposal.
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/ddl.sgml | modified | +11 −6 |
| src/backend/access/heap/heapam.c | modified | +2 −4 |
| src/backend/access/heap/tuptoaster.c | modified | +14 −7 |
| src/backend/access/transam/varsup.c | modified | +13 −50 |
| src/backend/catalog/catalog.c | modified | +170 −8 |
| src/backend/catalog/heap.c | modified | +68 −70 |
| src/backend/catalog/index.c | modified | +37 −19 |
| src/backend/catalog/pg_type.c | modified | +4 −12 |
| src/backend/commands/dbcommands.c | modified | +8 −4 |
| src/backend/commands/trigger.c | modified | +4 −3 |
| src/backend/commands/typecmds.c | modified | +1 −4 |
| src/backend/storage/large_object/inv_api.c | modified | +6 −6 |
| src/backend/utils/cache/relcache.c | modified | +53 −4 |
| src/bin/pg_dump/pg_backup_archiver.c | modified | +4 −4 |
| src/bin/pg_dump/pg_dump.c | modified | +1 −51 |
| src/include/access/transam.h | modified | +1 −2 |
| src/include/catalog/catalog.h | modified | +5 −2 |
| src/include/catalog/pg_type.h | modified | +1 −2 |
| src/include/utils/relcache.h | modified | +4 −2 |
| src/include/utils/rel.h | modified | +4 −3 |