[ 
https://issues.apache.org/jira/browse/CALCITE-3218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde updated CALCITE-3218:
---------------------------------
    Description: 
Syntax error while parsing the {{DATEADD}} function:
{code:java}
SELECT 
        DATE(CONVERT_TIMEZONE('UTC', 'America/Los_Angeles', events.event_date 
)) AS "events.event_date",
        COALESCE(SUM(events.daily_user_count ), 0) AS 
"events.daily_active_users",
        COALESCE(SUM(events.monthly_user_count ), 0) AS 
"events.monthly_active_users"
FROM public.events_proto  AS events

WHERE 
        (((events.event_date ) >= ((CONVERT_TIMEZONE('America/Los_Angeles', 
'UTC', DATEADD(day,-364, DATE_TRUNC('day',CONVERT_TIMEZONE('UTC', 
'America/Los_Angeles', GETDATE())) )))) AND (events.event_date ) < 
((CONVERT_TIMEZONE('America/Los_Angeles', 'UTC', DATEADD(day,365, 
DATEADD(day,-364, DATE_TRUNC('day',CONVERT_TIMEZONE('UTC', 
'America/Los_Angeles', GETDATE())) ) ))))))
GROUP BY 1
HAVING 
        NOT (COALESCE(SUM(events.monthly_user_count ), 0) = 0)
ORDER BY 1 DESC
LIMIT 500{code}

throws 
{noformat}
`Column 'year' not found in any table`
`DATEADD(year,1,...`
{noformat}

This query is valid on Redshift. Redshift's parser understands that the first 
argument ({{DAY}}) is intended to be a time unit, not an identifier.

  was:
Syntax error while parsing DATEADD
{code:java}
SELECT 
        DATE(CONVERT_TIMEZONE('UTC', 'America/Los_Angeles', events.event_date 
)) AS "events.event_date",
        COALESCE(SUM(events.daily_user_count ), 0) AS 
"events.daily_active_users",
        COALESCE(SUM(events.monthly_user_count ), 0) AS 
"events.monthly_active_users"
FROM public.events_proto  AS events

WHERE 
        (((events.event_date ) >= ((CONVERT_TIMEZONE('America/Los_Angeles', 
'UTC', DATEADD(day,-364, DATE_TRUNC('day',CONVERT_TIMEZONE('UTC', 
'America/Los_Angeles', GETDATE())) )))) AND (events.event_date ) < 
((CONVERT_TIMEZONE('America/Los_Angeles', 'UTC', DATEADD(day,365, 
DATEADD(day,-364, DATE_TRUNC('day',CONVERT_TIMEZONE('UTC', 
'America/Los_Angeles', GETDATE())) ) ))))))
GROUP BY 1
HAVING 
        NOT (COALESCE(SUM(events.monthly_user_count ), 0) = 0)
ORDER BY 1 DESC
LIMIT 500{code}
 
{code:java}
`Column 'year' not found in any table`
`DATEADD(year,1,...`
{code}


> Syntax error while parsing DATEADD function (which is valid on Redshift)
> ------------------------------------------------------------------------
>
>                 Key: CALCITE-3218
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3218
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Lindsey Meyer
>            Assignee: Julian Hyde
>            Priority: Major
>
> Syntax error while parsing the {{DATEADD}} function:
> {code:java}
> SELECT 
>       DATE(CONVERT_TIMEZONE('UTC', 'America/Los_Angeles', events.event_date 
> )) AS "events.event_date",
>       COALESCE(SUM(events.daily_user_count ), 0) AS 
> "events.daily_active_users",
>       COALESCE(SUM(events.monthly_user_count ), 0) AS 
> "events.monthly_active_users"
> FROM public.events_proto  AS events
> WHERE 
>       (((events.event_date ) >= ((CONVERT_TIMEZONE('America/Los_Angeles', 
> 'UTC', DATEADD(day,-364, DATE_TRUNC('day',CONVERT_TIMEZONE('UTC', 
> 'America/Los_Angeles', GETDATE())) )))) AND (events.event_date ) < 
> ((CONVERT_TIMEZONE('America/Los_Angeles', 'UTC', DATEADD(day,365, 
> DATEADD(day,-364, DATE_TRUNC('day',CONVERT_TIMEZONE('UTC', 
> 'America/Los_Angeles', GETDATE())) ) ))))))
> GROUP BY 1
> HAVING 
>       NOT (COALESCE(SUM(events.monthly_user_count ), 0) = 0)
> ORDER BY 1 DESC
> LIMIT 500{code}
> throws 
> {noformat}
> `Column 'year' not found in any table`
> `DATEADD(year,1,...`
> {noformat}
> This query is valid on Redshift. Redshift's parser understands that the first 
> argument ({{DAY}}) is intended to be a time unit, not an identifier.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to