[ 
https://issues.apache.org/jira/browse/CALCITE-1658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16308678#comment-16308678
 ] 

Julian Hyde commented on CALCITE-1658:
--------------------------------------

If {{ExtractShuttle}} is used outside Calcite (I suspect that it is used in 
Hive) then we cannot accomplish this without a public API change. Given that, 
let's create a new, smaller public API. I have added a new method 
{{DateRangeRules#replaceTimeUnits}} which external projects and tests should 
use, and made {{ExtractShuttle}} and  {{DateRangeRules#extractTimeUnits}} 
package-protected again.

> DateRangeRules issues
> ---------------------
>
>                 Key: CALCITE-1658
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1658
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Gian Merlino
>            Assignee: Nishant Bangarwa
>
> Follow up to CALCITE-1601. In Druid's built in SQL module (not the Druid 
> adapter in Calcite), some unit tests fail when DateRangeRules.FILTER_INSTANCE 
> is enabled. These include the SQLs below. In all cases, the predicate was 
> incorrectly simplified to "false" and no Druid queries were made.
> Removing DateRangeRules from the planner causes the results to be correct.
> {code}
> SELECT COUNT(*) FROM druid.foo
> WHERE
>        (EXTRACT(YEAR FROM __time) = 2000 AND EXTRACT(MONTH FROM __time) IN 
> (2, 3, 5))
>     OR (EXTRACT(YEAR FROM __time) = 2001 AND EXTRACT(MONTH FROM __time) = 1)
> {code}
> {code}
> SELECT COUNT(*) FROM druid.foo
> WHERE
>   EXTRACT(YEAR FROM __time) IN (2000, 2001) AND (       (EXTRACT(YEAR FROM 
> __time) = 2000 AND EXTRACT(MONTH FROM __time) IN (2, 3, 5))
>     OR (EXTRACT(YEAR FROM __time) = 2001 AND EXTRACT(MONTH FROM __time) = 1)
>   )
> {code}
> {code}
> SELECT COUNT(*) FROM druid.foo
> WHERE
>   EXTRACT(YEAR FROM __time) <> 2000 AND (       (EXTRACT(YEAR FROM __time) = 
> 2000 AND EXTRACT(MONTH FROM __time) IN (2, 3, 5))
>     OR (EXTRACT(YEAR FROM __time) = 2001 AND EXTRACT(MONTH FROM __time) = 1)
>   )
> {code}
> {code}
> SELECT COUNT(*) FROM druid.foo
> WHERE
>   EXTRACT(MONTH FROM __time) IN (1, 2, 3, 5) AND (       (EXTRACT(YEAR FROM 
> __time) = 2000 AND EXTRACT(MONTH FROM __time) IN (2, 3, 5))
>     OR (EXTRACT(YEAR FROM __time) = 2001 AND EXTRACT(MONTH FROM __time) = 1)
>   )
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to