pub fn unnest_generate_date_array_using_recursive_cte(
expr: Expression,
) -> Result<Expression>Expand description
Convert UNNEST(GENERATE_DATE_ARRAY(…)) to recursive CTE.
For dialects that don’t support GENERATE_DATE_ARRAY, this converts:
SELECT * FROM UNNEST(GENERATE_DATE_ARRAY('2024-01-01', '2024-01-31', INTERVAL 1 DAY)) AS d(date_value)To a recursive CTE:
WITH RECURSIVE _generated_dates(date_value) AS (
SELECT CAST('2024-01-01' AS DATE) AS date_value
UNION ALL
SELECT CAST(DATE_ADD(date_value, 1, DAY) AS DATE)
FROM _generated_dates
WHERE CAST(DATE_ADD(date_value, 1, DAY) AS DATE) <= CAST('2024-01-31' AS DATE)
)
SELECT date_value FROM _generated_datesReference: transforms.py:68-122