问题标签 [plpython]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - PostgreSQL - Python - 触发器 - 访问 current_user
我正在用 plPython 编写一个审计触发器。我不知道如何访问 current_user 变量。它是否可以通过 plpy 以某种方式获得?
我还想知道是否可以将变量传递给触发函数?如果是这样,这是如何完成的?我试过了:
但它不起作用。
谢谢。
python - 如何使用 plpython 执行基本的 scipy gridddata 插值?
从plpython文档示例和griddata 示例迁移到实际工作代码时遇到问题。
让我们假设 'my_table' 具有一些简单参考网格的 x、y 和 z 值,其中 x,y 对是点坐标,z 是该点的值。输入参数是inx
和iny
,它们定义了我们要为其插值的点坐标z
。
这不起作用,因为我不了解 refvals 发生了什么以及如何将其元素转换为 griddata 的适当数据类型。我正在考虑r
data.frames (我会refvals[,c('x','y')]
用来获取 x,y 坐标对)或SQL
表(我会使用select x, y from refvals
),但该refvals
对象是 python 中称为 a 的东西list of dict
,我不太了解了解如何正确访问。
我从文档中的语法中收集到可能需要foo = rv[i]["my_column"]
循环(例如, )?for i = 0:len
python - PostgreSQL:在 plpython3u 中设置单值返回函数
我想在 PostgreSQL 中编写一个 plpython3u 函数,它返回一组文本。我偶然发现了一个对我来说很奇怪的难题。根据手册,我可以执行以下操作:
这是一个 Python 函数,它返回一组带有单个文本的行;这么多的作品,我确实得到了预期的输出:
到目前为止,一切都很好。但是,我不想为此目的编写表定义,我想setof record
改用,就像在这个例子中一样(碰巧使用整数,但仍然):
现在我们来到有趣的部分。从上面概括,下面的一个或多个公式应该是正确的:要返回一组单个值,要么返回 Python 元组列表、Python 数字列表,要么迭代具有单个值的元组或单个价值观:
事实证明,以上都没有编译,它们都导致 SQL 解析器抛出函数结果类型必须是整数,因为 OUT 参数。由于我的 SQL 解析器不查看 Python 函数内部,这让我怀疑——</p>
在 PostgreSQL 中,不可能定义一个同时returns setof record
具有单个out
参数的函数;相反,输出类型必须始终定义为表(或通过类似方式)。
谁能纠正我?如果事实证明这是真的,那将真的很烦人。我肯定在某个地方犯了错误吗?
postgresql - 在 Windows 2012(64 位)的 postgres 9.6 中安装 numpy 以在 plpython3u 中使用
我正在尝试安装 numpy 以在 Windows 2012(64 位)的 postgres 9.6 中的 plpython3u 中使用,但我遇到了依赖问题。
1) 我已经从 EnterpriseDB 安装了 Postgres 9.6 和语言包,它会自动安装 Python 3.3。<- 有没有办法安装更新版本的 Python?
我已经完成CREATE EXTENSION plpython3u;
并且它工作正常。
我尝试使用以下命令安装 python 模块, pip3.exe install numpy
但
python -m pip install --user numpy
numpy-1.12.1 返回错误:
raise RuntimeError("Python version 2.7 or >= 3.4 required.")
如果我尝试安装 numpy==1.10.4 的旧版本,则会出现许多关于 blas 和 atlas 以及 fortran 编译器不可用的错误 - 所以我没有进一步追求这个途径。
2)如果我单独安装 Python 3.6,在创建扩展 plpython3u 时,我得到
错误:无法加载库“C:/Program Files/PostgreSQL/9.6/lib/plpython3.dll”:找不到指定的模块。
DLL位于该位置,但实用程序“depends”显示它是为 python33 而不是 python36 编译的,并且缺少这些依赖项。我可以以某种方式替换 plpython3.dll 文件以使其与 Python 3.6 一起使用吗?
肯定有人在 Windows 的 postgres 中为 plpython3u 安装了 numpy,但到目前为止我找不到任何解决方案。
谢谢
彼得
plpython - 无法加载库 plpython3.dll
在 Postgresql 版本 10 中创建扩展时出现错误
无法加载库“C:/Program Files/PostgreSQL/10/lib/plpython3.dll”:找不到指定的模块
注意:在 Window 10 上使用 Postgresql 10
python - 在使用 PL/Python 编写的布尔存储过程的 PostgreSQL CHECK 约束中,可以更新错误消息的详细信息吗?
问题在(尽管很长)标题中。我有这种方式的代码:
使用此程序:
(这个例子的细节并不重要,我知道有比这更好的方法来验证一个值,比如使用MONEY
类型。)
当尝试插入未通过此检查时,我收到以下错误:
(错误/细节描述符是我自己的代码,但是 PostgreSQL 错误有一个错误并提供了一个细节字段。)
我有什么办法可以从我的 Python 程序中更改此错误的“详细信息”部分吗?
postgresql - 服务器在编译 plpytghon3u 函数时在 postgresql 中意外关闭了连接
在 psql 中定义 PL/Python 函数时,出现错误:
功能:
PostgreSQL 日志:
python - PL/Python。如何在 where clouse 处使用 None 类型作为整数?
所以,我有一个与以下相同的查询:
如果我的领域dependent_id
不是None
,它运作良好。但是,如果我None
在这个领域有一个,查询就会不正确。因为与你比较时=
不一样IS
NULL
我尝试使用 if-else 表达式来更正我的查询字符串,但是当查询包含 时IS
,我捕获了语法异常。
在我用IS
关键字(当我的字段是None
)记录我的查询后,我在 PSQL shell 中执行了它,它运行良好。
那么,为什么IS
不能在plpythonu
存储过程中工作,但仍然可以在本机 SQL 查询中工作呢?
更新:
我在工作中与 DBA 进行了讨论,他认为这是plpythonu
类型转换的错误。因为plpy.execute
当我们尝试使用IS
整数类型时会出现异常。
在您将字段声明为整数并IS
在准备步骤中用于查询后,您将在执行步骤中获得语法异常。
解决方法是查询字符串,其中明显指示您的None
字段为IS NULL
或IS NOT NULL
PS对不起我的英语。
postgresql - 将 plpython3 扩展添加到 Postgres/timescaledb Alpine Docker Image
我尝试将plpython3
扩展名添加到我的timescaledb
/ postgres
(基于 linux alpine)图像:
当我尝试创建扩展时,出现以下错误:
但是当我在容器中搜索文件时,我可以在不同的目录中找到它们:
如何安装postgresql-plpython3
到不同的目录或配置postgres
以识别我添加的扩展?
更新
当我只是mv
文件时,/usr/local/share/postgresql/extension
我得到了错误:
更新 2
所以问题$libdir
是pg_config --pkglibdir
指向/usr/local/lib/postgresql
但plpython3.so
在里面/usr/lib/postgresql
。当我将所有内容移动到相应的/usr/local
目录时,我可以成功创建扩展。
这就引出了我希望在哪里找到答案的问题。我怎样才能安装postgresql-plpython3
到/usr/local/...
而不是/usr/...
?
postgresql - compose-for-postgresql 中的 Pl/python 和 Pl/r 扩展
一天中的好时光,想问是否有人知道在 IBM Bluemix 云上安装 PostgreSQL 扩展(准确地说是 pl/r 和 pl/python)的方法是什么?我在那里运行 compose-postgresql 数据库,当我发出 postgresql 查询(例如“创建扩展 plpythonu”)时出现错误:“错误:无法打开扩展控制文件”/usr/local/postgres/9.6.6/share/extension /plpythonu.control": 没有这样的文件或目录'。pl/r 也一样。如果有人帮助,将不胜感激。