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

Enis Soztutar commented on HIVE-2903:
-------------------------------------

Well, it is not a "bug" of hbase. HBase only provides int -> byte[] conversion 
as a convenience, and it seems that Bytes.toBytes(int) and others only 
guarantees lexicographic ordering for unsigned numbers. We can definitely add 
something like Bytes.toSignedBytes() in HBase so that you can ensure signed 
numbers are sorted correctly in lexicographic order.

Coming to Hive, I think Ashutosh is right, that we have to keep supporting 
already existing data in hbase serialized through Bytes.toBytes(). So, I would 
suggest we add another storage type (hbase.table.default.storage.type), like 
"signedbinary", which should do the hive-specific signed byte conversion. 

So, we would have: 
 - cf:col#string       : serialize as string
 - cf:col#binary       : serialize as binary, compatible with Bytes.toBytes() 
 - cf:col#signedBinary : serialize as signed binary. 

I would also suggest that, people might be interested in custom ser/de from 
Hive types to byte[], but I am not sure how feasible that would be to 
implement. 
                
> Numeric binary type keys are not compared properly
> --------------------------------------------------
>
>                 Key: HIVE-2903
>                 URL: https://issues.apache.org/jira/browse/HIVE-2903
>             Project: Hive
>          Issue Type: Bug
>          Components: HBase Handler
>            Reporter: Navis
>            Assignee: Navis
>         Attachments: HIVE-2903.D2481.1.patch
>
>
> In current binary format for numbers, minus values are always greater than 
> plus values, for example.
> {code}
> System.our.println(Bytes.compareTo(Bytes.toBytes(-100), Bytes.toBytes(100))); 
> // 255
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to