Re: Convert Arbitrary Table to Array?

Поиск
Список
Период
Сортировка
От Merlin Moncure
Тема Re: Convert Arbitrary Table to Array?
Дата
Msg-id b42b73150902100623q9add14dte50444cc72830144@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Convert Arbitrary Table to Array?  (Harald Fuchs <hari.fuchs@gmail.com>)
Ответы Re: Convert Arbitrary Table to Array?  (Martin Gainty <mgainty@hotmail.com>)
Список pgsql-general
On Mon, Feb 9, 2009 at 4:14 PM, Harald Fuchs <hari.fuchs@gmail.com> wrote:
> In article <17050.1234200030@sss.pgh.pa.us>,
> Tom Lane <tgl@sss.pgh.pa.us> writes:
>
>> Lee Hughes <lee@hughesys.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?
>

SELECT array(SELECT m FROM mytable m);

There was a thread about this recently about how this my apply in
insert/update situation.

merlin

В списке pgsql-general по дате отправления:

Предыдущее
От: "Rob Richardson"
Дата:
Сообщение: Slow database creation
Следующее
От: Andreas 'ads' Scherbaum
Дата:
Сообщение: Re: tablelog