я создаю функцию в инструменте запроса PgAdmin, который возвращает таблицу с одним столбцом:Postgres функция теряет имена столбцов
create or replace function test_function()
returns table(a integer) as
...
Когда я выполнить запрос, я получаю сообщение об успешном завершении и могу увидеть добавлена функция к списку, но определение хранится как:
create or replace function test_function()
returns setof integer as
...
Это, похоже, происходит только при возврате одной колонки. Это вызывает у меня проблемы, потому что, если я хочу, чтобы создать такое заявление:
select t.a from test_function();
Я не могу, имя столбца принимает на странное название, и я получаю сообщение об ошибке, что тип возвращаемого значения не имеет столбец с. Как заставить это вернуть таблицу?
Странно, это может быть некоторая ошибка pgAdmin ... для обходного пути вы можете указать имена выходных столбцов с параметрами (именами) с именем 'OUT' http://sqlfiddle.com/#!15/82074/4 – pozs
@ pozs благодарит, что делает трюк. Я нашел отчет об ошибке здесь http://www.postgresql.org/message-id/[email protected] , но это было давно, и обновление до последней версии не помогает. – Mike
Вызывает ли 'pg_get_function_def()' неверная информация? –