Re: WIP: fix SET WITHOUT OIDS, add SET WITH OIDS

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Marko Kreen <markokr(at)gmail(dot)com>
Cc: Andrew Dunstan <andrew(at)dunslane(dot)net>, David Fetter <david(at)fetter(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: WIP: fix SET WITHOUT OIDS, add SET WITH OIDS
Date: 2009-02-09 16:32:51
Message-ID: 603c8f070902090832p100203fbodff7b07a673c8465@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

>> Why? What benefit do we get out of denying users this option?
>
> Why should we continue to support historical special case? It is not
> a feature that adds anything to user experience with Postgres.
>
> Anyway, that was my vote only. If there are developers interested
> in supporting oids feel free to do so.
>
> But now that I learned that ALTER TABLE WITHOUT OIDS either causes bugs
> or requires table rewrite, it turned from minor annoyance to big annoyance.
> So I'd like have a reasonable path for getting rid of them, which we don't
> have currently. Removing them completely is simplest path, but adding
> extra features to support it is another.

Well, see Tom's point upthread: OIDs are extensively used for system
tables, and are not going away. So this is a pipe dream. In the
meantime, ALTER TABLE WITHOUT OIDS is (at least for some people) an
easier migration path than dump+reload.

>> That might be true in your environment, but is certainly not true in
>> general. We have many DDL commands that require full-table rewrites, and
>> they are FAR from useless.
>
> Compared to not having the DDL commands or having DDL commands that
> do not rewrite the tables? ;)

Not having them, of course.

If we remove ALTER TABLE WITHOUT OIDS, it's going to encourage people
to do stuff like this:

CREATE TABLE blah_without_oids AS SELECT * FROM blah;
ALTER TABLE blah ...
ALTER TABLE blah ...
-- move foreign keys, constraints, etc.
DROP TABLE blah;
ALTER TABLE blah_without_oids RENAME TO blah;

...or else dump+reload. ISTM that if anything that's going to
encourage people to keep the OIDs in there because it's too much work
to get rid of them.

...Robert

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Marko Kreen 2009-02-09 16:36:00 Re: WIP: fix SET WITHOUT OIDS, add SET WITH OIDS
Previous Message Tom Lane 2009-02-09 16:32:23 Re: WIP: fix SET WITHOUT OIDS, add SET WITH OIDS