Thread: pgsql: Solve the problem of OID collisions by probing for duplicate OIDs

pgsql: Solve the problem of OID collisions by probing for duplicate OIDs

From
tgl@svr1.postgresql.org (Tom Lane)
Date:
Log Message:
-----------
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.

Modified Files:
--------------
    pgsql/doc/src/sgml:
        ddl.sgml (r1.42 -> r1.43)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ddl.sgml.diff?r1=1.42&r2=1.43)
    pgsql/src/backend/access/heap:
        heapam.c (r1.196 -> r1.197)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/heapam.c.diff?r1=1.196&r2=1.197)
        tuptoaster.c (r1.51 -> r1.52)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/tuptoaster.c.diff?r1=1.51&r2=1.52)
    pgsql/src/backend/access/transam:
        varsup.c (r1.64 -> r1.65)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/varsup.c.diff?r1=1.64&r2=1.65)
    pgsql/src/backend/catalog:
        catalog.c (r1.62 -> r1.63)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/catalog.c.diff?r1=1.62&r2=1.63)
        heap.c (r1.288 -> r1.289)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/heap.c.diff?r1=1.288&r2=1.289)
        index.c (r1.258 -> r1.259)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/index.c.diff?r1=1.258&r2=1.259)
        pg_type.c (r1.102 -> r1.103)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_type.c.diff?r1=1.102&r2=1.103)
    pgsql/src/backend/commands:
        dbcommands.c (r1.169 -> r1.170)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/dbcommands.c.diff?r1=1.169&r2=1.170)
        trigger.c (r1.190 -> r1.191)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/trigger.c.diff?r1=1.190&r2=1.191)
        typecmds.c (r1.78 -> r1.79)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/typecmds.c.diff?r1=1.78&r2=1.79)
    pgsql/src/backend/storage/large_object:
        inv_api.c (r1.111 -> r1.112)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/large_object/inv_api.c.diff?r1=1.111&r2=1.112)
    pgsql/src/backend/utils/cache:
        relcache.c (r1.226 -> r1.227)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/relcache.c.diff?r1=1.226&r2=1.227)
    pgsql/src/bin/pg_dump:
        pg_backup_archiver.c (r1.111 -> r1.112)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/bin/pg_dump/pg_backup_archiver.c.diff?r1=1.111&r2=1.112)
        pg_dump.c (r1.415 -> r1.416)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/bin/pg_dump/pg_dump.c.diff?r1=1.415&r2=1.416)
    pgsql/src/include/access:
        transam.h (r1.54 -> r1.55)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/transam.h.diff?r1=1.54&r2=1.55)
    pgsql/src/include/catalog:
        catalog.h (r1.32 -> r1.33)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catalog.h.diff?r1=1.32&r2=1.33)
        pg_type.h (r1.164 -> r1.165)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_type.h.diff?r1=1.164&r2=1.165)
    pgsql/src/include/utils:
        rel.h (r1.84 -> r1.85)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/rel.h.diff?r1=1.84&r2=1.85)
        relcache.h (r1.50 -> r1.51)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/relcache.h.diff?r1=1.50&r2=1.51)