Re: extensible enum types
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Robert Haas <robertmhaas@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-06-18T16:34:35Z
Lists: pgsql-hackers
Robert Haas wrote: > On Fri, Jun 18, 2010 at 11:50 AM, Andrew Dunstan <andrew@dunslane.net> wrote: > >> Then set the >> first value at 8 * p, then next at 9* p and so on. This is designed to >> allow more space to add labels at the beginning and end of the list, where >> this is more likely. Adding a label would be a matter of finding the labels >> adjacent to the position where we want to add the new label, and placing it >> half way between them, possibly with special rules for the list ends. If we >> want to add the label between two labels having values n and n+1 the >> addition would fail. >> > > I like the idea of being able to modify enums on the fly, but I'm > skeptical of an implementation that won't always work. Maybe it's > still better than what we have now, but it seems grotty. > > I'd be perfectly happy to hear a reasonable alternative. Assuming we use some integer representation, given two labels represented by n and n+1, we can't add a label between them without rewriting the tables that use the type, whether it's my representation scheme or some other. Maybe we could have a FORCE option which would rewrite if necessary. cheers andrew