Re: alter enum add value if not exists

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: Magnus Hagander <magnus@hagander.net>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2012-09-20T22:34:05Z
Lists: pgsql-hackers
Andrew Dunstan <andrew@dunslane.net> writes:
> On 08/23/2012 07:39 AM, Magnus Hagander wrote:
>> It doesn't break, of course ,since it's protected by the unique index.
>> But aren't you at risk of getting the very error message you're trying
>> to avoid?

> Yeah, looking further this was probably a thinko on my part. Thanks for 
> noticing. I've moved the test down so it's done right after the lock is 
> acquired. Revised patch attached.

This patch looks sane as far as it goes.  It strikes me though that if
we're going to invent an opt_if_not_exists production in the grammar,
there are a lot of other places where it should be used too, for
consistency if nothing else.

However, it would be reasonable to do that mop-up as a separate
commit.  If you prefer, commit what you've got and then I'll see
about the other thing.

			regards, tom lane