Hello, I am trying to pass a dynamic interval to generate_series() with date range.
This works as expected, and generates a series with an interval of 1 month: SELECT generate_series( date_trunc('month', current_date), date_trunc('month', current_date + interval '7 month'), interval '1 month' ) This works as expected and returns an interval of 1 month: SELECT ('1 ' || 'month')::interval; But this throws an error (SQL Error [42601]: ERROR: syntax error at or near "'1 '"): SELECT generate_series( date_trunc('month', current_date), date_trunc('month', current_date + interval '7 month'), interval ('1 ' || 'month')::interval ) And this returns a series with interval of 1 second?? SELECT generate_series( date_trunc('month', current_date), date_trunc('month', current_date + interval '7 month'), (interval '1 ' || 'month')::interval ) Because this returns an interval of 1 second: SELECT (interval '1 ' || 'month')::interval; Is that a bug? I am able to work around the issue using a CASE statement, but shouldn't it work simply by concatenating the string with the || operator? Thank you, Igal