问题标签 [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.

0 投票
0 回答
129 浏览

postgresql - PostgreSQL 中插入的行在触发器函数中不可用

  • 数据库:postgresql
  • 语言:plpythonu
  • 题目:触发函数

每次插入后我都需要做一些事情,但插入的记录不会出现在我在里面进行的查询中request_received_function()。插入的记录是否锁定在触发函数中?

  1. 触发器很好,我可以调试它
  2. 在第二条插入记录上显示自己
0 投票
4 回答
5847 浏览

python - How to aggregate matching pairs into "connected components" in Python

Real-world problem:

I have data on directors across many firms, but sometimes "John Smith, director of XYZ" and "John Smith, director of ABC" are the same person, sometimes they're not. Also "John J. Smith, director of XYZ" and "John Smith, director of ABC" might be the same person, or might not be. Often examination of additional information (e.g., comparison of biographical data on "John Smith, director of XYZ" and "John Smith, director of ABC") makes it possible to resolve whether two observations are the same person or not.

Conceptual version of the problem:

In that spirit, am collecting data that will identify matching pairs. For example, suppose I have the following matching pairs: {(a, b), (b, c), (c, d), (d, e), (f, g)}. I want to use the transitivity property of the relation "is the same person as" to generate "connected components" of {{a, b, c, d, e}, {f, g}}. That is {a, b, c, d, e} is one person and {f, g} is another. (An earlier version of the question referred to "cliques", which are apparently something else; this would explain why find_cliques in networkx was giving the "wrong" results (for my purposes).

The following Python code does the job. But I wonder: is there a better (less computationally costly) approach (e.g., using standard or available libraries)?

There are examples here and there that seem related (e.g., Cliques in python), but these are incomplete, so I am not sure what libraries they are referring to or how to set up my data to use them.

Sample Python 2 code:

This produces the desired output: [Set(['a', 'c', 'b', 'e', 'd']), Set(['g', 'f'])].

Sample Python 3 code:

This produces [set(['a', 'c', 'b', 'e', 'd']), set(['g', 'f'])]):

0 投票
1 回答
72 浏览

python - 是否可以在 Postgres 触发器调用之间保持状态?

我正在使用 Python 在 PostgreSQL 中实现一个触发器,该触发器通过 amqpy 发送 AMQP 消息。

发送消息需要连接。目前,我知道这样做的唯一方法是,当触发器被调用时,打开一个连接,发送消息,然后关闭连接。

我希望不必为每次触发器调用都打开一个新连接。有没有办法将连接初始化一次,然后使其可用于未来的触发器调用?

还必须有一种方法来检测连接是否断开并重新建立。

0 投票
1 回答
907 浏览

arrays - plpython 函数可以将多行作为参数吗?

我需要知道要制作采用多行数组并返回结果数组的函数。

例如:

表 some_table

然后运行:

并获得一个按元素操作的数组(在本例中为 avg):

类似于对行进行操作的标准聚合函数。

在查看文档和谷歌搜索近 2 小时后,我找不到直接的答案。

我知道数组可以展开成表格,但我试图避免这种情况。如果这种功能可以用标准 SQL 来解决,那也很有用。

0 投票
1 回答
265 浏览

python - PostgreSQL如何追加执行查询的多个结果?

我有一个函数getitems(id),它给出了与这个 id 相关的所有行。

我在 PostgreSQL 中有一个名为 func1 的函数,它应该返回getitems整个项目列表:

目前它返回 x ,其中包含最后一次迭代的值(getitems最后一个 id in 的结果listof_id)。如何修改它以便将每次迭代附加到最后一次?

我试着做:

它不起作用......

0 投票
2 回答
910 浏览

python - 如何在plpython函数之间传递int []作为参数

我正在使用 PostgreSQL 和 plpython 函数。

我有一个功能func1

func1使用 c 参数调用func2,即integer[].

从 SQL 查询运行时

我收到以下错误:

通过的东西intger[]不起作用我也试过:

它也不起作用。

0 投票
1 回答
768 浏览

sql - PL/Python: How to return an empty set?

I have a function that operates on int[]. I want to have the ability to check if the array is empty and in that case to stop since there is nothing to do.

this is my funcion:

func_type defined as:

when I added a check:

I got an error:

I understand that I have to return func_type and func_type was not built since there was no plpy.execute but still how can I make it return at this point? Also, assume func3 called func2. How would func3 can check that there are 0 rows returned?

0 投票
0 回答
770 浏览

postgresql - 如何为 PostgreSQL 9.4 WINx64 安装扩展 python 3.3

我在编写时为 PostgreSQL 9.4 安装 plpython3u 时遇到问题:

我有这个消息:

有任何想法吗?

0 投票
0 回答
396 浏览

postgresql - 在 PL/Python 中为 PostgreSQL 函数编写单元测试——这可能/合理吗?

我发现了一个有趣的 PL/PGSQL 框架,用于对 PL/PGSQL 过程进行单元测试,称为pgTAP。但是 PostgreSQL 支持另一种存储过程语言——Python,它已经在标准库和断言语句中具有单元测试框架。如果在 PL/Python 中为 PGSQL 过程编写单元测试怎么办?

可能吗?这是个好主意吗?

0 投票
3 回答
926 浏览

python - 如何使用 Travis CI 测试 Pl/Python PostgreSQL 程序?

我正在尝试为 Travis CI 中的一些 PL/Python PostgreSQL 程序设置 CI。

我尝试了几种方法:
1)使用我试图假设的遗留基础设施已经安装了 PL/Python,但它没有成功:

2)一开始就尝试添加sudo apt-get update && sudo apt-get -y install postgresql-plpython-9.4命令。它也失败了,因为这个命令启动了对已经安装在 Travis 环境中的 PostgresSQL 9.4 的替换。

特拉维斯打造。

3)还尝试在配置中使用基于容器的基础设施:

也没有成功。

在 Travis CI 中测试 PL/Python 程序的好方法是什么?