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

Istvan Toth commented on PHOENIX-5799:
--------------------------------------

You are right.

However, in all cases we are using setStopRow to set up a single-row scan, and 
in 1.3 the semantics is that startRow=StopRow indicates single-row scan, 
despite the fact that this would logically result in an empty set.

The 1.4+ API is more consistent, and works in a mathematically correct way.

So for the actual use cases the method works correctly, even though it looks 
wrong.

Renaming CompatUtil.setStopRow() to setStopRowForGetScan() or similar and 
dropping the third parameter would probably help, but then it wouldn't follow 
the 1.4+ HBase API.

Maybe the best solution would be to add a setSingleRow() method that hides this 
mess from the code, and delete the setStopRow method. (and worry about handling 
actual range scans when we will need them)

We have a mess either way, as we cannot transparently shim the start/stop 
methods because of the 1.3 GetScan special case handling.

What would be your preference ?

> Inline Index Verification Output API
> ------------------------------------
>
>                 Key: PHOENIX-5799
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5799
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Geoffrey Jacoby
>            Assignee: Geoffrey Jacoby
>            Priority: Major
>             Fix For: 4.16.0
>
>         Attachments: PHOENIX-5799-4.x.v1.patch
>
>          Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> Followup from PHOENIX-5773 -- split out the logic in 
> IndexRebuildRegionScanner that writes to the output table into its own class, 
> plus add read methods and tests. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to