[
https://issues.apache.org/jira/browse/PHOENIX-5176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bin Shi reassigned PHOENIX-5176:
--------------------------------
Assignee: Bin Shi
> KeyRange.compareUpperRange(KeyRang 1, KeyRang 2) returns wrong result when
> two key ranges have the same upper bound values but one is inclusive and
> another is exclusive
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-5176
> URL: https://issues.apache.org/jira/browse/PHOENIX-5176
> Project: Phoenix
> Issue Type: Bug
> Reporter: Bin Shi
> Assignee: Bin Shi
> Priority: Major
>
> In KeyRange.java,
> {color:#262626} public static int compareUpperRange(KeyRange rowKeyRange1,
> KeyRange rowKeyRange2) {{color}
> {color:#262626} int result =
> Boolean.compare(rowKeyRange1.upperUnbound(),
> rowKeyRange2.upperUnbound());{color}
> {color:#262626} if (result != 0) {{color}
> {color:#262626} return result;{color}
> {color:#262626} }{color}
> {color:#262626} result =
> Bytes.BYTES_COMPARATOR.compare(rowKeyRange1.getUpperRange(),
> rowKeyRange2.getUpperRange());{color}
> {color:#262626} if (result != 0) {{color}
> {color:#262626} return result;{color}
> {color:#262626} }{color}
> {color:#262626} return
> Boolean.compare(*rowKeyRange2*.isUpperInclusive(),
> *rowKeyRange1*.isUpperInclusive());{color}
> {color:#262626} }{color}
> {color:#262626} {color}
> {color:#262626}The last line in yellow color should be "{color}return
> Boolean.compare(*rowKeyRange1*.isUpperInclusive(),
> *rowKeyRange2*.isUpperInclusive());". Given rowKeyRange1 [3, 5) and
> rowKeyRange2 [3, 5], the function should return -1, but now it returns 1 due
> to the bug I mentioned.
>
> The KeyRange.compareUpperRange is only used in
> KeyRange.intersect(List<KeyRange> rowKeyRanges1, List<KeyRange>
> rowKeyRanges2). Given rowKeyRanges1 \{[3, 5), [5, 6)} and rowKeyRanges2\{[3,
> 5], [6, 7]}, the function should return \{[3, 5), [5, 5]}, i.e., \{[3, 5]},
> but it seems that now it returns \{[3,5)} due to the bug.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)