From: | "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org> |
---|---|
To: | Dmitriy Igrishin <dmitigr(at)gmail(dot)com> |
Cc: | pgsql-ru-general(at)postgresql(dot)org |
Subject: | Re: аггреггирование в массив с именами столбиков |
Date: | 2011-03-05 20:07:46 |
Message-ID: | 20110305200745.GC21363@apache.rbscorp.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ru-general |
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 доступно?
DI> Надеюсь, суть ясна.
DI> Подробности здесь - http://www.postgresql.org/docs/9.0/static/hstore.html
ага, будем глядеть. тут еще интересный вопрос: есть ли поддержка
прозрачного преобразования хешей в запросы и результатов в хеши на
уровне драйвера DBD::Pg. С массивами-то оно есть, а вот например
составные типы он так строками и оставляет. а если парсить каждую
выборку, получается лучше на массивах и остаться
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
From | Date | Subject | |
---|---|---|---|
Next Message | Serguei Mokhov | 2011-03-05 20:12:05 | Re: Pg documentation in russian |
Previous Message | Dmitriy Igrishin | 2011-03-05 19:40:27 | Re: [pgsql-ru-general] аггреггирование в массив с именами столбиков |