我想在兩個或多個PL/Python函數之間聲明和共享一些簡單的純Python函數,這些函數在 之間。我正在使用Postgres 9.3。在PL/Python函數之間重複使用純Python函數
例如,我有:
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;
我想在其他一些PL/Python函數使用功能is_float
。 我知道我可以將它創建爲可調用的PL/Python函數,但是我發現它比對純Python(自定義實用函數)直接調用更加笨拙(對PL/Python執行基於SQL的調用)。
是否可以在Postgres上通過PL/Python可重用的純Python函數創建和公開?
是的,這看起來是唯一的選擇,除非我想混亂OID黑客。 – Edmon