You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by el...@apache.org on 2012/07/19 18:52:13 UTC

svn commit: r1363420 - in /labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree: AbstractDeleteResult.java DeleteResult.java Leaf.java Node.java NotPresentResult.java

Author: elecharny
Date: Thu Jul 19 16:52:12 2012
New Revision: 1363420

URL: http://svn.apache.org/viewvc?rev=1363420&view=rev
Log:
o Fixed a bug when we delete an element which is the leftmost one in a leaf, and is present in a upper node
o Exposed the getNewLeftMost() method in the API

Modified:
    labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/AbstractDeleteResult.java
    labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/DeleteResult.java
    labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java
    labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
    labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/NotPresentResult.java

Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/AbstractDeleteResult.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/AbstractDeleteResult.java?rev=1363420&r1=1363419&r2=1363420&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/AbstractDeleteResult.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/AbstractDeleteResult.java Thu Jul 19 16:52:12 2012
@@ -74,7 +74,7 @@ package org.apache.mavibot.btree;
     /**
      * @return the newLeftMost
      */
-    /* No qualifier */ K getNewLeftMost()
+    public K getNewLeftMost()
     {
         return newLeftMost;
     }

Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/DeleteResult.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/DeleteResult.java?rev=1363420&r1=1363419&r2=1363420&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/DeleteResult.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/DeleteResult.java Thu Jul 19 16:52:12 2012
@@ -39,4 +39,11 @@ interface DeleteResult<K, V>
      * @return the removed element
      */
     Tuple<K, V> getRemovedElement();
+    
+    
+    /**
+     * @return the leftmost element for this btree
+     * @return
+     */
+    K getNewLeftMost();
 }

Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java?rev=1363420&r1=1363419&r2=1363420&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java Thu Jul 19 16:52:12 2012
@@ -333,7 +333,7 @@ public class Leaf<K, V> extends Abstract
         // Create the result
         Tuple<K, V> removedElement = new Tuple<K, V>( keys[pos], values[pos] );
 
-        DeleteResult<K, V> result = new BorrowedFromRightResult<K, V>( newLeaf, newSibling, removedElement, newSibling.keys[0] );
+        DeleteResult<K, V> result = new BorrowedFromRightResult<K, V>( newLeaf, newSibling, removedElement, newLeaf.keys[0] );
         
         return result;
     }

Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java?rev=1363420&r1=1363419&r2=1363420&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java Thu Jul 19 16:52:12 2012
@@ -172,7 +172,7 @@ import java.util.LinkedList;
         
         // Modify the result and return
         removeResult.setModifiedPage( newPage );
-        removeResult.setNewLeftMost( newPage.keys[0] );
+        //removeResult.setNewLeftMost( newPage.keys[0] );
 
         return removeResult;
     }
@@ -193,9 +193,9 @@ import java.util.LinkedList;
         
         if ( found )
         {
-            child = children[-pos];
-            deleteResult = child.delete( revision, key, this, -pos );
             index = -( pos + 1 );
+            child = children[index + 1];
+            deleteResult = child.delete( revision, key, this, index + 1 );
         }
         else
         {
@@ -376,7 +376,7 @@ import java.util.LinkedList;
         
         // Modify the result and return
         RemoveResult<K, V> removeResult = new RemoveResult<K, V>( newPage,
-            borrowedResult.getRemovedElement(), newPage.keys[0] );
+            borrowedResult.getRemovedElement(), borrowedResult.getNewLeftMost() );
         
         return removeResult;
     }

Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/NotPresentResult.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/NotPresentResult.java?rev=1363420&r1=1363419&r2=1363420&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/NotPresentResult.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/NotPresentResult.java Thu Jul 19 16:52:12 2012
@@ -58,4 +58,13 @@ package org.apache.mavibot.btree;
     {
         return null;
     }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    public K getNewLeftMost()
+    {
+        return null;
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org