Maksym Rymar created DRILL-8512:
-----------------------------------

             Summary: ReduceAndSimplifyFilterRule fails with 
NullPointerException
                 Key: DRILL-8512
                 URL: https://issues.apache.org/jira/browse/DRILL-8512
             Project: Apache Drill
          Issue Type: Bug
            Reporter: Maksym Rymar
            Assignee: Maksym Rymar


Drill fails to execute the following query:
{code:java}
SELECT *
FROM
(
SELECT
(CASE WHEN (true) THEN 'qwe' ELSE null END) res1
FROM (VALUES(1)) test_tbl
) test
where res1 IN ('ab','dab','qw','qwe') {code}
The exception:
{code:java}
Unexpected exception during fragment initialization: Error while applying rule 
ReduceAndSimplifyFilterRule, args 
[rel#760:LogicalFilter.NONE.ANY([]).[0](input=RelSubset#744,condition=SEARCH(CAST('qwe'):CHAR(3),
 Sarg['ab':CHAR(3), 'dab', 'qw':CHAR(3), 'qwe']:CHAR(3)))]
    org.apache.drill.exec.work.foreman.Foreman.run():303
    java.util.concurrent.ThreadPoolExecutor.runWorker():1128
    java.util.concurrent.ThreadPoolExecutor$Worker.run():628
    java.lang.Thread.run():829
  Caused By (java.lang.RuntimeException) Error while applying rule 
ReduceAndSimplifyFilterRule, args 
[rel#760:LogicalFilter.NONE.ANY([]).[0](input=RelSubset#744,condition=SEARCH(CAST('qwe'):CHAR(3),
 Sarg['ab':CHAR(3), 'dab', 'qw':CHAR(3), 'qwe']:CHAR(3)))]
    org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch():250
    org.apache.calcite.plan.volcano.IterativeRuleDriver.drive():59
    org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp():523
    org.apache.calcite.tools.Programs$RuleSetProgram.run():317
    org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():405
    org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():351
    
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRawDrel():245
    
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel():308
    org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():176
    org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan():298
    org.apache.drill.exec.planner.sql.DrillSqlWorker.getPhysicalPlan():179
    org.apache.drill.exec.planner.sql.DrillSqlWorker.convertPlan():129
    org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():94
    org.apache.drill.exec.work.foreman.Foreman.runSQL():597
    org.apache.drill.exec.work.foreman.Foreman.run():276
    java.util.concurrent.ThreadPoolExecutor.runWorker():1128
    java.util.concurrent.ThreadPoolExecutor$Worker.run():628
    java.lang.Thread.run():829
  Caused By (java.lang.NullPointerException) null
    org.apache.calcite.rex.RexUtil.lambda$sargRef$1():633
    com.google.common.collect.ImmutableList.forEach():422
    com.google.common.collect.RegularImmutableSortedSet.forEach():89
    org.apache.calcite.rex.RexUtil.sargRef():630
    org.apache.calcite.rex.RexUtil$SearchExpandingShuttle.visitCall():3143
    org.apache.calcite.rex.RexUtil$SearchExpandingShuttle.visitCall():3106
    org.apache.calcite.rex.RexCall.accept():189
    org.apache.calcite.rex.RexUtil.expandSearch():601
    org.apache.calcite.rex.RexUtil.expandSearch():594
    org.apache.drill.exec.planner.logical.DrillOptiq$RexToDrill.visitCall():277
    org.apache.drill.exec.planner.logical.DrillOptiq$RexToDrill.visitCall():120
    org.apache.calcite.rex.RexCall.accept():189
    org.apache.drill.exec.planner.logical.DrillOptiq.toDrill():112
    org.apache.drill.exec.planner.logical.DrillOptiq.toDrill():99
    org.apache.drill.exec.planner.logical.DrillConstExecutor.reduce():138
    
org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressionsInternal():771
    org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions():711
    
org.apache.calcite.rel.rules.ReduceExpressionsRule$FilterReduceExpressionsRule.onMatch():154
    
org.apache.drill.exec.planner.logical.ReduceAndSimplifyExpressionsRules$ReduceAndSimplifyFilterRule.onMatch():68
    org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch():223
    org.apache.calcite.plan.volcano.IterativeRuleDriver.drive():59
    org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp():523
    org.apache.calcite.tools.Programs$RuleSetProgram.run():317
    org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():405
    org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():351
    
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRawDrel():245
    
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel():308
    org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():176
    org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan():298
    org.apache.drill.exec.planner.sql.DrillSqlWorker.getPhysicalPlan():179
    org.apache.drill.exec.planner.sql.DrillSqlWorker.convertPlan():129
    org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():94
    org.apache.drill.exec.work.foreman.Foreman.runSQL():597
    org.apache.drill.exec.work.foreman.Foreman.run():276
    java.util.concurrent.ThreadPoolExecutor.runWorker():1128
    java.util.concurrent.ThreadPoolExecutor$Worker.run():628
    java.lang.Thread.run():829 {code}
 
 
 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to