[
https://issues.apache.org/jira/browse/DRILL-6905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anton Gozhiy updated DRILL-6905:
--------------------------------
Description:
*Query:*
{code:sql}
select * from cp.`tpch/nation.parquet` where n_nationkey < 5 or n_nationkey =
'10'
{code}
*Expected result:*
The query should run successfully.
*Actual result:*
ClassCastException happens
{noformat}
SYSTEM ERROR: ClassCastException: java.math.BigDecimal cannot be cast to
org.apache.calcite.util.NlsString
Please, refer to logs for more information.
(org.apache.drill.exec.work.foreman.ForemanException) Unexpected exception
during fragment initialization: Error while applying rule
ReduceExpressionsRule(Filter), args
[rel#565783:LogicalFilter.NONE.ANY([]).[](input=rel#565782:Subset#0.ENUMERABLE.ANY([]).[],condition=OR(<($1,
5), =($1, '10')))]
org.apache.drill.exec.work.foreman.Foreman.run():300
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
Caused By (java.lang.RuntimeException) Error while applying rule
ReduceExpressionsRule(Filter), args
[rel#565783:LogicalFilter.NONE.ANY([]).[](input=rel#565782:Subset#0.ENUMERABLE.ANY([]).[],condition=OR(<($1,
5), =($1, '10')))]
org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch():236
org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp():648
org.apache.calcite.tools.Programs$RuleSetProgram.run():339
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():431
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():371
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRawDrel():251
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel():320
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():177
org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan():155
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():81
org.apache.drill.exec.work.foreman.Foreman.runSQL():584
org.apache.drill.exec.work.foreman.Foreman.run():272
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
Caused By (java.lang.ClassCastException) java.math.BigDecimal cannot be cast
to org.apache.calcite.util.NlsString
org.apache.calcite.util.NlsString.compareTo():122
com.google.common.collect.Range.compareOrThrow():672
com.google.common.collect.Cut.compareTo():79
com.google.common.collect.Range.encloses():497
org.apache.calcite.rex.RexSimplify.residue():1037
org.apache.calcite.rex.RexSimplify.simplifyUsingPredicates():979
org.apache.calcite.rex.RexSimplify.simplifyComparison():288
org.apache.calcite.rex.RexSimplify.simplifyComparison():218
org.apache.calcite.rex.RexSimplify.simplify_():209
org.apache.calcite.rex.RexSimplify.lambda$simplify$0():175
org.apache.calcite.rex.RexSimplify.verify():1097
org.apache.calcite.rex.RexSimplify.simplify():175
org.apache.calcite.rex.RexSimplify.simplifyOrTerms():346
org.apache.calcite.rex.RexSimplify.simplifyOr():1058
org.apache.calcite.rex.RexSimplify.simplify_():183
org.apache.calcite.rex.RexSimplify.lambda$simplify$0():175
org.apache.calcite.rex.RexSimplify.verify():1097
org.apache.calcite.rex.RexSimplify.simplify():175
org.apache.calcite.rex.RexUtil$ExprSimplifier.visitCall():2607
org.apache.calcite.rex.RexUtil$ExprSimplifier.visitCall():2567
org.apache.calcite.rex.RexCall.accept():107
org.apache.calcite.rex.RexShuttle.apply():279
org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions():547
org.apache.calcite.rel.rules.ReduceExpressionsRule$FilterReduceExpressionsRule.onMatch():163
org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch():212
org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp():648
org.apache.calcite.tools.Programs$RuleSetProgram.run():339
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():431
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():371
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRawDrel():251
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel():320
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():177
org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan():155
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():81
org.apache.drill.exec.work.foreman.Foreman.runSQL():584
org.apache.drill.exec.work.foreman.Foreman.run():272
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
{noformat}
was:
*Query:*
{code:sql}
select * from cp.`tpch/nation.parquet` where n_nationkey < 5 or n_nationkey =
'10'
{code}
*Expected result:*
The query should run successfully.
*Actual result:*
ClassCastException happens
{noformat}
org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR:
ClassCastException Please, refer to logs for more information. [Error Id:
6651eab4-2efe-4275-8816-71e306396d51 on node1.cluster.com:31010]
(org.apache.drill.exec.work.foreman.ForemanException) Unexpected exception
during fragment initialization: Error while applying rule
ReduceExpressionsRule(Filter), args
[rel#566080:LogicalFilter.NONE.ANY([]).[](input=rel#566079:Subset#0.ENUMERABLE.ANY([]).[],condition=OR(<($1,
5), =($1, '10')))] org.apache.drill.exec.work.foreman.Foreman.run():300
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748 Caused By (java.lang.RuntimeException) Error while
applying rule ReduceExpressionsRule(Filter), args
[rel#566080:LogicalFilter.NONE.ANY([]).[](input=rel#566079:Subset#0.ENUMERABLE.ANY([]).[],condition=OR(<($1,
5), =($1, '10')))]
org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch():236
org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp():648
org.apache.calcite.tools.Programs$RuleSetProgram.run():339
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():431
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():371
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRawDrel():251
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel():320
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():177
org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan():155
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():81
org.apache.drill.exec.work.foreman.Foreman.runSQL():584
org.apache.drill.exec.work.foreman.Foreman.run():272
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748 Caused By (java.lang.ClassCastException) null
{noformat}
> ClassCastException happens when combining filters with numeric and varchar
> literals
> -----------------------------------------------------------------------------------
>
> Key: DRILL-6905
> URL: https://issues.apache.org/jira/browse/DRILL-6905
> Project: Apache Drill
> Issue Type: Bug
> Affects Versions: 1.14.0
> Reporter: Anton Gozhiy
> Priority: Major
>
> *Query:*
> {code:sql}
> select * from cp.`tpch/nation.parquet` where n_nationkey < 5 or n_nationkey =
> '10'
> {code}
> *Expected result:*
> The query should run successfully.
> *Actual result:*
> ClassCastException happens
> {noformat}
> SYSTEM ERROR: ClassCastException: java.math.BigDecimal cannot be cast to
> org.apache.calcite.util.NlsString
> Please, refer to logs for more information.
> (org.apache.drill.exec.work.foreman.ForemanException) Unexpected exception
> during fragment initialization: Error while applying rule
> ReduceExpressionsRule(Filter), args
> [rel#565783:LogicalFilter.NONE.ANY([]).[](input=rel#565782:Subset#0.ENUMERABLE.ANY([]).[],condition=OR(<($1,
> 5), =($1, '10')))]
> org.apache.drill.exec.work.foreman.Foreman.run():300
> java.util.concurrent.ThreadPoolExecutor.runWorker():1149
> java.util.concurrent.ThreadPoolExecutor$Worker.run():624
> java.lang.Thread.run():748
> Caused By (java.lang.RuntimeException) Error while applying rule
> ReduceExpressionsRule(Filter), args
> [rel#565783:LogicalFilter.NONE.ANY([]).[](input=rel#565782:Subset#0.ENUMERABLE.ANY([]).[],condition=OR(<($1,
> 5), =($1, '10')))]
> org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch():236
> org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp():648
> org.apache.calcite.tools.Programs$RuleSetProgram.run():339
>
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():431
>
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():371
>
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRawDrel():251
>
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel():320
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():177
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan():155
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():81
> org.apache.drill.exec.work.foreman.Foreman.runSQL():584
> org.apache.drill.exec.work.foreman.Foreman.run():272
> java.util.concurrent.ThreadPoolExecutor.runWorker():1149
> java.util.concurrent.ThreadPoolExecutor$Worker.run():624
> java.lang.Thread.run():748
> Caused By (java.lang.ClassCastException) java.math.BigDecimal cannot be
> cast to org.apache.calcite.util.NlsString
> org.apache.calcite.util.NlsString.compareTo():122
> com.google.common.collect.Range.compareOrThrow():672
> com.google.common.collect.Cut.compareTo():79
> com.google.common.collect.Range.encloses():497
> org.apache.calcite.rex.RexSimplify.residue():1037
> org.apache.calcite.rex.RexSimplify.simplifyUsingPredicates():979
> org.apache.calcite.rex.RexSimplify.simplifyComparison():288
> org.apache.calcite.rex.RexSimplify.simplifyComparison():218
> org.apache.calcite.rex.RexSimplify.simplify_():209
> org.apache.calcite.rex.RexSimplify.lambda$simplify$0():175
> org.apache.calcite.rex.RexSimplify.verify():1097
> org.apache.calcite.rex.RexSimplify.simplify():175
> org.apache.calcite.rex.RexSimplify.simplifyOrTerms():346
> org.apache.calcite.rex.RexSimplify.simplifyOr():1058
> org.apache.calcite.rex.RexSimplify.simplify_():183
> org.apache.calcite.rex.RexSimplify.lambda$simplify$0():175
> org.apache.calcite.rex.RexSimplify.verify():1097
> org.apache.calcite.rex.RexSimplify.simplify():175
> org.apache.calcite.rex.RexUtil$ExprSimplifier.visitCall():2607
> org.apache.calcite.rex.RexUtil$ExprSimplifier.visitCall():2567
> org.apache.calcite.rex.RexCall.accept():107
> org.apache.calcite.rex.RexShuttle.apply():279
> org.apache.calcite.rel.rules.ReduceExpressionsRule.reduceExpressions():547
>
> org.apache.calcite.rel.rules.ReduceExpressionsRule$FilterReduceExpressionsRule.onMatch():163
> org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch():212
> org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp():648
> org.apache.calcite.tools.Programs$RuleSetProgram.run():339
>
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():431
>
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform():371
>
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToRawDrel():251
>
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel():320
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():177
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan():155
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():81
> org.apache.drill.exec.work.foreman.Foreman.runSQL():584
> org.apache.drill.exec.work.foreman.Foreman.run():272
> java.util.concurrent.ThreadPoolExecutor.runWorker():1149
> java.util.concurrent.ThreadPoolExecutor$Worker.run():624
> java.lang.Thread.run():748
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)