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

Jason Dere commented on HIVE-8745:
----------------------------------

{quote}
If the serde needs to remove trailing zeros during serialization, this is fine 
as long as it can get them back upon deserialization.
{quote}

What I'm saying is I don't think it's possible to get the trailing zeros back 
upon deserialization. Since this is BinarySortableSerde, the comparison is 
based on the bytes representing the decimal value.  If we had a way to 
differentiate 1.0 from 1.00 during deserialization, then there would have to be 
something in the BinarySortable representation of the decimal value to specify 
one trailing zero vs two trailing zeros, which would make the bytes comparison 
fail between 1.0 and 1.00. So the trailing zeros would be permanently trimmed.

> Joins on decimal keys return different results whether they are run as reduce 
> join or map join
> ----------------------------------------------------------------------------------------------
>
>                 Key: HIVE-8745
>                 URL: https://issues.apache.org/jira/browse/HIVE-8745
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 0.14.0
>            Reporter: Gunther Hagleitner
>            Assignee: Jason Dere
>            Priority: Critical
>             Fix For: 0.14.0
>
>         Attachments: join_test.q
>
>
> See attached .q file to reproduce. The difference seems to be whether 
> trailing 0s are considered the same value or not.



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

Reply via email to