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", ""));
}