Postgresql 以可变数组为参数的PL/Python3

Postgresql 以可变数组为参数的PL/Python3,postgresql,multidimensional-array,variadic-functions,stored-functions,plpython,Postgresql,Multidimensional Array,Variadic Functions,Stored Functions,Plpython,我正在使用plpython3u处理一个结果,该结果包含任意数量的列,每个列都包含一个数组(不同长度>0)。在python中,我希望将这些数据作为多维数组进行处理,但我很难将它从Postgres导入到我的函数中 我使用的函数声明如下所示: CREATE或REPLACE函数可以设置覆盖(可变参数数值[]) 问题是当我尝试 SELECT是否可以设置覆盖(数组[1,2],数组[1,2]); 我得到: 没有与给定名称和参数类型匹配的函数。您可能需要添加显式类型转换 如果我传入(数组[1,2]),函数将

我正在使用
plpython3u
处理一个结果,该结果包含任意数量的列,每个列都包含一个数组(不同长度>0)。在python中,我希望将这些数据作为多维数组进行处理,但我很难将它从Postgres导入到我的函数中

我使用的函数声明如下所示:

CREATE或REPLACE函数可以设置覆盖(可变参数数值[])
问题是当我尝试

SELECT是否可以设置覆盖(数组[1,2],数组[1,2]);
我得到:

没有与给定名称和参数类型匹配的函数。您可能需要添加显式类型转换

如果我传入
(数组[1,2])
,函数将返回一个结果而不会失败,因此postgres似乎无法处理上述多维声明


因此,如果可能的话:如何声明函数以接收数组列表?

您不能这样做。用作可变参数的参数不能是数组


可变参数的实现是在技术上不可能实现的时候。现在这是可能的,但没有人实现它。

用大量可能的参数(并单独处理太多参数的情况)重载函数是一个好的解决方案吗?我看不出这有什么好处。我不知道您的用例,但可变参数有点语法上的糖分——您可以传递多维数组。最简单的解决方案通常是最好的。优点主要是我不知道会有多少个参数。查询是动态构造的,数组的长度不同(我还没有测试过,但pg似乎对不同长度的多维数组有问题)