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

Prasanth Jayachandran commented on HIVE-14324:
----------------------------------------------

Test failures doesn't look related to me.

> ORC PPD for floats is broken
> ----------------------------
>
>                 Key: HIVE-14324
>                 URL: https://issues.apache.org/jira/browse/HIVE-14324
>             Project: Hive
>          Issue Type: Bug
>          Components: ORC
>    Affects Versions: 1.3.0, 2.0.0, 2.1.0, 2.2.0
>            Reporter: Prasanth Jayachandran
>            Assignee: Prasanth Jayachandran
>            Priority: Critical
>         Attachments: HIVE-14324.1.patch, HIVE-14324.2.patch
>
>
> ORC stores min/max stats, bloom filters by passing floats as doubles using 
> java's widening conversion. So if we write a float value of 0.22 to ORC file, 
> the min/max stats and bloom filter will use 0.2199999988079071 double value.
> But when we do PPD, SARG creates literals by converting float to string and 
> then to double which compares 0.22 to 0.2199999988079071 and fails PPD 
> evaluation. 
> {code}
> hive> create table orc_float (f float) stored as orc;
> hive> insert into table orc_float values(0.22);
> hive> set hive.optimize.index.filter=true;
> hive> select * from orc_float where f=0.22;
> OK
> hive> set hive.optimize.index.filter=false;
> hive> select * from orc_float where f=0.22;
> OK
> 0.22
> {code}
> This is not a problem for doubles and decimals.
> This issue was introduced in HIVE-8460 but back then there was no strict type 
> check when SARGs are created and also PPD evaluation does not convert to 
> column type. But now predicate leaf creation in SARG enforces strict type 
> check for boxed literals and predicate type and PPD evaluation converts stats 
> and constants to column type (predicate).



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

Reply via email to