Re: Add column if not exists (CINE) - Mailing list pgsql-hackers

From Robert Haas
Subject Re: Add column if not exists (CINE)
Date
Msg-id t2n603c8f071004271718r6d00814waa5277d59976623e@mail.gmail.com
Whole thread Raw
In response to Add column if not exists (CINE)  (Kjell Rune Skaaraas <kjella79@yahoo.no>)
Responses Re: Add column if not exists (CINE)  ("Ross J. Reedstrom" <reedstrm@rice.edu>)
List pgsql-hackers
On Tue, Apr 27, 2010 at 6:45 PM, Kjell Rune Skaaraas <kjella79@yahoo.no> wrote:
> Hello,
>
> I've been reading the earlier threads at:
> http://archives.postgresql.org/pgsql-hackers/2009-05/thrd7.php#00252
> http://archives.postgresql.org/pgsql-hackers/2005-10/thrd4.php#00632
> and I'm not sure I have anything that substantially new to add but:
>
> 1. I can't see there's an unambiguity about what the syntax would do. It is IF NOT EXISTS, not IF NOT LIKE. Anyone
whoshoots themselves in the foot by calling a CINE and thinking that a preexisting differently defined column is
magicallyconverted deserves it. Either it should act exactly like the non-CINE command, or do nothing at all as if the
statementwasn't there. 
>
> 2. The use case is pretty clear to me - flexible scripts that'll bring all earlier database versions to the latest
schema.I've been experimenting in 9.0 alpha with calling DROP CONSTRAINT IF EXISTS then ADD CONSTRAINT with named
constantsfor a CINE effect. which as a side effect will correct any updated constraints too - and it works great.
UnfortunatelyDROP COLUMN IF EXISTS then ADD COLUMN has the side effect of deleting all the data, so that's hardly
usable.
>
> I saw some indications that this might be a minority opinion, well I would like to cast a vote FOR this
functionality.The workarounds are ugly, the solution simple and while I agree it's possible to misuse it, my opinion is
thatyou shouldn't become a surgeon if you can't handle a scalpel. In this case I get the feeling I'm reading
instructionson how to do surgery with a butter knife because we don't dare hand out anything sharper. 

I've already said my piece on this, but I couldn't agree more.  Well
said, and your use case is exactly the one I want it for.

...Robert


pgsql-hackers by date:

Previous
From: "Jehan-Guillaume (ioguix) de Rorthais"
Date:
Subject: providing tokenized version of parsed SQL script (was: nodeToString format and exporting the SQL parser)
Next
From: Robert Haas
Date:
Subject: Re: providing tokenized version of parsed SQL script (was: nodeToString format and exporting the SQL parser)