Ich möchte einige einfache, reine Python-Funktionen zwischen zwei oder mehr PL/Python-Funktionen deklarieren und teilen. Ich benutze Postgres 9.3.Wiederverwenden von reinen Python-Funktionen zwischen PL/Python-Funktionen
Zum Beispiel habe ich:
CREATE OR REPLACE FUNCTION get_mod(modifier varchar)
RETURNS varchar
AS $$
def is_float(val):
try:
if val:
float(val)
return True
else:
return False
except ValueError:
return False
if modifier is None:
return "NOMOD"
if is_float(modifier):
return str(float(modifier)*1)
return modifier
$$ LANGUAGE plpythonu;
Ich möchte Funktion verwenden is_float
in einem anderen PL/Python-Funktion. Ich verstehe, ich könnte es als Callable PL/Python-Funktion erstellen, aber ich finde, dass viel Clunkier (um SQL-basierten Aufruf von PL/Python auszuführen) als nur einen direkten Aufruf an eine reine Python, benutzerdefinierte Dienstprogrammfunktion.
Ist es möglich, durch PL/Python wiederverwendbare reine Python-Funktionen auf Postgres zu erstellen und verfügbar zu machen?
Ja, das scheint die einzige Option zu sein, wenn ich mich nicht mit OID-Hacks anlegen will. – Edmon