以VARIADIC数组为参数的PL / Python3

时间:2019-06-17 02:08:53

标签: postgresql multidimensional-array variadic-functions stored-functions plpython

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

我正在使用的函数声明如下:

CREATE OR REPLACE FUNCTION is_set_cover_possible(VARIADIC args numeric[][])

问题是,当我尝试

SELECT is_set_cover_possible(ARRAY[1,2],ARRAY[1,2]);

我得到:

  

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

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

因此,如果实际上可行:我如何声明该函数以接收数组的 list

1 个答案:

答案 0 :(得分:1)

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

在技术上不可能实现可变参数论证。现在有可能,但没有人实现。