plpgsql 関数本体と関数呼び出しに LIMIT と OFFSET を追加することに違いがあるかどうか疑問に思っています。
CREATE FUNCTION test ()
RETURNS record AS
$body$
DECLARE
BEGIN
select * from producent order by id limit 5 offset 10;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER;
CREATE FUNCTION test1 ()
RETURNS record AS
$body$
DECLARE
BEGIN
select * from producent order by id;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER;
どちらがより速くなります:
select * from test();
また
select * from test1() limit 5 offset 10;