Я пытаюсь вернуть конструктор строки из функции PL / pgSQL, но происходит сбой со следующей ошибкой: Возвращенная запись типа не соответствует ожидаемому целому числу типа в столбце 1
Вот упрощенная версия спростая функция SQL в качестве сравнения.Функция SQL работает нормально, функция PL / pgSQL выдает следующую ошибку.Что мне здесь не хватает?
Функции тестирования
CREATE FUNCTION test_sql()
RETURNS TABLE (
a int,
b int
)
LANGUAGE SQL
IMMUTABLE
AS $$
SELECT (1, 1);
$$;
CREATE FUNCTION test_plpgsql()
RETURNS TABLE (
a int,
b int
)
LANGUAGE plpgsql
IMMUTABLE
AS $$
BEGIN
RETURN QUERY SELECT (1, 1);
END;
$$;
SELECT * FROM test_sql(); -- OK
SELECT * FROM test_plpgsql(); --error
Сообщение об ошибке
[42804] ERROR: structure of query does not match function result type
Detail: Returned type record does not match expected type integer in column 1.
Where: PL/pgSQL function test_plpgsql() line 3 at RETURN QUERY