我想在两个或多个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