Updated Branches:
  refs/heads/cassandra-1.2 85cfd383b -> 2fe8133bb

Fix missing columns in wide rows queries

patch by slebresne; reviewed by driftx for CASSANDRA-5225


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

Branch: refs/heads/cassandra-1.2
Commit: 2fe8133bbe71d186ef43aeaa3b5a320685441d68
Parents: 85cfd38
Author: Sylvain Lebresne <sylv...@datastax.com>
Authored: Wed Feb 13 09:19:44 2013 +0100
Committer: Sylvain Lebresne <sylv...@datastax.com>
Committed: Wed Feb 13 09:19:44 2013 +0100

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../apache/cassandra/io/sstable/IndexHelper.java   |    6 +++---
 .../cassandra/io/sstable/IndexHelperTest.java      |    8 ++++----
 3 files changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2fe8133b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 0621c79..5dd2499 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -17,6 +17,7 @@
  * Fix drop of sstables in some circumstance (CASSANDRA-5232)
  * Implement caching of authorization results (CASSANDRA-4295)
  * Add support for LZ4 compression (CASSANDRA-5038)
+ * Fix missing columns in wide rows queries (CASSANDRA-5225)
 
 
 1.2.1

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2fe8133b/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/IndexHelper.java 
b/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
index 6a2e101..36e972e 100644
--- a/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
+++ b/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
@@ -178,12 +178,12 @@ public class IndexHelper
         {
             if (reversed)
             {
-                startIdx = lastIndex;
-                toSearch = indexList.subList(lastIndex, indexList.size());
+                toSearch = indexList.subList(0, lastIndex + 1);
             }
             else
             {
-                toSearch = indexList.subList(0, lastIndex + 1);
+                startIdx = lastIndex;
+                toSearch = indexList.subList(lastIndex, indexList.size());
             }
         }
         int index = Collections.binarySearch(toSearch, target, 
getComparator(comparator, reversed));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2fe8133b/test/unit/org/apache/cassandra/io/sstable/IndexHelperTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/IndexHelperTest.java 
b/test/unit/org/apache/cassandra/io/sstable/IndexHelperTest.java
index d96cab1..eb297da 100644
--- a/test/unit/org/apache/cassandra/io/sstable/IndexHelperTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/IndexHelperTest.java
@@ -47,8 +47,8 @@ public class IndexHelperTest
         assertEquals(1, IndexHelper.indexFor(bytes(12L), indexes, comp, false, 
-1));
         assertEquals(2, IndexHelper.indexFor(bytes(17L), indexes, comp, false, 
-1));
         assertEquals(3, IndexHelper.indexFor(bytes(100L), indexes, comp, 
false, -1));
-        assertEquals(1, IndexHelper.indexFor(bytes(100L), indexes, comp, 
false, 0));
-        assertEquals(2, IndexHelper.indexFor(bytes(100L), indexes, comp, 
false, 1));
+        assertEquals(3, IndexHelper.indexFor(bytes(100L), indexes, comp, 
false, 0));
+        assertEquals(3, IndexHelper.indexFor(bytes(100L), indexes, comp, 
false, 1));
         assertEquals(3, IndexHelper.indexFor(bytes(100L), indexes, comp, 
false, 2));
         assertEquals(-1, IndexHelper.indexFor(bytes(100L), indexes, comp, 
false, 3));
 
@@ -56,9 +56,9 @@ public class IndexHelperTest
         assertEquals(0, IndexHelper.indexFor(bytes(5L), indexes, comp, true, 
-1));
         assertEquals(1, IndexHelper.indexFor(bytes(17L), indexes, comp, true, 
-1));
         assertEquals(2, IndexHelper.indexFor(bytes(100L), indexes, comp, true, 
-1));
-        assertEquals(2, IndexHelper.indexFor(bytes(100L), indexes, comp, true, 
0));
+        assertEquals(0, IndexHelper.indexFor(bytes(100L), indexes, comp, true, 
0));
         assertEquals(1, IndexHelper.indexFor(bytes(12L), indexes, comp, true, 
-1));
-        assertEquals(2, IndexHelper.indexFor(bytes(100L), indexes, comp, true, 
1));
+        assertEquals(1, IndexHelper.indexFor(bytes(100L), indexes, comp, true, 
1));
         assertEquals(2, IndexHelper.indexFor(bytes(100L), indexes, comp, true, 
2));
         assertEquals(-1, IndexHelper.indexFor(bytes(100L), indexes, comp, 
true, 4));
     }

Reply via email to