[ https://issues.apache.org/jira/browse/DRILL-2852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14654375#comment-14654375 ]
ASF GitHub Bot commented on DRILL-2852: --------------------------------------- Github user jinfengni commented on a diff in the pull request: https://github.com/apache/drill/pull/103#discussion_r36244389 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/partition/FindPartitionConditions.java --- @@ -217,8 +218,21 @@ public Void visitCorrelVariable(RexCorrelVariable correlVariable) { } public Void visitCall(RexCall call) { - // assume PUSH until proven otherwise - analyzeCall(call, PushDirFilter.PUSH); + boolean visited = false; + // examine the input of a CAST function; this could be extended for + // other functions in the future. --- End diff -- +1 > CASTing the column 'dir0' in view causes partition pruning to fail > ------------------------------------------------------------------- > > Key: DRILL-2852 > URL: https://issues.apache.org/jira/browse/DRILL-2852 > Project: Apache Drill > Issue Type: Bug > Components: Query Planning & Optimization > Affects Versions: 0.8.0 > Reporter: Aman Sinha > Assignee: Jinfeng Ni > Fix For: 1.2.0 > > > If the partition column 'dir0' is CAST inside a view and the query has a > filter on that column, then partition pruning interpreter evaluator > encounters an AssertionError. > Table data in the example below is from test/resources/multilevel/parquet. > {code} > create view dfs.tmp.myview2 as select cast(dir0 as varchar(100)) as myyear, > dir1 as myquarter, o_totalprice from `multilevel/parquet` ; > select * from dfs.tmp.myview2 where myyear = '1995' and myquarter = 'Q2' and > o_totalprice < 40000.0; > {code} > Failure stack trace: > {code} > Caused by: java.lang.AssertionError: Internal error: Error while applying > rule PruneScanRule:Filter_On_Project, > ... > <skip> > Caused by: java.lang.AssertionError: null > at > org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator$EvalVisitor.isBitOn(InterpreterEvaluator.java:490) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator$EvalVisitor.visitBooleanAnd(InterpreterEvaluator.java:434) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator$EvalVisitor.visitBooleanOperator(InterpreterEvaluator.java:332) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator$EvalVisitor.visitBooleanOperator(InterpreterEvaluator.java:147) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.common.expression.BooleanOperator.accept(BooleanOperator.java:36) > ~[drill-common-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator.evaluate(InterpreterEvaluator.java:80) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.planner.logical.partition.PruneScanRule.doOnMatch(PruneScanRule.java:224) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)