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 who
shootsthemselves in the foot by calling a CINE and thinking that a preexisting differently defined column is magically
converteddeserves it. Either it should act exactly like the non-CINE command, or do nothing at all as if the statement
wasn'tthere.
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.
Theworkarounds are ugly, the solution simple and while I agree it's possible to misuse it, my opinion is that you
shouldn'tbecome a surgeon if you can't handle a scalpel. In this case I get the feeling I'm reading instructions on how
todo surgery with a butter knife because we don't dare hand out anything sharper.
Regards,
Kjell Rune Skaaraas