> > ilm...@ilmari.org (Dagfinn Ilmari Mannsåker) writes: > > > > > I was bored and thought "how hard could it be?", and a few hours' > > hacking later, I have something that seems to work. It doesn't do IF > > NOT EXISTS yet, and the error messaging could do with some improvement, > > and there are no docs. The patch is attached, as well as at > > https://github.com/ilmari/postgres/commit/enum-alter-value > > I've added it to the 2016-09 commitfest as well: > https://commitfest.postgresql.org/10/588/
Nice! Thank you! Actually you still miss a "DROP VALUE" action. Also please make sure this also works when altering an existing enum within a new transaction - otherwise it does not really make sense (Usually someone wants to alter existing enums, not ones that have just been created). As a result a script like this should pass without problems: -- ### script start CREATE TYPE bogus AS ENUM('dog'); -- TEST 1: BEGIN; ALTER TYPE bogus ADD VALUE 'cat'; -- fails in 9.5 because of the transaction but should work in future COMMIT; -- TEST 2: BEGIN; ALTER TYPE bogus RENAME TO bogon; ALTER TYPE bogon ADD VALUE 'horse'; -- fails in 9.5 because of the transaction but should work in future COMMIT; -- TEST 3: BEGIN; ALTER TYPE bogon ALTER VALUE 'dog' TO 'pig'; -- not implemented in 9.5 but should work in future ROLLBACK; -- TEST 4: BEGIN; ALTER TYPE bogon DROP VALUE 'cat'; -- not implemented in 9.5 but should work in future ROLLBACK; -- ### script end End result of enum "bogon" (which was named "bogus" at the beginning of the script): -- ### pig horse -- ### Thank you!