相关疑难解决方法(0)

作为Postgres中另一个函数的参数

我可以通过C语言函数API或使用pl/pgsql接受回调函数作为参数在Postgres中创建用户定义的函数吗?

据我所知,没有办法通过C语言API执行此操作,因为它只接受sql数据类型,并且没有数据类型function.但也许我错过了什么?

c sql database postgresql plpgsql

5
推荐指数
2
解决办法
1652
查看次数

PostgreSQL:在数组中的所有项目上选择一个函数

考虑一个包含以下行的表:

id       | bigint
polygons | geometry(Polygon,4326)[]
Run Code Online (Sandbox Code Playgroud)

SELECT-ing 该polygons行返回一个不可读的二进制数据数组:

SELECT polygons FROM some_table WHERE id=405;
{0103000020E61000000100000006000000B84F039E5AC0E375243935C13F402...}
Run Code Online (Sandbox Code Playgroud)

st_AsText在第一个元素上使用会返回一个可读的输出:

SELECT st_AsText(polygons[1]) FROM some_table WHERE id=405;
POLYGON((-106.4689521119 31.7547183717742 ...)
Run Code Online (Sandbox Code Playgroud)

不出所料,该函数仅适用于元素,不适用于数组:

SELECT st_AsText(polygons) FROM some_table WHERE id=405;
ERROR:  function st_astext(geometry[]) does not exist
Run Code Online (Sandbox Code Playgroud)

用 Python 术语来说,我正在寻找print [st_AsText(p) for i in polygons]PostgreSQL 中的等价物。

如何在 SELECT 语句中对数组的所有元素运行 PostgreSQL 函数,就像 Python 的列表理解一样?

附录 我认为这不是严格的重复,因为How to apply a function to each element of an array column in Postgres?处理内联数组(例如FROM unnest(ARRAY[1.53224,0.23411234]) …

arrays postgresql postgis sql-function postgresql-9.3

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