【问题标题】:limitation of array_agg in Postgresql 9.1Postgresql 9.1 中 array_agg 的限制
【发布时间】:2012-09-13 07:30:15
【问题描述】:

使用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 不工作。它返回一个空数组。

我很确定这不会达到数组的大小限制。任何想法为什么会发生这种情况?

【问题讨论】:

  • @a_horse_with_no_name 没有。试试SELECT array_agg(x.id) FROM (SELECT * FROM cast(generate_series(1,1158) as int)as id) x
  • 我发现了问题所在。限制在于显示环境。 pgAdmin III 不会在 UI 中显示数据,但它就在那里。
  • @Ereli 当计时器允许您这样做时,请将其添加为您问题的答案并接受它。

标签: postgresql aggregate-functions postgresql-9.1


【解决方案1】:

这里的问题不是 Postgresql,而是我使用的客户端。 pgAdmin III 不显示超过一定大小的数组内容。大约 4.5k。 使用psql 时不会遇到同样的问题。

pgAdmin 的 UI 有一个设置 "Max characters per column" 的选项,在我的情况下它设置为 256,这没什么意义。 但是您将看起来为空的数组复制并粘贴到记事本中,您会发现所有数据都在那里。

【讨论】:

    猜你喜欢
    • 2018-04-01
    • 2012-09-11
    • 2021-06-20
    • 1970-01-01
    • 2020-07-29
    • 2014-06-09
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多