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
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 |