Erweitern eines Enum-Typs auf 9.0

Erweitern eines Enum-Typs auf 9.0

am 17.10.2011 16:06:42 von Markus Prinz

Hallo,

Ich muss einen existierenden Enum-Typ um einen Wert erweitern. Das Problem =
dabei ist dass der sichere Weg (neuen Enym-Typ erstellen, neue Column mit n=
euen Typ erstellen, alle alten Werte rüberkopieren, alte Column & Wert dr=
oppen) aufgrund der Table-Grösse leider viel zu lange dauert (mehrere Tag=
e).

Deshalb habe ich mir als alternative folgende Query überlegt:

INSERT INTO pg_enum (enumtypid, enumlabel) VALUES ('ENUM_TYPE'::regclass, =
'NEW_ENUM_VALUE');=20

Ich wurde bereits darauf hingewiesen, dass diese Methode nur dann funktioni=
eren kann, wenn kein OID wraparound stattgefunden hat (was nicht der Fall i=
st).

Noch etwas Hintergrund:

Die Reihenfolge der Werte im Enum ist vollkommen egal. Der Server läuft m=
it 9.0.4. Die Datenbank wird für dieses Update keine anderen verbundene C=
lients/Abfragen am laufen haben.

Kommentare/Hinweise?

g, Markus
--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein