From: | Harald Fuchs <hari(dot)fuchs(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Convert Arbitrary Table to Array? |
Date: | 2009-02-09 21:14:24 |
Message-ID: | puy6wfjosv.fsf@srv.protecting.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
In article <17050(dot)1234200030(at)sss(dot)pgh(dot)pa(dot)us>,
Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
> Lee Hughes <lee(at)hughesys(dot)com> writes:
>> Hi, I need a function that accepts a table name and returns a 2-dimensional
>> array of the table data.
> Well, in 8.3 and up there are arrays of composite types, so you can
> do something like
> select array(select mytable from mytable);
Interesting. On 8.3.5 I tried
CREATE TABLE mytable (
id serial NOT NULL,
mytable int NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO mytable VALUES
(1, 10),
(2, 20),
(3, 30),
(4, 40),
(5, 50),
(6, 60);
SELECT array(SELECT mytable FROM mytable);
and it returned
{10,20,30,40,50,60}
Only when I renamed the second column from "mytable" to "mytablex" I got
{"(1,10)","(2,20)","(3,30)","(4,40)","(5,50)","(6,60)"}
as you promised. Is there any syntax for treating the first "mytable"
as a composite type name instead of a column name?
From | Date | Subject | |
---|---|---|---|
Next Message | SHARMILA JOTHIRAJAH | 2009-02-09 21:23:10 | ora2pg or dbi_link ? |
Previous Message | Stephen Frost | 2009-02-09 21:05:33 | Re: Out of memory on SELECT in 8.3.5 |