Repository: cassandra Updated Branches: refs/heads/trunk 48563e0be -> c1a248a43
Fix CF reversal when querying reversed slices Patch by Tyler Hobbs and Sylvain Lebresne for CASSANDRA-8767 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/58e6a1d8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/58e6a1d8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/58e6a1d8 Branch: refs/heads/trunk Commit: 58e6a1d8d1ecdacbe8d470d27ca79281472270e3 Parents: 7f10cbd Author: Tyler Hobbs <[email protected]> Authored: Wed Feb 18 11:28:35 2015 -0600 Committer: Tyler Hobbs <[email protected]> Committed: Wed Feb 18 11:28:35 2015 -0600 ---------------------------------------------------------------------- CHANGES.txt | 2 ++ src/java/org/apache/cassandra/db/ColumnFamily.java | 7 ++++++- .../apache/cassandra/service/pager/AbstractQueryPager.java | 5 ++--- 3 files changed, 10 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e6a1d8/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 24f70a3..48751d9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 2.0.13: + * Fix AssertionError when querying a DESC clustering ordered + table with ASC ordering and paging (CASSANDRA-8767) * AssertionError: "Memory was freed" when running cleanup (CASSANDRA-8716) * Make it possible to set max_sstable_age to fractional days (CASSANDRA-8406) * Fix memory leak in SSTableSimple*Writer and SSTableReader.validate() (CASSANDRA-8748) http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e6a1d8/src/java/org/apache/cassandra/db/ColumnFamily.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/ColumnFamily.java b/src/java/org/apache/cassandra/db/ColumnFamily.java index 19f8c16..38c72e0 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamily.java +++ b/src/java/org/apache/cassandra/db/ColumnFamily.java @@ -74,7 +74,12 @@ public abstract class ColumnFamily implements Iterable<Column>, IRowCacheEntry public ColumnFamily cloneMeShallow() { - return cloneMeShallow(getFactory(), isInsertReversed()); + return cloneMeShallow(false); + } + + public ColumnFamily cloneMeShallow(boolean reversed) + { + return cloneMeShallow(getFactory(), reversed); } public ColumnFamilyType getType() http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e6a1d8/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java b/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java index 4210296..c45dd07 100644 --- a/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java +++ b/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java @@ -17,7 +17,6 @@ */ package org.apache.cassandra.service.pager; -import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -215,7 +214,7 @@ abstract class AbstractQueryPager implements QueryPager { Row first = rows.get(i++); firstKey = first.key; - firstCf = first.cf.cloneMeShallow(); + firstCf = first.cf.cloneMeShallow(isReversed()); toDiscard -= isReversed() ? discardLast(first.cf, toDiscard, firstCf) : discardFirst(first.cf, toDiscard, firstCf); @@ -255,7 +254,7 @@ abstract class AbstractQueryPager implements QueryPager { Row last = rows.get(i--); lastKey = last.key; - lastCf = last.cf.cloneMeShallow(); + lastCf = last.cf.cloneMeShallow(isReversed()); toDiscard -= isReversed() ? discardFirst(last.cf, toDiscard, lastCf) : discardLast(last.cf, toDiscard, lastCf);
