PL/pgSQL doc: Add example for RETURN QUERY

Erwin Brandstetter and Pavel Stěhule
This commit is contained in:
Peter Eisentraut 2013-04-23 22:46:36 -04:00
parent 0c1a160a68
commit 4d67961110

View File

@ -1714,6 +1714,36 @@ SELECT * FROM get_all_foo();
</programlisting>
</para>
<para>
Here is an example of a function using <command>RETURN
QUERY</command>:
<programlisting>
CREATE FUNCTION get_available_flightid(date) RETURNS SETOF integer AS
$BODY$
BEGIN
RETURN QUERY SELECT flightid
FROM flight
WHERE flightdate >= $1
AND flightdate < ($1 + 1);
-- Since execution is not finished, we can check whether rows were returned
-- and raise exception if not.
IF NOT FOUND THEN
RAISE EXCEPTION 'No flight at %.', $1;
END IF;
RETURN;
END
$BODY$
LANGUAGE plpgsql;
-- Returns available flights or raises exception if there are no
-- available flights.
SELECT * FROM get_available_flightid(CURRENT_DATE);
</programlisting>
</para>
<note>
<para>
The current implementation of <command>RETURN NEXT</command>