[ https://issues.apache.org/jira/browse/DRILL-5683?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jinfeng Ni reassigned DRILL-5683: --------------------------------- Assignee: Jinfeng Ni > Incorrect query result when query uses NOT(IS NOT NULL) expression > ------------------------------------------------------------------- > > Key: DRILL-5683 > URL: https://issues.apache.org/jira/browse/DRILL-5683 > Project: Apache Drill > Issue Type: Bug > Reporter: Jinfeng Ni > Assignee: Jinfeng Ni > > The following repo was modified from a testcase provided by Arjun > Rajan(ara...@mapr.com). > 1. Prepare dataset with null. > {code} > create table dfs.tmp.t1 as > select r_regionkey, r_name, case when mod(r_regionkey, 3) > 0 then > mod(r_regionkey, 3) else null end as flag > from cp.`tpch/region.parquet`; > select * from dfs.tmp.t1; > +--------------+--------------+-------+ > | r_regionkey | r_name | flag | > +--------------+--------------+-------+ > | 0 | AFRICA | null | > | 1 | AMERICA | 1 | > | 2 | ASIA | 2 | > | 3 | EUROPE | null | > | 4 | MIDDLE EAST | 1 | > +--------------+--------------+-------+ > {code} > 2. Query with NOT(IS NOT NULL) expression in the filter. > {code} > select * from dfs.tmp.t1 where NOT (flag IS NOT NULL); > +--------------+---------+-------+ > | r_regionkey | r_name | flag | > +--------------+---------+-------+ > | 0 | AFRICA | null | > | 3 | EUROPE | null | > +--------------+---------+-------+ > {code} > 3. Switch run-time code compiler from default to 'JDK', and get wrong result. > {code} > alter system set `exec.java_compiler` = 'JDK'; > +-------+------------------------------+ > | ok | summary | > +-------+------------------------------+ > | true | exec.java_compiler updated. | > +-------+------------------------------+ > select * from dfs.tmp.t1 where NOT (flag IS NOT NULL); > +--------------+--------------+-------+ > | r_regionkey | r_name | flag | > +--------------+--------------+-------+ > | 0 | AFRICA | null | > | 1 | AMERICA | 1 | > | 2 | ASIA | 2 | > | 3 | EUROPE | null | > | 4 | MIDDLE EAST | 1 | > +--------------+--------------+-------+ > {code} > 4. Wrong result could happen too, when NOT(IS NOT NULL) in Project operator. > {code} > select r_regionkey, r_name, NOT(flag IS NOT NULL) as exp1 from dfs.tmp.t1; > +--------------+--------------+-------+ > | r_regionkey | r_name | exp1 | > +--------------+--------------+-------+ > | 0 | AFRICA | true | > | 1 | AMERICA | true | > | 2 | ASIA | true | > | 3 | EUROPE | true | > | 4 | MIDDLE EAST | true | > +--------------+--------------+-------+ > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)