phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-2628) Ensure split when iterating through results handled correctly
Date Tue, 05 Apr 2016 03:14:26 GMT

    [ 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)

Mime
View raw message