You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/02/03 17:28:00 UTC

[jira] [Work logged] (HIVE-25919) ClassCastException when pushing boolean column predicate in HBaseStorageHandler

     [ https://issues.apache.org/jira/browse/HIVE-25919?focusedWorklogId=720290&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-720290 ]

ASF GitHub Bot logged work on HIVE-25919:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 03/Feb/22 17:27
            Start Date: 03/Feb/22 17:27
    Worklog Time Spent: 10m 
      Work Description: zabetak opened a new pull request #2996:
URL: https://github.com/apache/hive/pull/2996


   ### What changes were proposed in this pull request?
   
   The predicate analyzer can only handle expressions of the form:
   1. `col comp_op constant`
   2. `constant comp_op col`
   and these are always `ExprNodeGenericFuncDesc`.
   
   The new if clause ensures that we are never going to handle anything that is not supported.
   
   ### Why are the changes needed?
   Avoids the `ClassCastException` during predicate pushdown.
   
   ### Does this PR introduce _any_ user-facing change?
   No apart from solving the problem.
   
   ### How was this patch tested?
   `mvn test -Dtest=TestHBaseCliDriver -Dqfile="hbase_ppd_boolean_cols.q"`


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@hive.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 720290)
    Remaining Estimate: 0h
            Time Spent: 10m

> ClassCastException when pushing boolean column predicate in HBaseStorageHandler
> -------------------------------------------------------------------------------
>
>                 Key: HIVE-25919
>                 URL: https://issues.apache.org/jira/browse/HIVE-25919
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Naresh P R
>            Assignee: Stamatis Zampetakis
>            Priority: Major
>         Attachments: test.q
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The following queries fail with a {{ClassCastException}} when the optimizer tries to push the predicates in the underlying HBase table.
> {code:sql}
> CREATE TABLE hbase_table(row_key string, c1 boolean, c2 boolean)
> STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
> WITH SERDEPROPERTIES (
> "hbase.columns.mapping" = ":key,cf:c1,cf:c2"
> );
> -- Q1
> select * from hbase_table where c1 and c2;
> -- Q2
> select * from hbase_table where c1=true and c2=true;
> {code}
> {code:java}
> ClassCastException org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc cannot be cast to org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc
> java.lang.ClassCastException: org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc cannot be cast to org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc
>         at org.apache.hadoop.hive.ql.index.IndexPredicateAnalyzer$1.process(IndexPredicateAnalyzer.java:163)
>         at org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90)
>         at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105)
>         at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89)
>         at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.walk(DefaultGraphWalker.java:178)
>         at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120)
>         at org.apache.hadoop.hive.ql.index.IndexPredicateAnalyzer.analyzePredicate(IndexPredicateAnalyzer.java:174)
>         at org.apache.hadoop.hive.hbase.HBaseStorageHandler.decomposePredicate(HBaseStorageHandler.java:415) 
> {code}
> mvn test -Dtest=TestHBaseCliDriver -Dqfile=test.q -Dtest.output.overwrite -DskipSparkTests -pl itests/qtest -Pitests
> The failure in Q2 is probably related to HIVE-13815 since the expression (c1 = true and c2 = true) is simplified to (c1 and c2) leading to the exception above but the problem was probably there even before as Q1 is failing as well with the same stacktrace.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)