Erweitern eines Enum-Typs auf 9.0

From: Markus Prinz <markus(dot)prinz(at)nuclearsquid(dot)com>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Erweitern eines Enum-Typs auf 9.0
Date: 2011-10-17 14:06:42
Message-ID: 31D214CD-1C90-4E80-B54F-36508749A1B9@nuclearsquid.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

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 neuen Typ erstellen, alle alten Werte rüberkopieren, alte Column & Wert droppen) aufgrund der Table-Grösse leider viel zu lange dauert (mehrere Tage).

Deshalb habe ich mir als alternative folgende Query überlegt:

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

Ich wurde bereits darauf hingewiesen, dass diese Methode nur dann funktionieren kann, wenn kein OID wraparound stattgefunden hat (was nicht der Fall ist).

Noch etwas Hintergrund:

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

Kommentare/Hinweise?

g, Markus

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas Tille 2011-10-18 06:23:48 Re: Postgres segfaults
Previous Message Wolfram Wahlich 2011-10-13 13:04:37 Re: Eingabe via Html- Formular