Как уже отмечали другие, это неверный синтаксис.
Однако, когда вы создаете функцию, фактический код функции («тело») передается в виде строки и не анализируется той частью, которая проверяет базовый синтаксис create function
. Эта строка передается «языку», который указан для дальнейшей проверки.
Параметр конфигурации check_function_bodies
определяет, выполняется ли эта проверка при создании функции.
Если установлено значение off
, тело не проверяется, и create function()
успешно выполняется, даже если тело недопустимо.
Итак, следующее успешно создает функцию:
set check_function_bodies=off;
create function invalid()
returns void
as
$$
begin
update foo.bar = 'this is so wrong';
end;
$$
language plpgsql;
Я думаю, код функции, который вы видите в этой базе данных, был создан таким образом.
Допустимым вариантом использования для этого является создание функций, которые зависят друг от друга, без необходимости думать о порядке, в котором они должны быть созданы.