2012-09-13 74 views
6

使用array_agg或array_string時,數組返回空值大於特定大小。Postgresql 9.1中array_agg的限制

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 不起作用。它返回一個空數組。

我很確定這沒有達到數組的限制大小。任何想法爲什麼會發生?

+1

'id'可以爲空嗎? –

+1

@a_horse_with_no_name no。嘗試'SELECT array_agg(x.id) FROM(SELECT * FROM cast(generate_series(1,1158)as int)as id)x' – Ereli

+3

我發現了什麼問題。限制在顯示環境中。 'pgAdmin III'不會在UI中顯示數據,但它在那裏。 – Ereli

回答

6

這裏的問題不是Postgresql,而是我正在使用的客戶端。 pgAdmin III不顯示超過一定大小的數組內容。約4.5k。 使用psql時,不會遇到同樣的問題。

pgAdmin的UI有一個設置"Max characters per column"的選項,在我的情況下它被設置爲256,這沒有什麼意義。 但您複製&將看起來空的數組粘貼到記事本中,您會發現所有數據都在那裏。

+0

好的obersvation – vol7ron