Re: Altering existing table to be WITHOUT OIDs

From: Doug Fields <dfields(at)pexicom(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Doug Fields <dfields-pg-general(at)pexicom(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Altering existing table to be WITHOUT OIDs
Date: 2002-05-25 20:17:30
Message-ID: 5.1.0.14.2.20020525161613.02c4f8c8@mail.pexicom.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

For the benefit for anyone who may search this list in the future for this
information, I used the following queries to implement Tom's suggestion on
the table "list_entries" in this example:

UPDATE pg_class SET relhasoids=false WHERE relname='list_entries';
DELETE FROM pg_attribute
WHERE attrelid = (SELECT oid FROM pg_class WHERE relname =
'list_entries')
AND attname='oid';

You might want to also include the reltype in the sub-SELECT if you re-use
names willy-nilly.

Cheers,

Doug

At 04:06 PM 5/24/2002, Tom Lane wrote:
>Doug Fields <dfields-pg-general(at)pexicom(dot)com> writes:
> > The documentation does not give any information about how I might do this
> > in the ALTER TABLE, so it may not be possible, at least, not that way.
>
>ALTER TABLE doesn't support it, but you could reach in and tweak
>pg_class.relhasoids for your tables. I think you would also need to
>delete the pg_attribute row for oid for each such table if you wanted
>to have a perfectly clean result.
>
> regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Doug Fields 2002-05-25 20:39:24 Re: Altering existing table to be WITHOUT OIDs
Previous Message Francisco Reyes 2002-05-25 20:08:42 Moving data from FreeBSD to Red Hat