7 марта 2011 г. 22:56 пользователь Dmitry E. Oboukhov
<unera@debian.org> написал:
DI> Используйте SELECT * FROM foo();
в приведенном примере SELECT foo() работает,
а вот про
SELECT * FROM foo()
говорит ошибка:
ERROR: a column definition list is required for functions returning "record"
SELECT * FROM foo()
^
понятное дело что определить column definition list заранее я не могу,
поскольку дочерние таблицы - разные.
и как быть?
Так псевдотип RECORD по своей сути не имеет предопределённой структуры,
то необходимо явно её указывать (включая точный тип данных каждого столбца)
в момент выборки.
Можно использовать hstore, который, начиная с 9.0,
может конструироваться из RECORD.
DI> Если функции quote_ident(), quote_literal() и quote_nullable(). Первая
DI> принимает в кач-ве аргумента только текст, а вторая и третья перегружены.
DI> Проверьте аргумент какого типа Вы указываете при вызове.
ага поставил ::text и заработало, спасибо!
--
. ''`. 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.