|PostgreSQL Reference Manual - Volume 2 - Programming Guide|
by The PostgreSQL Global Development Group
Paperback (6"x9"), 408 pages
RRP £19.95 ($34.95)
Sales of this book support the PostgreSQL project! Get a printed copy>>>
22.214.171.124 RETURN NEXT
RETURN NEXT expression;
When a PL/pgSQL function is declared to return
SETOF sometype, the procedure
to follow is slightly different. In that case, the individual
items to return are specified in
commands, and then a final
with no argument is used to indicate that the function has
RETURN NEXT can be used
with both scalar and composite data types; with a composite result
type, an entire “table” of results will be returned.
RETURN NEXT does not actually return from the
function--it simply saves away the value of the expression.
Execution then continues with the next statement in
the PL/pgSQL function. As successive
RETURN NEXT commands are executed, the result
set is built up. A final
RETURN, which should
have no argument, causes control to exit the function (or you can
just let control reach the end of the function).
If you declared the function with output parameters, write just
RETURN NEXT with no expression. The current values
of the output parameter variable(s) will be saved for eventual return.
Note that you must declare the function as returning
SETOF record when there are
multiple output parameters, or
SETOF sometype when there is
just one output parameter of type sometype, in
order to create a set-returning function with output parameters.
Functions that use
RETURN NEXT should be
called in the following fashion:
SELECT * FROM some_func();
That is, the function must be used as a table source in a
Note: The current implementation of
RETURN NEXTfor PL/pgSQL stores the entire result set before returning from the function, as discussed above. That means that if a PL/pgSQL function produces a very large result set, performance may be poor: data will be written to disk to avoid memory exhaustion, but the function itself will not return until the entire result set has been generated. A future version of PL/pgSQL may allow users to define set-returning functions that do not have this limitation. Currently, the point at which data begins being written to disk is controlled by the
work_memconfiguration variable. Administrators who have sufficient memory to store larger result sets in memory should consider increasing this parameter.
|ISBN 0954612035||PostgreSQL Reference Manual - Volume 2 - Programming Guide||See the print edition|