首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个查询中打开了多少个plpython执行环境?

在一个查询中打开了多少个plpython执行环境?
EN

Stack Overflow用户
提问于 2012-12-04 06:53:02
回答 1查看 359关注 0票数 1

postgres (和greenplum)中的用户定义函数是否独立运行?当我有一个带有plpythonu用户定义函数的查询时,有多少执行环境是开放的?运行查询时有没有共享的python解释器状态?

假设我有一个plpython用户定义函数:

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION file2text(path string) RETURNS text AS $$
    f = open(path, 'r')
    return f.read()
    f.close()
$$ LANGUAGE plpythonu;

对于表create table files (name varchar, path varchar)和对该表的查询,如下所示:

代码语言:javascript
复制
SELECT f.name
FROM files f
WHERE character_length( file2text(f.path) ) > 4096
ORDER BY f.name

每次执行plpython函数都会产生一个新的python环境吗?在MPP数据库中,我是否可以假设postgres的行为可以跨每个网段复制,而不是跨网段共享状态?

EN

回答 1

Stack Overflow用户

发布于 2012-12-04 07:56:50

PL/Python状态在会话之间隔离,并在会话中共享。

通过在sys模块中放置一个变量(仅用于测试),可以非常容易地对其进行测试。或者更好,在您导入的自定义模块中。您应该看到该变量对同一会话(连接)中运行的其他函数可见,但对其他会话中的函数不可见。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13693215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档