[jira] [Updated] (PHOENIX-5176) 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

2019-06-27 Thread Lars Hofhansl (JIRA)


 [ 
https://issues.apache.org/jira/browse/PHOENIX-5176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lars Hofhansl updated PHOENIX-5176:
---
Fix Version/s: 5.1.0

> 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: Blocker
> Fix For: 4.15.0, 5.1.0
>
>  Time Spent: 4h
>  Remaining Estimate: 0h
>
> 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 rowKeyRanges1, List 
> 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)


[jira] [Updated] (PHOENIX-5176) 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

2019-03-05 Thread Thomas D'Silva (JIRA)


 [ 
https://issues.apache.org/jira/browse/PHOENIX-5176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas D'Silva updated PHOENIX-5176:

Priority: Blocker  (was: Major)

> 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: Blocker
> Fix For: 4.15.0, 5.1.0, 4.14.2
>
>
> 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 rowKeyRanges1, List 
> 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)


[jira] [Updated] (PHOENIX-5176) 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

2019-03-05 Thread Bin Shi (JIRA)


 [ 
https://issues.apache.org/jira/browse/PHOENIX-5176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bin Shi updated PHOENIX-5176:
-
Fix Version/s: (was: 4.14.2)
   (was: 5.1.0)

> 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: Blocker
> Fix For: 4.15.0
>
>
> 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 rowKeyRanges1, List 
> 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)


[jira] [Updated] (PHOENIX-5176) 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

2019-03-05 Thread Thomas D'Silva (JIRA)


 [ 
https://issues.apache.org/jira/browse/PHOENIX-5176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas D'Silva updated PHOENIX-5176:

Fix Version/s: 4.14.2
   5.1.0
   4.15.0

> 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
> Fix For: 4.15.0, 5.1.0, 4.14.2
>
>
> 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 rowKeyRanges1, List 
> 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)