Allow new values to be added to an existing enum type.
After much expenditure of effort, we've got this to the point where the
performance penalty is pretty minimal in typical cases.
Andrew Dunstan, reviewed by Brendan Jurd, Dean Rasheed, and Tom Lane
Branch
------
master
Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=84c123be1de8a9955741e20c9f945571e40c545e
Modified Files
--------------
contrib/pg_upgrade/function.c | 2 +-
contrib/pg_upgrade_support/pg_upgrade_support.c | 19 +-
doc/src/sgml/catalogs.sgml | 34 ++-
doc/src/sgml/ref/alter_type.sgml | 67 ++++-
src/backend/catalog/pg_enum.c | 402 +++++++++++++++++++++--
src/backend/commands/typecmds.c | 73 ++++-
src/backend/nodes/copyfuncs.c | 16 +
src/backend/nodes/equalfuncs.c | 14 +
src/backend/parser/gram.y | 41 +++-
src/backend/tcop/utility.c | 19 +
src/backend/utils/adt/enum.c | 259 ++++++++++-----
src/backend/utils/cache/typcache.c | 322 ++++++++++++++++++
src/bin/pg_dump/pg_dump.c | 33 ++-
src/bin/psql/describe.c | 14 +-
src/include/catalog/catversion.h | 2 +-
src/include/catalog/indexing.h | 2 +
src/include/catalog/pg_enum.h | 11 +-
src/include/commands/typecmds.h | 1 +
src/include/nodes/nodes.h | 1 +
src/include/nodes/parsenodes.h | 12 +
src/include/utils/typcache.h | 11 +
src/test/regress/expected/enum.out | 153 +++++++++-
src/test/regress/sql/enum.sql | 86 +++++
23 files changed, 1423 insertions(+), 171 deletions(-)