Например, enum_range() возвращает одну строку с массивом типа:
{'Yes','No'}. А я хочу конвертировать этот результат в две строки:
Yes
No
Без этого использовать тип enum и массивы вообще - не очень удобно.
Не подскажете типовое решение этой задачи?
CREATE OR REPLACE FUNCTION
Что-то не выходит каменный цветок :(
SELECT enum_range(null::tt_office);
"{Самара,Тольятти,Краснодар,Все}"
А если:
SELECT arr_to_table(enum_range(null::tt_office));
ERROR: invalid input syntax for type boolean: "4"
CONTEXT: PL/pgSQL function "arr_to_table" line 6 at IF
********** Ошибка **********
ERROR: invalid input syntax for type boolean: "4"
SQL state: 22P02
Контекст:PL/pgSQL function "arr_to_table" line 6 at IF
AltLinux
# rpm -qa | grep postgresql
postgresql8.3-8.3.5-alt0.M41.1
что я делаю не так?
Отвечаю сам себе
Нашел кривой, но рабочий способ:
Нашел наконец-то правильный ответ!
http://gray-hemp.blogspot.com/2009/02/enum.html
Вопрос: Дан ENUM, Есть ли такой запрос, который выведет список всех элементов, допустимых этим ENUM-ом?
Ответ: Да.