Re: array variables

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com>
Cc: "Marcin Krawczyk" <jankes(dot)mk(at)gmail(dot)com>, pgsql-sql(at)postgresql(dot)org
Subject: Re: array variables
Date: 2008-11-13 13:14:16
Message-ID: 3947.1226582056@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

"Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com> writes:
> 2008/11/13 Marcin Krawczyk <jankes(dot)mk(at)gmail(dot)com>:
>> 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 ;-)

regards, tom lane

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Pavel Stehule 2008-11-13 13:16:04 Re: array variables
Previous Message Marcin Krawczyk 2008-11-13 09:44:01 Re: array variables