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

Reply via email to