9.18. Set Returning Functions

This section describes functions that possibly return more than one row. Currently the only functions in this class are series generating functions, as detailed in Table 9-39 .

Table 9-39. Series Generating Functions

Function Argument Type Return Type Description
generate_series ( start , stop ) int or bigint setof int or setof bigint (same as argument type) Generate a series of values, from start to stop with a step size of one
generate_series ( start , stop , step ) int or bigint setof int or setof bigint (same as argument type) Generate a series of values, from start to stop with a step size of step

When step is positive, zero rows are returned if start is greater than stop . Conversely, when step is negative, zero rows are returned if start is less than stop . Zero rows are also returned for NULL inputs. It is an error for step to be zero. Some examples follow:

select * from generate_series(2,4); generate_series ----------------- 2 3 4 (3 rows) select * from generate_series(5,1,-2); generate_series ----------------- 5 3 1 (3 rows) select * from generate_series(4,3); generate_series ----------------- (0 rows) select current_date + s.a as dates from generate_series(0,14,7) as s(a); dates ------------ 2004-02-05 2004-02-12 2004-02-19 (3 rows)