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 0369C19C6B for ; Wed, 6 Apr 2016 01:13:30 +0000 (UTC) Received: (qmail 79437 invoked by uid 500); 6 Apr 2016 01:13:29 -0000 Delivered-To: apmail-phoenix-dev-archive@phoenix.apache.org Received: (qmail 79371 invoked by uid 500); 6 Apr 2016 01:13:29 -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 79359 invoked by uid 99); 6 Apr 2016 01:13:29 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Apr 2016 01:13:29 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 37109C0BC3 for ; Wed, 6 Apr 2016 01:13:29 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-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 mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id Udr0HW4UKkVZ for ; Wed, 6 Apr 2016 01:13:27 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with SMTP id 4F85F5F244 for ; Wed, 6 Apr 2016 01:13:26 +0000 (UTC) Received: (qmail 79328 invoked by uid 99); 6 Apr 2016 01:13:25 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Apr 2016 01:13:25 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 6F4052C14F6 for ; Wed, 6 Apr 2016 01:13:25 +0000 (UTC) Date: Wed, 6 Apr 2016 01:13: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=15227496#comment-15227496 ] ASF GitHub Bot commented on PHOENIX-2628: ----------------------------------------- Github user chrajeshbabu commented on a diff in the pull request: https://github.com/apache/phoenix/pull/156#discussion_r58639358 --- Diff: phoenix-core/src/main/java/org/apache/phoenix/iterate/TableResultIterator.java --- @@ -107,8 +127,37 @@ public synchronized void close() throws SQLException { @Override public synchronized Tuple next() throws SQLException { initScanner(); - Tuple t = scanIterator.next(); - return t; + try { + lastTuple = scanIterator.next(); + if (lastTuple != null) { + ImmutableBytesWritable ptr = new ImmutableBytesWritable(); + lastTuple.getKey(ptr); + } + } catch (SQLException e) { + try { + throw ServerUtil.parseServerException(e); + } catch(StaleRegionBoundaryCacheException e1) { + if(scan.getAttribute(NON_AGGREGATE_QUERY)!=null) { + Scan newScan = ScanUtil.newScan(scan); + if(lastTuple != null) { + lastTuple.getKey(ptr); + byte[] startRowSuffix = ByteUtil.copyKeyBytesIfNecessary(ptr); + if(ScanUtil.isLocalIndex(newScan)) { + newScan.setAttribute(SCAN_START_ROW_SUFFIX, ByteUtil.nextKey(startRowSuffix)); + } else { + newScan.setStartRow(ByteUtil.nextKey(startRowSuffix)); + } + } + plan.getContext().getConnection().getQueryServices().clearTableRegionCache(htable.getTableName()); + this.scanIterator = + plan.iterator(DefaultParallelScanGrouper.getInstance(), newScan); --- End diff -- You mean we can check the in region boundary again in post scanner open and if it's out of range throw stale region boundary exception which will be handled by BaseResultIterators? > 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)