2008/11/13 Tom Lane <[EMAIL PROTECTED]>: > "Pavel Stehule" <[EMAIL PROTECTED]> writes: >> 2008/11/13 Marcin Krawczyk <[EMAIL PROTECTED]>: >>> Because if I try this : >>> a := ARRAY(SELECT id, p FROM idx); >>> I get >>> ERROR: subquery must return only one column > >> you can't do it directly :( now. > > Sure you can, if you're using a version new enough to have arrays of > composite types. > > regression=# create table t1 (f1 int, f2 text); > CREATE TABLE > regression=# insert into t1 values (1,'one'); > INSERT 0 1 > regression=# insert into t1 values (2,'two'); > INSERT 0 1 > regression=# select array(select row(t1.*)::t1 from t1); > ?column? > ----------------------- > {"(1,one)","(2,two)"} > (1 row) > > Whether this is a good idea for a large table is a different question ;-)
I don't expect so user use devel version ;) - and result is array of some composite type, not two dimensional array (but arrays of records is nice feature too). regards Pavel > > regards, tom lane > -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql