У меня есть функция plpgsql func
, которая возвращает setof integer
.Теперь у меня есть другая функция func2
, которая должна вызывать и возвращать func
.Должен ли я использовать return next func()
или return query select func()
здесь?Есть ли разница в исполнении и производительности?Или я должен сделать что-то еще?
create function func2() returns setof integer as $$
begin
if true then -- logic omitted here
return next func();
-- return query select func();
end if;
end;
$$ language plpgsql;
Я знаю, что могу сохранить результат func()
в локальной объявленной переменной, но я не думаю, что это необходимо здесь.Поправь меня, если я ошибаюсь.
Я прочитал документацию и смог найти только return next
и return query select
в качестве альтернативы для возврата локальной объявленной переменной.Но мне не ясно, есть ли разница между этими двумя в этом случае, если таковые имеются.
Sidenote, return func()
не представляется возможным, что удивительно, исходя из фона в обычных процедурных языках(В основном C ++ и Java).