Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
v1.0
Description
The following query on test dataset produces a result set containing 5 rows.
select test_cal_dt.week_beg_dt, sum(price) as GMV from test_kylin_fact inner JOIN edw.test_cal_dt as test_cal_dt ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt where test_cal_dt.week_beg_dt between DATE '2013-09-01' and DATE '2013-10-01' and lstg_format_name='FP-GTC' group by test_cal_dt.week_beg_dt
However, if I change the where condition to the following, Kylin produces empty result. This is wrong because `A or false` is just `A`, the result should be the same as above qeury.
where test_cal_dt.week_beg_dt between DATE '2013-09-01' and DATE '2013-10-01' and (lstg_format_name='FP-GTC' or 'a' = 'b')
I have tried to add a constant folding rule `ReduceExpressionsRule.FILTER_INSTANCE` from calcite, expecting planner to reduce the second query to the first one. But it didn't work. Seems the rule has bug in itself, see https://issues.apache.org/jira/browse/DRILL-2218.
As as result, we need more investigating to see why it goes wrong and fix the problem.
BTW, the second query may seems rediculous at first glance. But in fact this kind of query is generated by one of our reporting front-end.
Attachments
Attachments
Issue Links
- relates to
-
KYLIN-1047 Upgrade to Calcite 1.4
- Closed