You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/12/02 02:14:35 UTC

svn commit: r1041242 - in /cassandra/branches/cassandra-0.6: CHANGES.txt src/java/org/apache/cassandra/dht/AbstractBounds.java src/java/org/apache/cassandra/service/StorageProxy.java test/unit/org/apache/cassandra/service/StorageProxyTest.java

Author: jbellis
Date: Thu Dec  2 01:14:35 2010
New Revision: 1041242

URL: http://svn.apache.org/viewvc?rev=1041242&view=rev
Log:
fix range queries against wrapped range
patch by Stu Hood; reviewed by jbellis for CASSANDRA-1781

Modified:
    cassandra/branches/cassandra-0.6/CHANGES.txt
    cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/dht/AbstractBounds.java
    cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageProxy.java
    cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/StorageProxyTest.java

Modified: cassandra/branches/cassandra-0.6/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/CHANGES.txt?rev=1041242&r1=1041241&r2=1041242&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.6/CHANGES.txt Thu Dec  2 01:14:35 2010
@@ -11,6 +11,7 @@
  * fix live-column-count of slice ranges including tombstoned supercolumn 
    with live subcolumn (CASSANDRA-1591)
  * clean up log messages for gossip token notifications (CASSANDRA-1518)
+ * fix range queries against wrapped range (CASSANDRA-1781)
 
 
 0.6.8

Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/dht/AbstractBounds.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/dht/AbstractBounds.java?rev=1041242&r1=1041241&r2=1041242&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/dht/AbstractBounds.java (original)
+++ cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/dht/AbstractBounds.java Thu Dec  2 01:14:35 2010
@@ -65,7 +65,7 @@ public abstract class AbstractBounds imp
      */
     public Pair<AbstractBounds,AbstractBounds> split(Token token)
     {
-        assert contains(token);
+        assert left.equals(token) || contains(token);
         AbstractBounds lb = createFrom(token);
         // we contain this token, so only one of the left or right can be empty
         AbstractBounds rb = lb != null && token.equals(right) ? null : new Range(token, right);

Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageProxy.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1041242&r1=1041241&r2=1041242&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageProxy.java (original)
+++ cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageProxy.java Thu Dec  2 01:14:35 2010
@@ -619,7 +619,7 @@ public class StorageProxy implements Sto
         while (ringIter.hasNext())
         {
             Token token = ringIter.next();
-            if (remainder == null || !remainder.contains(token))
+            if (remainder == null || !(remainder.left.equals(token) || remainder.contains(token)))
                 // no more splits
                 break;
             Pair<AbstractBounds,AbstractBounds> splits = remainder.split(token);

Modified: cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/StorageProxyTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/StorageProxyTest.java?rev=1041242&r1=1041241&r2=1041242&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/StorageProxyTest.java (original)
+++ cassandra/branches/cassandra-0.6/test/unit/org/apache/cassandra/service/StorageProxyTest.java Thu Dec  2 01:14:35 2010
@@ -95,8 +95,9 @@ public class StorageProxyTest extends Cl
         // full wraps
         testGRR(range("0", "0"), range("0", "1"), range("1", "6"), range("6", ""), range("", "0"));
         testGRR(range("", ""), range("", "1"), range("1", "6"), range("6", ""));
-        // wrap on member token
+        // wrap on member tokens
         testGRR(range("6", "6"), range("6", ""), range("", "1"), range("1", "6"));
+        testGRR(range("6", "1"), range("6", ""), range("", "1"));
         // end wrapped
         testGRR(range("5", ""), range("5", "6"), range("6", ""));
     }