2012-09-13 56 views
6

Khi sử dụng array_agg hoặc array_string, mảng trả về trống trên một kích thước nhất định.giới hạn mảng array_agg trong Postgresql 9.1

SELECT array_agg(x.id) FROM (SELECT id FROM table LIMIT 500) x - công trình này trả về một mảng.

nhưng truy vấn này: SELECT array_agg(x.id) FROM (SELECT id FROM table LIMIT 667) x Không hoạt động. nó trả về một mảng trống.

Tôi khá chắc chắn điều này không đạt đến kích thước giới hạn của một mảng. Bất kỳ ý tưởng tại sao điều này xảy ra?

+1

Có thể 'id' là null không? –

+1

@a_horse_with_no_name no. thử 'SELECT array_agg (x.id) TỪ (SELECT * FROM cast (generate_series (1,1158) as int) làm id) x' – Ereli

+3

Tôi đã phát hiện ra vấn đề là gì. giới hạn trong môi trường hiển thị. 'pgAdmin III' không hiển thị dữ liệu trong giao diện người dùng, nhưng ở đó. – Ereli

Trả lời

6

vấn đề ở đây không phải là Postgresql, mà là khách hàng tôi đang sử dụng. pgAdmin III không hiển thị nội dung của mảng trên một kích thước nhất định. khoảng 4.5k. khi sử dụng psql không gặp vấn đề tương tự.

giao diện người dùng của pgAdmin có một tùy chọn để đặt "Max characters per column" và được đặt thành 256 trong trường hợp của tôi, điều này rất có ý nghĩa. nhưng bạn sao chép & dán mảng trông trống vào notepad bạn sẽ tìm thấy tất cả dữ liệu ở đó.

+0

obersvation đẹp – vol7ron

Các vấn đề liên quan