## 9.25. Set Returning Functions []() This section describes functions that possibly return more than one row. The most widely used functions in this class are series generating functions, as detailed in [Table 9.63](functions-srf.html#FUNCTIONS-SRF-SERIES) and [Table 9.64](functions-srf.html#FUNCTIONS-SRF-SUBSCRIPTS). Other, more specialized set-returning functions are described elsewhere in this manual. See [Section 7.2.1.4](queries-table-expressions.html#QUERIES-TABLEFUNCTIONS) for ways to combine multiple set-returning functions. **Table 9.63. Series Generating Functions** | Function

Description | |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |[]() `generate_series` ( *`start`* `integer`, *`stop`* `integer` [, *`step`* `integer` ] ) → `setof integer`

`generate_series` ( *`start`* `bigint`, *`stop`* `bigint` [, *`step`* `bigint` ] ) → `setof bigint`

`generate_series` ( *`start`* `numeric`, *`stop`* `numeric` [, *`step`* `numeric` ] ) → `setof numeric`

Generates a series of values from *`start`* to *`stop`*, with a step size of *`step`*. *`step`* defaults to 1.| | `generate_series` ( *`start`* `timestamp`, *`stop`* `timestamp`, *`step`* `interval` ) → `setof timestamp`

`generate_series` ( *`start`* `timestamp with time zone`, *`stop`* `timestamp with time zone`, *`step`* `interval` ) → `setof timestamp with time zone`

Generates 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 if any input is `NULL`. It is an error for *`step`* to be zero. Some examples follow: ``` SELECT * FROM generate_series(2,4); generate_series