在plpython import语句是如何处理的?(How are import statement

2019-07-20 08:41发布

我有一个plypython功能,做一些JSON魔术。 为此,它显然导入JSON库。

被称为在每次调用该函数的进口? 是否有任何性能暗示我必须要知道的?

Answer 1:

import是在每个函数调用执行。 这是相同的行为,如果你写了一个普通的Python模块的,你会得到import函数体内语句在模块级oppposed来。

是的,这会影响性能。

您可以解决此通过缓存进口是这样的:

CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
    json = SD['json']
else:
    import json
    SD['json'] = json

 return json.dumps(...)
$$;

这是无可否认的不是很漂亮,和更好的方式来做到这一点正在被讨论,但他们不会的PostgreSQL 9.4之前发生。



文章来源: How are import statements in plpython handled?