Jon Smark <jon.smark@xxxxxxxxx> writes: > create type page_t AS > ( > total int4, > users user_t[] > ); > create function get_page () > returns page_t > language plpgsql as > $$ > declare > _page page_t; > begin > _page.total := select count (*) from users; > select * into _page.users from users limit 10; > return _page; > end > $$; That is certainly not going to work: that select does not produce an array, it produces a column of user_t (of which SELECT INTO is only gonna take the first, anyway). Untested, but I think you'd have better results with _page.users := array(select users from users limit 10); It'd also be smart to get rid of user_t and rely directly on the "users" rowtype associated with the users table. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general