В PostgreSQL 9.1 значительно расширилась функциональность для работы с пользовательскими типами — появилась возможность добавлять, удалять и изменять атрибуты, а также добавлять значения в ENUM типы.

До этой же версии, например в PostgreSQL 8.2, для добавления нового значение к ENUM требовалось совершить гораздо больше действий:

ALTER TYPE "foo_type" RENAME TO "_old_foo_type";
CREATE TYPE "foo_type" AS ENUM ('old_one', 'new_one');
ALTER TABLE "bar" ALTER COLUMN "foo" SET DEFAULT NULL;
ALTER TABLE "bar" ALTER COLUMN "foo" TYPE "foo_type" USING "foo"::TEXT::"foo_type";
ALTER TABLE "bar" ALTER COLUMN "foo" SET DEFAULT 'new_one'::foo_type;
DROP TYPE "_old_foo_type";