PostgreSQL: SELECT 数组中所有项目的函数

PostgreSQL: SELECT a function on all items in an array

考虑具有以下行的 table:

id       | bigint
polygons | geometry(Polygon,4326)[]

SELECT-ing polygons 行 returns 不可读二进制数据数组:

SELECT polygons FROM some_table WHERE id=405;
{0103000020E61000000100000006000000B84F039E5AC0E375243935C13F402...}

在第一个元素上使用 st_AsText returns 可读输出:

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

毫不奇怪,该函数仅适用于元素,不适用于数组:

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

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

我如何 运行 在 SELECT 语句中对数组的所有元素执行 PostgreSQL 函数,a-la Python 的列表理解?

附录 我认为这不是严格的重复,因为 How to apply a function to each element of an array column in Postgres? 处理内联数组(例如 FROM unnest(ARRAY[1.53224,0.23411234])),而这个问题处理来自 table 的 SELECT 语句,其中包含一个数组列。转换并非微不足道,至少对我而言。

使用unnest():

SELECT st_AsText(p) 
FROM some_table, unnest(polygons) p 
WHERE id=405;