fix get_count returns incorrect value with TTL; patch by yukim reviewed by 
slebresne for CASSANDRA-5099


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

Branch: refs/heads/cassandra-1.2
Commit: 1cbbba095a715cc69254336d34d840463b1fd46e
Parents: 3bb84e9
Author: Yuki Morishita <yu...@apache.org>
Authored: Fri Jan 11 10:48:17 2013 -0600
Committer: Yuki Morishita <yu...@apache.org>
Committed: Fri Jan 11 11:01:42 2013 -0600

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../apache/cassandra/thrift/CassandraServer.java   |    4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cbbba09/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 9712791..82f503c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -8,6 +8,7 @@
  * nodetool repair command now prints progress (CASSANDRA-4767)
  * fix user defined compaction to run against 1.1 data directory 
(CASSANDRA-5118)
  * Fix CQL3 BATCH authorization caching (CASSANDRA-5145)
+ * fix get_count returns incorrect value with TTL (CASSANDRA-5099)
 
 
 1.1.8

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1cbbba09/src/java/org/apache/cassandra/thrift/CassandraServer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/thrift/CassandraServer.java 
b/src/java/org/apache/cassandra/thrift/CassandraServer.java
index d9965d1..4e61e9a 100644
--- a/src/java/org/apache/cassandra/thrift/CassandraServer.java
+++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java
@@ -450,8 +450,8 @@ public class CassandraServer implements Cassandra.Iface
             pages++;
             // We're done if either:
             //   - We've querying the number of columns requested by the user
-            //   - The last page wasn't full
-            if (remaining == 0 || columns.size() < predicate.slice_range.count)
+            //   - last fetched page only contains the column we already 
fetched
+            if (remaining == 0 || ((columns.size() == 1) && 
(firstName.equals(predicate.slice_range.start))))
                 break;
             else
                 predicate.slice_range.start = 
getName(columns.get(columns.size() - 1));

Reply via email to