cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ble...@apache.org
Subject cassandra git commit: Fix RangeNamesQueryPager (CASSANDRA-10509)
Date Mon, 19 Oct 2015 12:08:58 GMT
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 20ce2cf35 -> 289b7b7ce


Fix RangeNamesQueryPager (CASSANDRA-10509)

patch by Stefania Alborghetti; reviewed by Benjamin Lerer for CASSANDRA-10509


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

Branch: refs/heads/cassandra-2.2
Commit: 289b7b7cefd7ee5e1c41f7527a41fa40141ee7f7
Parents: 20ce2cf
Author: Stefania Alborghetti <stefania.alborghetti@datastax.com>
Authored: Mon Oct 19 14:04:36 2015 +0200
Committer: blerer <benjamin.lerer@datastax.com>
Committed: Mon Oct 19 14:07:44 2015 +0200

----------------------------------------------------------------------
 CHANGES.txt                                                  | 1 +
 .../apache/cassandra/service/pager/RangeNamesQueryPager.java | 8 +++++---
 2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/289b7b7c/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 889438f..0904559 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.4
+ * Fix RangeNamesQueryPager (CASSANDRA-10509)
  * Deprecate Pig support (CASSANDRA-10542)
  * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
 Merged from 2.1:

http://git-wip-us.apache.org/repos/asf/cassandra/blob/289b7b7c/src/java/org/apache/cassandra/service/pager/RangeNamesQueryPager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/pager/RangeNamesQueryPager.java b/src/java/org/apache/cassandra/service/pager/RangeNamesQueryPager.java
index 50d1280..6b36a25 100644
--- a/src/java/org/apache/cassandra/service/pager/RangeNamesQueryPager.java
+++ b/src/java/org/apache/cassandra/service/pager/RangeNamesQueryPager.java
@@ -81,7 +81,9 @@ public class RangeNamesQueryPager extends AbstractQueryPager
     protected boolean containsPreviousLast(Row first)
     {
         // When querying the next page, we create a bound that exclude the lastReturnedKey
-        return false;
+        // but unfortunately ExcludingBounds is serialized as Bounds, which includes both
endpoints,
+        // so we may still get a live row with the same key as lastReturnedKey, see CASSANDRA-10509
+        return lastReturnedKey != null && lastReturnedKey.equals(first.key);
     }
 
     protected boolean recordLast(Row last)
@@ -103,11 +105,11 @@ public class RangeNamesQueryPager extends AbstractQueryPager
         AbstractBounds<RowPosition> bounds = command.keyRange;
         if (bounds instanceof Range || bounds instanceof Bounds)
         {
-            return new Range<RowPosition>(lastReturnedKey, bounds.right);
+            return new Range<>(lastReturnedKey, bounds.right);
         }
         else
         {
-            return new ExcludingBounds<RowPosition>(lastReturnedKey, bounds.right);
+            return new ExcludingBounds<>(lastReturnedKey, bounds.right);
         }
     }
 }


Mime
View raw message