标签: plpython

PostgreSQL 过程语言开销(plpython/plsql/pllua...)

我试图实时任务的过程语言性能中查找有关 PostgreSQL用户定义函数的信息。

  1. 它们与内置函数相比如何?
  2. Postgres 如何调用/管理 plpython vs plpgsql vs pllua 函数(我对 Postgres 集成/上下文/数据传输方面,而不是 VM 本身感兴趣)有什么区别(在开销上)?
  3. 上下文是一个很大的开销吗?我可以将它用于实时数据映射吗(假设 1000 次查询/秒))
  4. 在 plpgsql 和其他 pg/语言中编写用户定义的函数有什么好处吗?在文档中,他们列举了优点,但我认为它们适用于所有 postgresql 过程语言。

相关发现:

postgresql plpgsql plpython

15
推荐指数
3
解决办法
6283
查看次数

为什么 PL/Python 不受信任?

根据文档:

PL/Python 仅可用作“不受信任”的语言,这意味着它不提供任何方式来限制用户可以在其中执行的操作,因此被命名为 plpythonu。如果在 Python 中开发了安全执行机制,那么将来可能会出现可信变体 plpython。

为什么为 Python 开发安全执行机制却很难,而为其他语言(如 Perl)开发安全执行机制却没有?

postgresql security python plpython

13
推荐指数
1
解决办法
2555
查看次数

何时(或为何)使用 PLPython(3)u

随着我获得更多 PostgreSQL 经验,我开始质疑 PLPython 的存在。它被认为是一种“不受信任”的语言https://www.postgresql.org/docs/10/plpython.html

我想知道的是,何时或为什么有人需要使用它?PLPGSQL 已经是一种非常强大的语言,可以让您做很多事情。这里有人需要使用它吗?如果需要,用途是什么?

postgresql plpgsql plpython

5
推荐指数
1
解决办法
3399
查看次数

无法在 plpython3u 中“创建函数”,权限被拒绝

作为 postgres 用户,create extension plpython3u;我的数据库中有

然后我已将其设置plpython3u为受信任:select lanpltrusted from pg_language where lanname like 'plpython3u';返回 true

但是当我的 db_user 尝试

  create function check_data_valid(id bigint)
    returns boolean
    as $$
    -- ...
    return true
    $$ language plpython3u;
Run Code Online (Sandbox Code Playgroud)

我得到了错误: permission denied for the language plpython3u

所以,我的Postgres的用户,然后我曾尝试:grant usage on plpython3u to db_usergrant execute on plpython3u to db_user,但都返回错误:

relation python doesn't exist

也许是因为它是一个扩展......但是,我不知道该怎么做才能创建我的存储过程。

postgresql stored-procedures postgresql-9.1 plpython

4
推荐指数
1
解决办法
7367
查看次数

Amazon RDS 不支持扩展“plpythonu”

我正在尝试安装支持在 postgresql 中编写 python 的扩展“plpython3u”。

CREATE EXTENSION plpython3u;

错误:

SQL 错误 [22023]:错误:Amazon RDS 不支持扩展“plpythonu”详细信息:安装扩展“plpythonu”失败,因为它不在 Amazon RDS 支持的扩展列表中。
提示:Amazon RDS 允许具有 rds_superuser 角色的用户安装支持的扩展。请参阅:SHOW rds.extensions;

你能推荐一个解决方案吗?

我们正在运行以下版本的 postgresql:

x86_64-pc-linux-gnu 上的 PostgreSQL 12.7,由 gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-12) 编译,64 位

postgresql plpython

3
推荐指数
1
解决办法
2402
查看次数