Return-Path: X-Original-To: apmail-phoenix-dev-archive@minotaur.apache.org Delivered-To: apmail-phoenix-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E88301995A for ; Tue, 5 Apr 2016 03:53:28 +0000 (UTC) Received: (qmail 6281 invoked by uid 500); 5 Apr 2016 03:53:28 -0000 Delivered-To: apmail-phoenix-dev-archive@phoenix.apache.org Received: (qmail 6222 invoked by uid 500); 5 Apr 2016 03:53:28 -0000 Mailing-List: contact dev-help@phoenix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@phoenix.apache.org Delivered-To: mailing list dev@phoenix.apache.org Received: (qmail 6211 invoked by uid 99); 5 Apr 2016 03:53:28 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Apr 2016 03:53:28 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 4BBBF1A45CF for ; Tue, 5 Apr 2016 03:53:28 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -3.221 X-Spam-Level: X-Spam-Status: No, score=-3.221 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id RpKeltxGINwG for ; Tue, 5 Apr 2016 03:53:27 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 5B8845F255 for ; Tue, 5 Apr 2016 03:53:26 +0000 (UTC) Received: (qmail 6186 invoked by uid 99); 5 Apr 2016 03:53:25 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Apr 2016 03:53:25 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 7413C2C1F58 for ; Tue, 5 Apr 2016 03:53:25 +0000 (UTC) Date: Tue, 5 Apr 2016 03:53:25 +0000 (UTC) From: "ASF GitHub Bot (JIRA)" To: dev@phoenix.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (PHOENIX-2628) Ensure split when iterating through results handled correctly MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/PHOENIX-2628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15225636#comment-15225636 ] 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_r58483591 --- Diff: phoenix-core/src/main/java/org/apache/phoenix/iterate/BaseResultIterators.java --- @@ -556,35 +564,55 @@ private static String toString(List gps) { } else { endKey = regionBoundaries.get(regionIndex); } - HRegionLocation regionLocation = regionLocations.get(regionIndex); - if (isLocalIndex) { - HRegionInfo regionInfo = regionLocation.getRegionInfo(); - endRegionKey = regionInfo.getEndKey(); - keyOffset = ScanUtil.getRowKeyOffset(regionInfo.getStartKey(), endRegionKey); - } - try { - while (guideIndex < gpsSize && (currentGuidePost.compareTo(endKey) <= 0 || endKey.length == 0)) { - Scan newScan = scanRanges.intersectScan(scan, currentKeyBytes, currentGuidePostBytes, keyOffset, - false); - estimatedRows += gps.getRowCounts().get(guideIndex); - estimatedSize += gps.getByteCounts().get(guideIndex); - scans = addNewScan(parallelScans, scans, newScan, currentGuidePostBytes, false, regionLocation); - currentKeyBytes = currentGuidePost.copyBytes(); - currentGuidePost = PrefixByteCodec.decode(decoder, input); - currentGuidePostBytes = currentGuidePost.copyBytes(); - guideIndex++; - } - } catch (EOFException e) {} - Scan newScan = scanRanges.intersectScan(scan, currentKeyBytes, endKey, keyOffset, true); - if (isLocalIndex) { - if (newScan != null) { - newScan.setAttribute(EXPECTED_UPPER_REGION_KEY, endRegionKey); - } else if (!scans.isEmpty()) { - scans.get(scans.size()-1).setAttribute(EXPECTED_UPPER_REGION_KEY, endRegionKey); - } - } - scans = addNewScan(parallelScans, scans, newScan, endKey, true, regionLocation); - currentKeyBytes = endKey; + if (Bytes.compareTo(scan.getStartRow(), context.getScan().getStartRow()) != 0 + || Bytes.compareTo(scan.getStopRow(), context.getScan().getStopRow()) != 0) { --- End diff -- Also, this code path is strange. What's the entry point? Does it need to be mixed up with the existing code? It feels like we've completely forked the flow here. Why not have it in it's own method called only when this special case is detected? > 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)