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> -------------------------------------------------
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.
ага, будем глядеть. тут еще интересный вопрос: есть ли поддержка прозрачного преобразования хешей в запросы и результатов в хеши на уровне драйвера DBD::Pg. С массивами-то оно есть, а вот например составные типы он так строками и оставляет. а если парсить каждую выборку, получается лучше на массивах и остаться
Это, я так понимаю, вопрос про библиотеку Perl ? К сожалению, здесь я Вам не помогу.
DI> PS. В данном случае возможно преобразовать столбец DI> h из типа text[][] в hstore.