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

ASF GitHub Bot commented on PHOENIX-2628:
-----------------------------------------

Github user JamesRTaylor commented on a diff in the pull request:

    https://github.com/apache/phoenix/pull/156#discussion_r58481703
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
 ---
    @@ -279,6 +301,31 @@ protected RegionScanner getWrappedScanner(final 
ObserverContext<RegionCoprocesso
                 final ImmutableBytesWritable ptr) {
             return new RegionScanner() {
     
    +            private boolean hasReferences = checkForReferenceFiles();
    +            private HRegionInfo regionInfo = 
c.getEnvironment().getRegionInfo();
    +            private byte[] actualStartKey = getActualStartKey();
    +
    +            private boolean checkForReferenceFiles(){
    +                for(byte[] family: scan.getFamilies()) {
    +                    
if(c.getEnvironment().getRegion().getStore(family).hasReferences()) {
    +                        return true;
    +                    }
    +                }
    +                return false;
    +            }
    +
    +            public byte[] getActualStartKey() {
    +                if(ScanUtil.isLocalIndex(scan) && 
scan.getAttribute(SCAN_START_ROW_SUFFIX)!=null) {
    +                    byte[] startKey = 
ScanRanges.prefixKey(scan.getAttribute(SCAN_START_ROW_SUFFIX), 0, 
regionInfo.getStartKey().length == 0 ? new byte[regionInfo.getEndKey().length]: 
regionInfo.getStartKey(), regionInfo.getStartKey().length == 0? 
regionInfo.getEndKey().length: regionInfo.getStartKey().length);
    +                    if(Bytes.compareTo(scan.getStartRow(), startKey)>=0) {
    +                        return scan.getStartRow();
    +                    } else {
    +                        return startKey;
    +                    }
    +                }
    +                return null;
    +            }
    +
                 @Override
                 public boolean next(List<Cell> results) throws IOException {
    --- End diff --
    
    Can we refactor the code between these two next(List<Cell>, ...) 
implementations, as there's now a fair amount of code which is duplicated here?


> Ensure split when iterating through results handled correctly
> -------------------------------------------------------------
>
>                 Key: PHOENIX-2628
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2628
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: Rajeshbabu Chintaguntla
>             Fix For: 4.8.0
>
>         Attachments: PHOENIX-2628-wip.patch, PHOENIX-2628.patch, 
> PHOENIX-2628_v7.patch, PHOENIX-2628_v8.patch
>
>
> We should start with a test case to ensure this works correctly, both for 
> scans and aggregates.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to