On 23 August 2010 10:35, Andrew Dunstan <andrew@dunslane.net> wrote:
>
> Attached is a WIP patch that allows enums to be extended with additional
> labels arbitrarily. As previously discussed, it works by adding an explicit
> sort order column to pg_enum. It keeps track of whether the labels are
> correctly sorted by oid value, and if so uses that for comparison, so the
> possible performance impact on existing uses, and on almost all cases where
> a label is added at the end of the list, should be negligible.
>
> Open items include
>
> * some additional error checking required
> * missing documentation
> * pg_upgrade considerations
>
>
> To add a label at the end of the list, do:
>
> ALTER TYPE myenum ADD 'newlabel';
>
> To add a label somewhere else, do:
>
> ALTER TYPE myenum ADD 'newlabel' BEFORE 'existinglabel';
>
> or
>
> ALTER TYPE myenum ADD 'newlabel' AFTER 'existinglabel';
>
>
> I'm not wedded to the syntax. Let the bikeshedding begin.
>
> cheers
>
> andrew
When you write the supporting doc changes, you might want to add a
note in to mention that you cannot remove a label once it has been
added.
Will the modified enums remain intact after a dump/restore?
--
Thom Brown
Registered Linux user: #516935