Rahul Challapalli created DRILL-4269:
----------------------------------------

             Summary: Using -(-1999) in a filter gives NPE
                 Key: DRILL-4269
                 URL: https://issues.apache.org/jira/browse/DRILL-4269
             Project: Apache Drill
          Issue Type: Bug
          Components: Execution - Flow, Query Planning & Optimization
    Affects Versions: 1.4.0
            Reporter: Rahul Challapalli


The below query give rise to an NPE

{code}
select l_orderkey, l_partkey, l_quantity, l_shipdate, l_shipinstruct, dir0, 
dir1 from cp.`tpch/lineitem.parquet` where l_orderkey = -(-1993);
Error: SYSTEM ERROR: NullPointerException
{code}

Error from the logs
{code}
2016-01-13 17:59:27,074 [29696f81-35fc-a422-f9e2-a08d5c001192:foreman] ERROR 
o.a.drill.exec.work.foreman.Foreman - SYSTEM ERROR: NullPointerException


[Error Id: c6001655-6e29-4b4c-9c1a-0c9b0c1152c3 on qa-node191.qa.lab:31010]
org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: 
NullPointerException

[Error Id: c6001655-6e29-4b4c-9c1a-0c9b0c1152c3 on qa-node191.qa.lab:31010]
        at 
org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:534)
 ~[drill-common-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.work.foreman.Foreman$ForemanResult.close(Foreman.java:742)
 [drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.work.foreman.Foreman$StateSwitch.processEvent(Foreman.java:841)
 [drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.work.foreman.Foreman$StateSwitch.processEvent(Foreman.java:786)
 [drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.common.EventProcessor.sendEvent(EventProcessor.java:73) 
[drill-common-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.work.foreman.Foreman$StateSwitch.moveToState(Foreman.java:788)
 [drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.work.foreman.Foreman.moveToState(Foreman.java:894) 
[drill-java-exec-1.4.0.jar:1.4.0]
        at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:255) 
[drill-java-exec-1.4.0.jar:1.4.0]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_71]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_71]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
Caused by: org.apache.drill.exec.work.foreman.ForemanException: Unexpected 
exception during fragment initialization: Internal error: Error while applying 
rule DrillReduceExpressionsRule(Filter), args 
[rel#702:LogicalFilter.NONE.ANY([]).[](input=rel#701:Subset#3.NONE.ANY([]).[],condition==($0,
 -(-1993)))]
        ... 4 common frames omitted
Caused by: java.lang.AssertionError: Internal error: Error while applying rule 
DrillReduceExpressionsRule(Filter), args 
[rel#702:LogicalFilter.NONE.ANY([]).[](input=rel#701:Subset#3.NONE.ANY([]).[],condition==($0,
 -(-1993)))]
        at org.apache.calcite.util.Util.newInternal(Util.java:792) 
~[calcite-core-1.4.0-drill-1.4.0-mapr-r1.jar:1.4.0-drill-1.4.0-mapr-r1]
        at 
org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:251)
 ~[calcite-core-1.4.0-drill-1.4.0-mapr-r1.jar:1.4.0-drill-1.4.0-mapr-r1]
        at 
org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:808)
 ~[calcite-core-1.4.0-drill-1.4.0-mapr-r1.jar:1.4.0-drill-1.4.0-mapr-r1]
        at 
org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:303) 
~[calcite-core-1.4.0-drill-1.4.0-mapr-r1.jar:1.4.0-drill-1.4.0-mapr-r1]
        at 
org.apache.calcite.prepare.PlannerImpl.transform(PlannerImpl.java:313) 
~[calcite-core-1.4.0-drill-1.4.0-mapr-r1.jar:1.4.0-drill-1.4.0-mapr-r1]
        at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.doLogicalPlanning(DefaultSqlHandler.java:562)
 ~[drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:230)
 ~[drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:263)
 ~[drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:172)
 ~[drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:218)
 ~[drill-java-exec-1.4.0.jar:1.4.0]
        at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:909) 
[drill-java-exec-1.4.0.jar:1.4.0]
        at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:244) 
[drill-java-exec-1.4.0.jar:1.4.0]
        ... 3 common frames omitted

Caused by: java.lang.NullPointerException: null
        at 
org.apache.drill.exec.planner.logical.DrillOptiq$RexToDrill.visitCall(DrillOptiq.java:131)
 ~[drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.planner.logical.DrillOptiq$RexToDrill.visitCall(DrillOptiq.java:79)
 ~[drill-java-exec-1.4.0.jar:1.4.0]
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:107) 
~[calcite-core-1.4.0-drill-1.4.0-mapr-r1.jar:1.4.0-drill-1.4.0-mapr-r1]
        at 
org.apache.drill.exec.planner.logical.DrillOptiq.toDrill(DrillOptiq.java:76) 
~[drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.drill.exec.planner.logical.DrillConstExecutor.reduce(DrillConstExecutor.java:162)
 ~[drill-java-exec-1.4.0.jar:1.4.0]
        at 
org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions(ReduceExpressionsRule.java:499)
 ~[calcite-core-1.4.0-drill-1.4.0-mapr-r1.jar:1.4.0-drill-1.4.0-mapr-r1]
        at 
org.apache.calcite.rel.rules.ReduceExpressionsRule$ReduceFilterRule.onMatch(ReduceExpressionsRule.java:134)
 ~[calcite-core-1.4.0-drill-1.4.0-mapr-r1.jar:1.4.0-drill-1.4.0-mapr-r1]
        at 
org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:228)
 ~[calcite-core-1.4.0-drill-1.4.0-mapr-r1.jar:1.4.0-drill-1.4.0-mapr-r1]
        ... 13 common frames omitted
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to