Python-Trigger

Hallo, ich möchte einen Trigger für Postgresql 8.1.3 schreiben.
Was mache ich in folgendem Codefragment falsch? (Sollte denn nicht bei einem INSERT das neue Tupel ausgegeben werden? - bei mir wird ein leeres Array ausgegeben)



CREATE FUNCTION bla() returns trigger as
'
   plpy.warning(TD["new"])
' language pythonu;

CREATE TRIGGER trig_name BEFORE INSERT ON relation_x FOR EACH STATEMENT EXECUTE PROCEDURE bla();

INSERT INTO relation_x values(daten...);

Hallo blasehase,

das ganze kann erst schon mal nicht funktionieren, da es die “language pythonu” nicht gibt. Versuch es mal mit “language plpythonu”.

Und dann solltest Du dich an den Syntax von ‘plpy.warning(“meldung”)’ halten. Mit TD[“new”] übergibst Du die Zeile einer Tabelle!



mfg

fristo

hallo fristo,

ist klar daß es so nicht funktioniert. der code war auf meinem 2. rechner und ich hatte keine lust das nfs extra zu mounten und rüber zu kopieren - also hab ichs abgetippt.
bei mir geht es aber auch nicht, wenn es syntaktisch fehlerfrei ist.

natürlich kann ich den inhalt einer tabelle als warnung ausgeben lassen, weil python-standardstrukturen wie listen und tupel einfach in einen String umgewandelt werden können. genau das brauche ich ja, um dieses problem zu eliminieren… :frowning:


MFG Tobi