PL/Python auf Postgresql 8.1.5 geht klappt nicht

Fragen, Probleme etc. zu den prozedularen Sprachen ( PL/Tcl, PL/Perl und PL/Python).
Antworten
michaelbn
Neuer Benutzer
Beiträge: 5
Registriert: Fr 12. Mai 2006, 13:50

PL/Python auf Postgresql 8.1.5 geht klappt nicht

Beitrag von michaelbn » Mi 24. Jan 2007, 23:39

Hallo,
unter Opensuse 10.1 / PostgreSQL 8.1.4 habe ich eine Datenbank, die auch einige PL/Python-Funktionen enthält. Ich habe nun diese Datenbank mit dumpall auf einem Opensuse 10.2 / PostgreSQL 8.1.5 - System installiert. Schnell mußte ich feststellen, dass die PL/Python-Funktionen dort nicht mehr laufen. Ich habe dann mal testweise eine neue DB erstellt, um herauszufinden, was los ist. Eine ganz einfache Funktion wie
CREATE or REPLACE FUNCTION fncPy(int) RETURNS int AS
'
tt = args[0]
return tt
'
LANGUAGE plpythonu;
funktioniert. Wenn ich aber versuche, etwa die Zeile
rs = plpy.execute("SELECT * FROM tbl_tt") einzufügen, und dann die Funktion aufrufe, bricht der Server mit der folgenden Nachricht die Verbindung zum Client (psql) ab:
Server beendete die Verbindung unerwartet
Das heißt wahrscheinlich, daß [sic] der Server abnormal beendete
bevor oder während die Anweisung bearbeitet wurde.
Die Verbindung zum Server wurde verloren. Versuche Reset: Fehlgeschlagen.
Danach hilft dann nur noch \q, um weitermachen zu können. Leider ist mir völlig schleierhaft, was da passiert. Was kann ich tun?
Vielen Dank
Michael

akretschmer
Erfahrener Benutzer
Beiträge: 7645
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Beitrag von akretschmer » Do 25. Jan 2007, 07:14

michaelbn hat geschrieben:Hallo,
unter Opensuse 10.1 / PostgreSQL 8.1.4 habe ich eine Datenbank, die auch einige PL/Python-Funktionen enthält. Ich habe nun diese Datenbank mit dumpall auf einem Opensuse 10.2 / PostgreSQL 8.1.5 - System installiert. Schnell mußte ich feststellen, dass die PL/Python-Funktionen dort nicht mehr laufen. Ich habe dann mal testweise eine neue DB erstellt, um herauszufinden, was los ist. Eine ganz einfache Funktion wie
CREATE or REPLACE FUNCTION fncPy(int) RETURNS int AS
'
tt = args[0]
return tt
'
LANGUAGE plpythonu;
funktioniert.
Michael


pl/phyton != pl/phytonu

Hast Du diese Sprachen installiert? Prüf mal mit 'createlang -l'.

Andreas
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

michaelbn
Neuer Benutzer
Beiträge: 5
Registriert: Fr 12. Mai 2006, 13:50

PL/Python auf Postgresql 8.1.5 geht klappt nicht

Beitrag von michaelbn » Do 25. Jan 2007, 08:52

Hallo Andreas,
ja Pl/Python ist installiert - wenn eine Sprache nicht installiert ist, gibt es schon während des Anlegens der Funktion (CREATE FUNCTION ...) eine Fehlermeldung mit dem Hinweis, das die in der Funktion genannte Sprache nicht installiert ist. Was den Hinweis pl/phyton != pl/phytonu betrifft, so war ich nur zu bequem 'PL/Python untrusted' zu schreiben - siehe auch meinen Kode-Schnippsel. (Bei dem Versuch LANGUAGE plpython - Tippfehler - zu verwenden, gibt's auch eine Fehlermeldung, dass die Sprache nicht zur Verfügung steht.)
In aller Regel sind die Fehlermeldungen von PostgreSQL aussagekräftig genug, um den Fehler aufzuspüren - ohne stehe ich leider ziemlich im Dunkeln...
Gruß
Michael

Antworten