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