[ 
https://issues.apache.org/jira/browse/HIVE-12404?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15004173#comment-15004173
 ] 

Ashutosh Chauhan commented on HIVE-12404:
-----------------------------------------

Thats a valid argument. However, given that Hive has permitted these kind of 
operations historically, not supporting them for a particular file format will 
surprise user. Further, ORC already supports that as well, it throws exception 
only when a particular optimization is enabled. 
IMHO, in presence of such questionable semantics ORC should be defensive and 
should turn off ppd (which is what this patch does) and let upper layer do the 
evaluation of condition.

> Orc ppd throws exception if types don't match
> ---------------------------------------------
>
>                 Key: HIVE-12404
>                 URL: https://issues.apache.org/jira/browse/HIVE-12404
>             Project: Hive
>          Issue Type: Bug
>          Components: ORC
>    Affects Versions: 2.0.0
>            Reporter: Ashutosh Chauhan
>            Assignee: Ashutosh Chauhan
>         Attachments: HIVE-12404.patch
>
>
> When type of constant value and column doesn't match, currently Hive throws 
> up.
> {code}
> java.lang.IllegalArgumentException: Wrong value class java.lang.Integer for 
> BOOLEAN.LESS_THAN_EQUALS leaf
>         at 
> org.apache.hadoop.hive.ql.io.sarg.SearchArgumentImpl$PredicateLeafImpl.<init>(SearchArgumentImpl.java:63)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.SearchArgumentImpl$BuilderImpl.lessThanEquals(SearchArgumentImpl.java:304)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.createLeaf(ConvertAstToSearchArg.java:277)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.createLeaf(ConvertAstToSearchArg.java:326)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.parse(ConvertAstToSearchArg.java:386)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.addChildren(ConvertAstToSearchArg.java:331)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.parse(ConvertAstToSearchArg.java:370)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.addChildren(ConvertAstToSearchArg.java:331)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.parse(ConvertAstToSearchArg.java:366)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.<init>(ConvertAstToSearchArg.java:68)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.create(ConvertAstToSearchArg.java:417)
>         at 
> org.apache.hadoop.hive.ql.io.sarg.ConvertAstToSearchArg.createFromConf(ConvertAstToSearchArg.java:436)
>         at 
> org.apache.hadoop.hive.ql.io.orc.OrcInputFormat$Context.<init>(OrcInputFormat.java:484)
>         at 
> org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.generateSplitsInfo(OrcInputFormat.java:1121)
>         at 
> org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getSplits(OrcInputFormat.java:1207)
>         at 
> org.apache.hadoop.hive.ql.io.HiveInputFormat.addSplitsForGroup(HiveInputFormat.java:369)
>         at 
> org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:481)
>         at 
> org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.initialize(HiveSplitGenerator.java:160)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to