Gian Merlino created CALCITE-1658:
-------------------------------------
Summary: 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: Julian Hyde
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.3.15#6346)