Re: Convert Arbitrary Table to Array?

Поиск
Список
Период
Сортировка
От Harald Fuchs
Тема Re: Convert Arbitrary Table to Array?
Дата
Msg-id puy6wfjosv.fsf@srv.protecting.net
обсуждение исходный текст
Ответ на Convert Arbitrary Table to Array?  (Lee Hughes <lee@hughesys.com>)
Ответы Re: Convert Arbitrary Table to Array?  (Merlin Moncure <mmoncure@gmail.com>)
Список pgsql-general
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?

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

Предыдущее
От: Stephen Frost
Дата:
Сообщение: Re: Out of memory on SELECT in 8.3.5
Следующее
От: SHARMILA JOTHIRAJAH
Дата:
Сообщение: ora2pg or dbi_link ?