WIP: extensible enums

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: WIP: extensible enums
Date: 2010-08-23 09:35:09
Message-ID: 4C7240CD.8090306@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


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

Attachment Content-Type Size
venum.patch text/x-patch 95.7 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Marko Kreen 2010-08-23 10:21:05 Re: UTF16 surrogate pairs in UTF8 encoding
Previous Message Magnus Hagander 2010-08-23 08:55:06 Re: More vacuum stats