Re: [pgsql-ru-general] аггреггирование в массив с именами столбиков

Поиск
Список
Период
Сортировка
От Dmitriy Igrishin
Тема Re: [pgsql-ru-general] аггреггирование в массив с именами столбиков
Дата
Msg-id AANLkTim7tHEjQsu=v6zB8aLFempf5qQ8rRGAVxbeyA_U@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [pgsql-ru-general] аггреггирование в массив с именами столбиков  (Dmitriy Igrishin <dmitigr@gmail.com>)
Ответы Re: аггреггирование в массив с именами столбиков  ("Dmitry E. Oboukhov" <unera@debian.org>)
Список pgsql-ru-general


5 марта 2011 г. 23:07 пользователь Dmitry E. Oboukhov <unera@debian.org> написал:

DI> Речь идёт о полуструктурированных данных. Самое лучшее решение здесь -
DI> использование замечательного модуля hstore, например:
DI> dmitigr=> create table test (id serial not null, fname text, lname text);
DI> NOTICE:  CREATE TABLE will create implicit sequence "test_id_seq" for serial
DI> column "test.id: <http://test.id>"
DI> CREATE TABLE
DI> dmitigr=> insert into test(fname, lname) select 'dima', 'igrishin';
DI> INSERT 0 1
DI> dmitigr=> insert into test(fname, lname) select 'ivan', 'ivanov';
DI> INSERT 0 1
DI> dmitigr=> select hstore(test) from test;
DI> hstore
DI> -------------------------------------------------
"id"=>> "1", "fname"=>"dima", "lname"=>"igrishin"
"id"=>> "2", "fname"=>"ivan", "lname"=>"ivanov"
DI> (2 rows)

очень интересно. но у меня сходу не работает:

watcher_wwm=> select hstore(test) from test;
ERROR:  function hstore(test) does not exist
СТРОКА 1:select hstore(test) from test;
               ^
ПОДСКАЗКА:  No function matches the given name and
argument types. You might need to add explicit type
casts.


оно с какой версии Pg доступно?
Это доп. модуль. Его сначала необходимо установить.
Подробности здесь - http://www.postgresql.org/docs/9.0/static/contrib.html


DI> Надеюсь, суть ясна.

DI> Подробности здесь - http://www.postgresql.org/docs/9.0/static/hstore.html

ага, будем глядеть. тут еще интересный вопрос: есть ли поддержка
прозрачного преобразования хешей в запросы и результатов в хеши на
уровне драйвера DBD::Pg. С массивами-то оно есть, а вот например
составные типы он так строками и оставляет. а если парсить каждую
выборку, получается лучше на массивах и остаться
Это, я так понимаю, вопрос про библиотеку Perl ? К сожалению,
здесь я Вам не помогу.
 

DI> PS. В данном случае возможно преобразовать столбец
DI> h из типа text[][] в hstore.
--

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera@debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
 `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537



--
// Dmitriy.


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

Предыдущее
От: Serguei Mokhov
Дата:
Сообщение: Re: Pg documentation in russian
Следующее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Re: аггреггирование в массив с именами столбиков