Re: Add column if not exists (CINE)

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Takahiro Itagaki <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp>, Kjell Rune Skaaraas <kjella79(at)yahoo(dot)no>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Add column if not exists (CINE)
Date: 2010-04-28 18:38:42
Message-ID: 4BD880B2.1080209@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Robert Haas wrote:
> On Wed, Apr 28, 2010 at 12:07 PM, Heikki Linnakangas
> <heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
>> Robert Haas wrote:
>>> On Wed, Apr 28, 2010 at 11:20 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>>>> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>>>>> I don't believe you are fairly stating the consensus from previous
>>>>> discussion and I believe that you are actually in the minority on this
>>>>> one. I agree that we probably don't need to support this for object
>>>>> types for which CREATE OR REPLACE is available or can be made
>>>>> available, but that isn't feasible for all object types - tables and
>>>>> columns being the obvious examples.
>>>> What's obvious about it? In particular, I should think that ADD OR
>>>> REPLACE COLUMN would usefully be defined as "ADD if no such column,
>>>> else ALTER COLUMN as necessary to match this spec". Dropping the
>>>> ALTER part of that has no benefit except to lazy implementors; it
>>>> certainly is not more useful to users if they can't be sure of the
>>>> column properties after issuing the command.
>>> Actually, that's a good idea. But how will you handle tables?
>> What do you mean?
>
> Well, how would you define CREATE OR REPLACE TABLE?

It the table doesn't exist, create it. If it exists with the same name
and same columns and constraints and all, do nothing. Otherwise throw an
error.

Maybe it should also check that the existing table is empty.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Grittner 2010-04-28 18:39:28 Re: explicit (void *) casts
Previous Message Tom Lane 2010-04-28 18:34:48 Re: explicit (void *) casts