You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2012/07/16 15:35:20 UTC

git commit: Fix LCS bug with sstables containing only 1 row

Updated Branches:
  refs/heads/cassandra-1.1 9f32efa72 -> 02030dd65


Fix LCS bug with sstables containing only 1 row

patch by slebresne; reviewed by jbellis for CASSANDRA-4411


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

Branch: refs/heads/cassandra-1.1
Commit: 02030dd658e6ca0cdb8987fd72e0454066e1b6d6
Parents: 9f32efa
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Mon Jul 16 15:34:33 2012 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jul 16 15:34:33 2012 +0200

----------------------------------------------------------------------
 CHANGES.txt                                   |    1 +
 src/java/org/apache/cassandra/dht/Bounds.java |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/02030dd6/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f9b45d6..a3ba123 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -11,6 +11,7 @@
  * (cql3) delete "component_index" column on DROP TABLE call (CASSANDRA-4420)
  * change nanoTime() to currentTimeInMillis() in schema related code (CASSANDRA-4432)
  * add a token generation tool (CASSANDRA-3709)
+ * Fix LCS bug with sstable containing only 1 row (CASSANDRA-4411)
 Merged from 1.0:
  * allow dropping columns shadowed by not-yet-expired supercolumn or row
    tombstones in PrecompactedRow (CASSANDRA-4396)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/02030dd6/src/java/org/apache/cassandra/dht/Bounds.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/dht/Bounds.java b/src/java/org/apache/cassandra/dht/Bounds.java
index 0e4dbdf..b5633c8 100644
--- a/src/java/org/apache/cassandra/dht/Bounds.java
+++ b/src/java/org/apache/cassandra/dht/Bounds.java
@@ -47,7 +47,10 @@ public class Bounds<T extends RingPosition> extends AbstractBounds<T>
 
     public boolean contains(T position)
     {
-        return Range.contains(left, right, position) || left.equals(position);
+        // Range.contains doesnt work correctly if left == right because for
+        // Range that means a wrapping range that select the whole ring. So we
+        // must explicitely handle this case
+        return left.equals(position) || (!left.equals(right) && Range.contains(left, right, position));
     }
 
     public Pair<AbstractBounds<T>, AbstractBounds<T>> split(T position)