Re: Alter or rename enum value

Gavin Flower <gavinflower@archidevsys.co.nz>

From: Gavin Flower <GavinFlower@archidevsys.co.nz>
To: Jim Nasby <Jim.Nasby@BlueTreble.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Matthias Kurz <m.kurz@irregular.at>, pgsql-hackers@postgresql.org
Date: 2016-03-25T19:22:33Z
Lists: pgsql-hackers
On 26/03/16 08:17, Jim Nasby wrote:
> On 3/24/16 10:27 PM, Tom Lane wrote:
>> It's conceivable that we could do something like adding an "isdead"
>> column to pg_enum and making enum_in reject new values that're marked
>> isdead.  But I can't see that we'd ever be able to support true
>> removal of an enum value at reasonable cost.  And I'm not really sure
>> where the use-case argument is for working hard on it.
>
> I wonder if we could handle this by allowing foreign keys on enum 
> columns back to pg_enum. Presumably that means we'd have to treat 
> pg_enum as a regular table and not a catalog table. Due to locking 
> concerns I don't think we'd want to put the FKs in place by default 
> either.
>
> I've certainly heard people avoiding ENUMs because of their 
> limitations, so it'd be nice if there was a way to lift them.
Well, I use Enums extensively in Java.

However, I totally avoid using ENUMs in pg, due to their inflexibility!


Cheers,
Gavin


Commits

  1. Relax transactional restrictions on ALTER TYPE ... ADD VALUE (redux).

  2. Partially restore comments discussing enum renumbering hazards.

  3. Allow adding values to an enum type created in the current transaction.