Re: ALTER TABLE ... IF EXISTS feature?

From: Daniel Farina <drfarina(at)acm(dot)org>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Noah Zoschke <noah(at)heroku(dot)com>
Subject: Re: ALTER TABLE ... IF EXISTS feature?
Date: 2010-11-25 01:33:13
Message-ID: AANLkTimv-=u8RQh_1_OXXQUdCS6CuE6eTsMU+-rOLe-r@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Nov 24, 2010 at 4:30 PM, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> Robert Haas wrote:
>> With respect to the syntax itself, I have mixed feelings.  On the one
>> hand, I'm a big fan of CREATE IF NOT EXISTS and DROP IF EXISTS
>> precisely because I believe they handle many common cases that people
>> want in real life without much hullabaloo.  But, there's clearly some
>> limit to what can reasonably be done this way.  At some point, what
>> you really want is some kind of meta-language where you can write
>> things like:
>>
>> IF EXISTS TABLE t1 THEN
>>    ALTER TABLE t1 DROP CONSTRAINT IF EXISTS t1_constr;
>> END IF;
>
> FYI, I have felt this way for a while.  IF EXISTS seemed like something
> that should never have been added as an inline SQL command option; it
> just crept in, and kept growing.

Okay, that being the case: would it make sense to have pg_dump emit DO
blocks? I have a feeling this might draw fire, but I don't see any
reason why the mechanism would not work to more or less equivalent
effect. Certainly making dumps harder to use for those who insist on
disabling PL/PGSQL is probably a negative side effect, if one can
identify this hypothetical class of person.

fdr

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Cédric Villemain 2010-11-25 01:59:04 Re: pgsql: Document that a CHECKPOINT before taking a file system snapshot
Previous Message Alvaro Herrera 2010-11-25 00:41:47 Re: duplicate connection failure messages