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

From: Dmitriy Igrishin <dmitigr(at)gmail(dot)com>
To: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: [pgsql-ru-general] аггреггирование в массив с именами столбиков
Date: 2011-03-05 20:14:37
Message-ID: AANLkTim7tHEjQsu=v6zB8aLFempf5qQ8rRGAVxbeyA_U@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

5 марта 2011 г. 23:07 пользователь Dmitry E. Oboukhov <unera(at)debian(dot)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(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
> `. `~’ GPGKey: 1024D / F8E26537 2006-11-21
> `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
>

--
// Dmitriy.

In response to

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2011-03-05 20:25:42 Re: аггреггирование в массив с именами столбиков
Previous Message Serguei Mokhov 2011-03-05 20:12:05 Re: Pg documentation in russian