Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 9E74C200BFB for ; Wed, 11 Jan 2017 21:28:59 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 9D26A160B3B; Wed, 11 Jan 2017 20:28:59 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id DBD09160B52 for ; Wed, 11 Jan 2017 21:28:58 +0100 (CET) Received: (qmail 87348 invoked by uid 500); 11 Jan 2017 20:28:57 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 87104 invoked by uid 99); 11 Jan 2017 20:28:57 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Jan 2017 20:28:57 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 55ACFDFAEB; Wed, 11 Jan 2017 20:28:57 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: blerer@apache.org To: commits@cassandra.apache.org Date: Wed, 11 Jan 2017 20:28:57 -0000 Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: [1/5] cassandra git commit: Fix paging for DISTINCT queries on partition keys and static columns archived-at: Wed, 11 Jan 2017 20:28:59 -0000 Repository: cassandra Updated Branches: refs/heads/cassandra-3.11 1553d864b -> 9c2ab2555 Fix paging for DISTINCT queries on partition keys and static columns patch by Benjamin Lerer; reviewed by Tyler Hobbs for CASSANDRA-13017 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/70e8b39b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/70e8b39b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/70e8b39b Branch: refs/heads/cassandra-3.11 Commit: 70e8b39b021b0abae69009c4a034657e2518e09e Parents: 47f7d9c Author: Benjamin Lerer Authored: Wed Jan 11 21:05:37 2017 +0100 Committer: Benjamin Lerer Committed: Wed Jan 11 21:05:37 2017 +0100 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../org/apache/cassandra/service/pager/RangeSliceQueryPager.java | 3 ++- test/unit/org/apache/cassandra/service/QueryPagerTest.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/70e8b39b/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 23fd12a..414d6ed 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.17 + * Fix paging for DISTINCT queries on partition keys and static columns (CASSANDRA-13017) * Fix race causing infinite loop if Thrift server is stopped before it starts listening (CASSANDRA-12856) * cqlsh copy-from: sort user type fields in csv (CASSANDRA-12959) * Fix missed signal when commit log segments are recycled (CASSANDRA-13037) http://git-wip-us.apache.org/repos/asf/cassandra/blob/70e8b39b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java index caa146a..3ac777e 100644 --- a/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java +++ b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java @@ -74,7 +74,8 @@ public class RangeSliceQueryPager extends AbstractQueryPager { SliceQueryFilter sf = (SliceQueryFilter)columnFilter; AbstractBounds keyRange = lastReturnedKey == null ? command.keyRange : makeIncludingKeyBounds(lastReturnedKey); - Composite start = lastReturnedName == null ? sf.start() : lastReturnedName; + // For DISTINCT queries we can and must ignore the lastReturnedName (see CASSANDRA-13017) + Composite start = lastReturnedName == null || isDistinct() ? sf.start() : lastReturnedName; PagedRangeCommand pageCmd = new PagedRangeCommand(command.keyspace, command.columnFamily, command.timestamp, http://git-wip-us.apache.org/repos/asf/cassandra/blob/70e8b39b/test/unit/org/apache/cassandra/service/QueryPagerTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/service/QueryPagerTest.java b/test/unit/org/apache/cassandra/service/QueryPagerTest.java index c78412f..1939c4a 100644 --- a/test/unit/org/apache/cassandra/service/QueryPagerTest.java +++ b/test/unit/org/apache/cassandra/service/QueryPagerTest.java @@ -146,7 +146,7 @@ public class QueryPagerTest extends SchemaLoader private static RangeSliceCommand rangeSliceQuery(AbstractBounds range, int count, String start, String end) { SliceQueryFilter filter = new SliceQueryFilter(CellNames.simpleDense(bytes(start)), CellNames.simpleDense(bytes(end)), false, Integer.MAX_VALUE); - return new RangeSliceCommand(KS, CF, System.currentTimeMillis(), filter, range, count); + return new RangeSliceCommand(KS, CF, System.currentTimeMillis(), filter, range, null, count, true, false); } private static void assertRow(Row r, String key, String... names)