From: Bruce Momjian Date: Fri, 26 Oct 2007 01:11:09 +0000 (+0000) Subject: Add plpgsql doc example of RETURN NEXT. X-Git-Tag: REL9_0_0~4740 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=fa9eb3152ebb59fd7a79a2ae5125f3b8e138b894;p=pg-rex%2Fsyncrep.git Add plpgsql doc example of RETURN NEXT. Ulrich Kroener --- diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml index 70a0c4e6dc..4cbb9c4df5 100644 --- a/doc/src/sgml/plpgsql.sgml +++ b/doc/src/sgml/plpgsql.sgml @@ -1,4 +1,4 @@ - + <application>PL/pgSQL</application> - <acronym>SQL</acronym> Procedural Language @@ -1411,16 +1411,37 @@ RETURN QUERY query; - Functions that use RETURN NEXT or - RETURN QUERY should be called in the - following fashion: + Here is an example of a function using RETURN + NEXT: -SELECT * FROM some_func(); +CREATE TABLE foo (fooid INT, foosubid INT, fooname TEXT); +INSERT INTO foo VALUES (1, 2, 'three'); +INSERT INTO foo VALUES (4, 5, 'six'); + +CREATE OR REPLACE FUNCTION getAllFoo() RETURNS SETOF foo AS +$BODY$ +DECLARE + r foo%rowtype; +BEGIN + FOR r IN SELECT * FROM foo + WHERE fooid > 0 + LOOP + -- can do some processing here + RETURN NEXT r; -- return next row of SELECT + END LOOP; + RETURN; +END +$BODY$ +LANGUAGE 'plpgsql' ; + +SELECT * FROM getallfoo(); - That is, the function must be used as a table source in a - FROM clause. + Note that functions using RETURN NEXT or + RETURN QUERY must be called as a table source in + a FROM clause. +