[
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)