Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BB86C18650 for ; Tue, 19 Apr 2016 12:58:19 +0000 (UTC) Received: (qmail 8560 invoked by uid 500); 19 Apr 2016 12:58:19 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 8393 invoked by uid 500); 19 Apr 2016 12:58:19 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 8177 invoked by uid 99); 19 Apr 2016 12:58:19 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Apr 2016 12:58:19 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5E1AFDFF41; Tue, 19 Apr 2016 12:58:19 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sboikov@apache.org To: commits@ignite.apache.org Date: Tue, 19 Apr 2016 12:58:33 -0000 Message-Id: <3d504ae6fcbc49868259d3df99d57961@git.apache.org> In-Reply-To: <4f408e32fde8498d8f180871ecbd0990@git.apache.org> References: <4f408e32fde8498d8f180871ecbd0990@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [16/50] [abbrv] ignite git commit: ignite-db - inner replace on remove ignite-db - inner replace on remove Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d023107a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d023107a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d023107a Branch: refs/heads/ignite-db-x-10884 Commit: d023107aebf283ab5170fcc1edec016bf61fa123 Parents: ac0b698 Author: S.Vladykin Authored: Tue Apr 12 11:20:58 2016 +0300 Committer: S.Vladykin Committed: Tue Apr 12 11:20:58 2016 +0300 ---------------------------------------------------------------------- .../processors/query/h2/database/BPlusTree.java | 12 ++++++++---- .../processors/query/h2/database/DataStore.java | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d023107a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/BPlusTree.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/BPlusTree.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/BPlusTree.java index 5258dd4..f38ff0c 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/BPlusTree.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/BPlusTree.java @@ -1452,14 +1452,14 @@ public abstract class BPlusTree { assert p.fwdId != fwdId || fwdId == 0; if (p.foundInner == TRUE) { // Need to replace ref in inner page. - p.foundInner = FALSE; + p.foundInner = FALSE; // Protect from retries. res = writePage(page, replace, p, lvl, Put.RETRY); if (res != Put.FOUND) return res; // Need to retry. - p.foundInner = DONE; // We can have only single matching inner key, no more attempts. + p.foundInner = DONE; // We can have only single matching inner key. } // Go down recursively. @@ -1802,10 +1802,14 @@ public abstract class BPlusTree { /** {@inheritDoc} */ @Override boolean found(BPlusIO io, ByteBuffer buf, int idx, int lvl) throws IgniteCheckedException { - if (!io.isLeaf() && needReplaceInner == FALSE) + if (io.isLeaf()) + return true; + + // If we can get full row from the inner page, we must do inner replace to update full row info here. + if (io.canGetRow() && needReplaceInner == FALSE) needReplaceInner = TRUE; - return io.isLeaf(); + return false; } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/d023107a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/DataStore.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/DataStore.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/DataStore.java index f979365..5390858 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/DataStore.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/DataStore.java @@ -30,6 +30,7 @@ public interface DataStore { * @param buf Buffer. * @param idx Index. * @return Data row. + * @throws IgniteCheckedException If failed. */ public T getRow(BPlusIO io, ByteBuffer buf, int idx) throws IgniteCheckedException; }