Summary
generate_series is a PostgreSQL built-in function in the Date/Time Functions group. PostgreSQL’s system catalog (pg_proc) describes it as: “non-persistent series generator”.
Signature
generate_series has 9 documented overloaded forms:
generate_series(integer, integer, integer) → setof integer
generate_series(integer, integer) → setof integer
generate_series(bigint, bigint, bigint) → setof bigint
generate_series(bigint, bigint) → setof bigint
generate_series(numeric, numeric, numeric) → setof numeric
generate_series(numeric, numeric) → setof numeric
generate_series(timestamp, timestamp, interval) → setof timestamp
generate_series(timestamp with time zone, timestamp with time zone, interval) → setof timestamp with time zone
generate_series(timestamp with time zone, timestamp with time zone, interval, text) → setof timestamp with time zone
Argument and return types are taken from the pg_proc catalog; internal type names are shown using their readable SQL spellings (for example int4 is shown as integer). (Derived from the catalog — see the linked reference for the canonical documentation.)
Classification
- Category: Date/Time Functions
- Kind: Function
- Volatility: IMMUTABLE — Marked IMMUTABLE — it always returns the same result for the same arguments and can be used in indexes and other contexts that require immutability.
- Returns:
bigint, integer, numeric, timestamp, timestamp with time zone(set-returning)
Example
Illustrative form (replace placeholder values with your own data):
SELECT * FROM generate_series(42, 42, 42);
The example above is illustrative and is meant to show calling syntax only; consult the linked PostgreSQL documentation for exact semantics, edge cases and accepted argument combinations.
Version applicability
generate_series is present across the surveyed releases (PostgreSQL 15, 16, 17, 18, 19). On older major versions, behaviour may differ in detail — always check the documentation for the version you run.
Related & references
Reference: PostgreSQL documentation — Date/Time Functions.