From 1cbbba095a715cc69254336d34d840463b1fd46e Mon Sep 17 00:00:00 2001 From: Yuki Morishita Date: Fri, 11 Jan 2013 10:48:17 -0600 Subject: [PATCH] fix get_count returns incorrect value with TTL; patch by yukim reviewed by slebresne for CASSANDRA-5099 --- CHANGES.txt | 1 + src/java/org/apache/cassandra/thrift/CassandraServer.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 97127915be..82f503c1e3 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 diff --git a/src/java/org/apache/cassandra/thrift/CassandraServer.java b/src/java/org/apache/cassandra/thrift/CassandraServer.java index d9965d1d22..4e61e9a2f6 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));