You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2015/09/19 17:11:48 UTC

cassandra git commit: Fix paging of DISTINCT with static and IN

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 5a4253b6a -> 91e250146


Fix paging of DISTINCT with static and IN

patch by Sylvain Lebresne; reviewed by Blake Eggleston for
CASSANDRA-10354


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

Branch: refs/heads/cassandra-3.0
Commit: 91e250146156eda8ef9f89a25b43184d4e49c1b4
Parents: 5a4253b
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Wed Sep 16 16:41:25 2015 +0200
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Sat Sep 19 16:11:11 2015 +0100

----------------------------------------------------------------------
 CHANGES.txt                                                    | 1 +
 src/java/org/apache/cassandra/db/filter/DataLimits.java        | 3 +++
 .../apache/cassandra/service/pager/MultiPartitionPager.java    | 6 +++---
 3 files changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/91e25014/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index e589626..45fa773 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.0-rc1
+ * Fix paging of DISTINCT with static and IN (CASSANDRA-10354)
  * Allow MATERIALIZED VIEW's SELECT statement to restrict primary key
    columns (CASSANDRA-9664)
  * Move crc_check_chance out of compression options (CASSANDRA-9839)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/91e25014/src/java/org/apache/cassandra/db/filter/DataLimits.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/filter/DataLimits.java b/src/java/org/apache/cassandra/db/filter/DataLimits.java
index 75c8290..d5eefe3 100644
--- a/src/java/org/apache/cassandra/db/filter/DataLimits.java
+++ b/src/java/org/apache/cassandra/db/filter/DataLimits.java
@@ -303,7 +303,10 @@ public abstract class DataLimits
                 // rows in the partition. However, if we only have the static row, it will be returned as one row
                 // so count it.
                 if (hasLiveStaticRow && rowInCurrentPartition == 0)
+                {
                     ++rowCounted;
+                    ++rowInCurrentPartition;
+                }
             }
 
             public int counted()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/91e25014/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java b/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java
index ee2db9f..e826be6 100644
--- a/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java
+++ b/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java
@@ -169,13 +169,13 @@ public class MultiPartitionPager implements QueryPager
         {
             while (result == null || !result.hasNext())
             {
+                if (result != null)
+                    result.close();
+
                 // This sets us on the first non-exhausted pager
                 if (isExhausted())
                     return endOfData();
 
-                if (result != null)
-                    result.close();
-
                 int toQuery = pageSize - counter.counted();
                 result = consistency == null
                        ? pagers[current].fetchPageInternal(toQuery, orderGroup)