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)