ignite-db - more fixes

Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c6aaf4ac
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c6aaf4ac
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c6aaf4ac

Branch: refs/heads/ignite-db-x-10884
Commit: c6aaf4ac79430b287c14300066eae2978aab3c52
Parents: 20b0638
Author: S.Vladykin <[email protected]>
Authored: Wed Apr 13 03:19:31 2016 +0300
Committer: S.Vladykin <[email protected]>
Committed: Wed Apr 13 03:19:31 2016 +0300

----------------------------------------------------------------------
 .../processors/cache/database/tree/BPlusTree.java        | 10 ++++++----
 .../processors/cache/database/tree/io/BPlusIO.java       | 11 -----------
 .../processors/cache/database/tree/io/BPlusInnerIO.java  | 11 +++++++++++
 3 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c6aaf4ac/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
index 2d54a0a..6319621 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
@@ -1060,7 +1060,7 @@ public abstract class BPlusTree<L, T extends L> {
             if (prntIdx == prntCnt) // It was a right turn.
                 prntIdx--;
 
-            cur.io.store(cur.buf, cnt, prnt.io, prnt.buf, prntIdx);
+            inner(cur.io).store(cur.buf, cnt, prnt.io, prnt.buf, prntIdx);
 
             cnt++;
         }
@@ -1890,7 +1890,7 @@ public abstract class BPlusTree<L, T extends L> {
 
             // If after leaf merge parent have lost inner key, we don't need 
to update it anymore.
             if (innerIdx < inner.io.getCount(inner.buf)) {
-                inner.io.store(inner.buf, innerIdx, leaf.io, leaf.buf, cnt - 
1);
+                inner(inner.io).store(inner.buf, innerIdx, leaf.io, leaf.buf, 
cnt - 1);
                 leaf.io.setRemoveId(leaf.buf, globalRmvId.get());
             }
             else {
@@ -2191,8 +2191,10 @@ public abstract class BPlusTree<L, T extends L> {
      * @param io IO.
      * @return Inner page IO.
      */
-    private static BPlusInnerIO inner(BPlusIO io) {
-        return (BPlusInnerIO)io;
+    private static <L> BPlusInnerIO<L> inner(BPlusIO<L> io) {
+        assert !io.isLeaf();
+
+        return (BPlusInnerIO<L>)io;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/c6aaf4ac/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java
index 90d24ba..65dc2c2 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusIO.java
@@ -164,17 +164,6 @@ public abstract class BPlusIO<L> extends PageIO {
     public abstract void store(ByteBuffer buf, int idx, L row);
 
     /**
-     * Store row info from the given source.
-     *
-     * @param dst Destination buffer
-     * @param dstIdx Destination index.
-     * @param srcIo Source IO.
-     * @param src Source buffer.
-     * @param srcIdx Source index.
-     */
-    public abstract void store(ByteBuffer dst, int dstIdx, BPlusIO<L> srcIo, 
ByteBuffer src, int srcIdx);
-
-    /**
      * Copy items from source buffer to destination buffer. Both pages must be 
of the same type.
      *
      * @param src Source buffer.

http://git-wip-us.apache.org/repos/asf/ignite/blob/c6aaf4ac/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
index 945f3a9..b84c19b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/BPlusInnerIO.java
@@ -116,6 +116,17 @@ public abstract class BPlusInnerIO<L> extends BPlusIO<L> {
     }
 
     /**
+     * Store row info from the given source.
+     *
+     * @param dst Destination buffer
+     * @param dstIdx Destination index.
+     * @param srcIo Source IO.
+     * @param src Source buffer.
+     * @param srcIdx Source index.
+     */
+    public abstract void store(ByteBuffer dst, int dstIdx, BPlusIO<L> srcIo, 
ByteBuffer src, int srcIdx);
+
+    /**
      * @param idx Index of element.
      * @param shift It can be either link itself or left or right page ID.
      * @return Offset from byte buffer begin in bytes.

Reply via email to