Verhalten des Servers während der Änderung einer Trigger-Funktion

Hallo zusammen,

Ich erstelle bzw. modifiziere per Programm täglich die Tabellepartitionierung und die entsprechenden Trigger-Funktionen. Letztere werden per “CREATE OR REPLACE” geändert. Ist das Verhalten des Servers während der Änderung einer existierenden Trigger-Funktion definiert? Gibt es eine Phase des “Freiflugs”, in der zu Inserts weder die neue noch die alte Funktion ausgeführt wird? Können für Prozesse, die während der Änderung der Funktion Inserts ausführen, wegen des laufenden Umbaus Fehler gemeldet werden?

DDL-Befehle unterliegen in PG genauso dem MVCC-Prinzip wie DML-Befehle. Mit anderen Worten: eine laufende Session sieht die Trigger-Funktion so, wie sie zu Begin der Transaktion war. Eine Änderung der Funktion während der Transaktion ist in der Session nicht sichtbar. Du brauchst also exakt keine Angst zu haben. Ist ja schließlich nicht MySQL oder ORACLE …

Andreas

Allerdings benötigt das Ändern der Tabelle sowieso einen Exklusiven Lock. Von daher stellt sich dieses Problem wahrscheinlich gar nicht.