PostgreSQL 8.3.1 Documentation
Prev | Fast Backward | Chapter 9. Functions and Operators | Fast Forward | Next

# 9.21. 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-43.

Table 9-43. 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)

Prev | Home | Next
Row and Array Comparisons | Up | System Information Functions