You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Anoop Sam John (JIRA)" <ji...@apache.org> on 2014/03/14 11:45:43 UTC

[jira] [Commented] (HBASE-10749) CellComparator.compareStatic() compares type wrongly

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

Anoop Sam John commented on HBASE-10749:
----------------------------------------

Correct Ram. Cells with higher type should come before.
Also there is some special handling for Minimum and Maximum types.  We will need that also here? 

> CellComparator.compareStatic() compares type wrongly
> ----------------------------------------------------
>
>                 Key: HBASE-10749
>                 URL: https://issues.apache.org/jira/browse/HBASE-10749
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.98.1, 0.99.0, 0.96.1.1
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.98.1, 0.99.0
>
>
> CellComparator.compareStatic(Cell a, Cell b) compares type wrongly.
> {code}
>     //type
>     c = (0xff & a.getTypeByte()) - (0xff & b.getTypeByte());
>     if (c != 0) return c;
> {code}
> In the normal case it should be the other way
> {code}
>       // Compare types. Let the delete types sort ahead of puts; i.e. types
>       // of higher numbers sort before those of lesser numbers. Maximum (255)
>       // appears ahead of everything, and minimum (0) appears after
>       // everything.
>       return (0xff & rtype) - (0xff & ltype);
> {code}
> Found this issue while replacing KVComparator to use CellComparator.  
> [~mcorgan]
> Could you confirm this once?  Currently PrefixTree code path uses this compareStatic method.



--
This message was sent by Atlassian JIRA
(v6.2#6252)