[ 
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)

Reply via email to