[ 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