使用array_agg或array_string时,数组返回空的特定大小。
SELECT array_agg(x.id) FROM (SELECT id FROM table LIMIT 500) x
- 这可以工作并返回一个数组。
但是此查询:SELECT array_agg(x.id) FROM (SELECT id FROM table LIMIT 667) x
不行。它返回一个空数组。
我很确定这没有达到数组的限制大小。任何想法为什么会发生这种情况?
答案 0 :(得分:5)
这里的问题不是Postgresql,而是我正在使用的客户端。
pgAdmin III
不会显示超过特定大小的数组内容。约4.5k。
使用psql
时,不会遇到同样的问题。
pgAdmin
的用户界面有一个设置"Max characters per column"的选项,在我的情况下设置为256,这没什么意义。
但你复制&将看似空的数组粘贴到记事本中,你会发现所有数据都存在。