You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by bl...@apache.org on 2017/01/11 20:28:57 UTC

[1/5] cassandra git commit: Fix paging for DISTINCT queries on partition keys and static columns

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 <b....@gmail.com>
Authored: Wed Jan 11 21:05:37 2017 +0100
Committer: Benjamin Lerer <b....@gmail.com>
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<RowPosition> 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<RowPosition> 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)


[2/5] cassandra git commit: Merge branch cassandra-2.1 into cassandra-2.2

Posted by bl...@apache.org.
Merge branch cassandra-2.1 into cassandra-2.2


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

Branch: refs/heads/cassandra-3.11
Commit: b45cb10445731fdef67b720ab216a038b9499928
Parents: 2acc15b 70e8b39
Author: Benjamin Lerer <b....@gmail.com>
Authored: Wed Jan 11 21:08:01 2017 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Wed Jan 11 21:09:29 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/b45cb104/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index a7e89ed,414d6ed..4f769a1
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,33 -1,9 +1,34 @@@
 -2.1.17
 +2.2.9
 + * Remove support for non-JavaScript UDFs (CASSANDRA-12883)
 + * Fix DynamicEndpointSnitch noop in multi-datacenter situations (CASSANDRA-13074)
 + * cqlsh copy-from: encode column names to avoid primary key parsing errors (CASSANDRA-12909)
 + * Temporarily fix bug that creates commit log when running offline tools (CASSANDRA-8616)
 + * Reduce granuality of OpOrder.Group during index build (CASSANDRA-12796)
 + * Test bind parameters and unset parameters in InsertUpdateIfConditionTest (CASSANDRA-12980)
 + * Do not specify local address on outgoing connection when listen_on_broadcast_address is set (CASSANDRA-12673)
 + * Use saved tokens when setting local tokens on StorageService.joinRing (CASSANDRA-12935)
 + * cqlsh: fix DESC TYPES errors (CASSANDRA-12914)
 + * Fix leak on skipped SSTables in sstableupgrade (CASSANDRA-12899)
 + * Avoid blocking gossip during pending range calculation (CASSANDRA-12281)
 + * Fix purgeability of tombstones with max timestamp (CASSANDRA-12792)
 + * Fail repair if participant dies during sync or anticompaction (CASSANDRA-12901)
 + * cqlsh COPY: unprotected pk values before converting them if not using prepared statements (CASSANDRA-12863)
 + * Fix Util.spinAssertEquals (CASSANDRA-12283)
 + * Fix potential NPE for compactionstats (CASSANDRA-12462)
 + * Prepare legacy authenticate statement if credentials table initialised after node startup (CASSANDRA-12813)
 + * Change cassandra.wait_for_tracing_events_timeout_secs default to 0 (CASSANDRA-12754)
 + * Clean up permissions when a UDA is dropped (CASSANDRA-12720)
 + * Limit colUpdateTimeDelta histogram updates to reasonable deltas (CASSANDRA-11117)
 + * Fix leak errors and execution rejected exceptions when draining (CASSANDRA-12457)
 + * Fix merkle tree depth calculation (CASSANDRA-12580)
 + * Make Collections deserialization more robust (CASSANDRA-12618)
 + * Better handle invalid system roles table (CASSANDRA-12700)
 + * Split consistent range movement flag correction (CASSANDRA-12786)
 + * CompactionTasks now correctly drops sstables out of compaction when not enough disk space is available (CASSANDRA-12979)
 +Merged from 2.1:
+  * 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)
 - * Fix RecoveryManagerTruncateTest (CASSANDRA-12802)
   * Don't skip sstables based on maxLocalDeletionTime (CASSANDRA-12765)
  
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b45cb104/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java
index 8ec9f4c,3ac777e..3b16e0b
--- a/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java
+++ b/src/java/org/apache/cassandra/service/pager/RangeSliceQueryPager.java
@@@ -72,10 -72,10 +72,11 @@@ public class RangeSliceQueryPager exten
      protected List<Row> queryNextPage(int pageSize, ConsistencyLevel consistencyLevel, boolean localQuery)
      throws RequestExecutionException
      {
 -        SliceQueryFilter sf = (SliceQueryFilter)columnFilter;
 +        SliceQueryFilter rawFilter = (SliceQueryFilter)columnFilter;
 +        SliceQueryFilter sf = rawFilter.withUpdatedCount(Math.min(rawFilter.count, pageSize));
          AbstractBounds<RowPosition> 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/b45cb104/test/unit/org/apache/cassandra/service/QueryPagerTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/service/QueryPagerTest.java
index b6a2b3c,1939c4a..961f080
--- a/test/unit/org/apache/cassandra/service/QueryPagerTest.java
+++ b/test/unit/org/apache/cassandra/service/QueryPagerTest.java
@@@ -170,7 -146,7 +170,7 @@@ public class QueryPagerTes
      private static RangeSliceCommand rangeSliceQuery(AbstractBounds<RowPosition> 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(KEYSPACE1, CF_STANDARD, System.currentTimeMillis(), filter, range, count);
 -        return new RangeSliceCommand(KS, CF, System.currentTimeMillis(), filter, range, null, count, true, false);
++        return new RangeSliceCommand(KEYSPACE1, CF_STANDARD, System.currentTimeMillis(), filter, range, null, count, true, false);
      }
  
      private static void assertRow(Row r, String key, String... names)


[5/5] cassandra git commit: Merge branch cassandra-3.0 into cassandra-3.11

Posted by bl...@apache.org.
Merge branch cassandra-3.0 into cassandra-3.11


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

Branch: refs/heads/cassandra-3.11
Commit: 9c2ab25556fad06a6a4d58f4bb652719a8a1bc27
Parents: 1553d86 5774d8e
Author: Benjamin Lerer <b....@gmail.com>
Authored: Wed Jan 11 21:27:28 2017 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Wed Jan 11 21:28:21 2017 +0100

----------------------------------------------------------------------
 conf/cassandra-env.ps1 | 37 -------------------------------------
 1 file changed, 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c2ab255/conf/cassandra-env.ps1
----------------------------------------------------------------------


[3/5] cassandra git commit: Merge branch cassandra-2.2 into cassandra-3.0

Posted by bl...@apache.org.
Merge branch cassandra-2.2 into cassandra-3.0


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

Branch: refs/heads/cassandra-3.11
Commit: 219f6ee825f968420e34ed4e3ce0a7571495e975
Parents: 15b5280 b45cb10
Author: Benjamin Lerer <b....@gmail.com>
Authored: Wed Jan 11 21:11:15 2017 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Wed Jan 11 21:11:22 2017 +0100

----------------------------------------------------------------------

----------------------------------------------------------------------



[4/5] cassandra git commit: Removes SetJsr223Env from cassandra-env.ps1 (Follow up CASSANDRA-12883)

Posted by bl...@apache.org.
Removes SetJsr223Env from cassandra-env.ps1 (Follow up CASSANDRA-12883)


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

Branch: refs/heads/cassandra-3.11
Commit: 5774d8e23556b09b11f9f756d93a619ae41a3630
Parents: 219f6ee
Author: Benjamin Lerer <b....@gmail.com>
Authored: Wed Jan 11 21:23:48 2017 +0100
Committer: Benjamin Lerer <b....@gmail.com>
Committed: Wed Jan 11 21:23:48 2017 +0100

----------------------------------------------------------------------
 conf/cassandra-env.ps1 | 37 -------------------------------------
 1 file changed, 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5774d8e2/conf/cassandra-env.ps1
----------------------------------------------------------------------
diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1
index f037b56..d3a0a87 100644
--- a/conf/cassandra-env.ps1
+++ b/conf/cassandra-env.ps1
@@ -198,42 +198,6 @@ Function CalculateHeapSizes
 }
 
 #-----------------------------------------------------------------------------
-Function SetJsr223Env
-{
-    $cp = $env:CLASSPATH
-    foreach ($jsrDir in Get-ChildItem -Path "$env:CASSANDRA_HOME\lib\jsr223")
-    {
-        foreach ($file in Get-ChildItem -Path "$env:CASSANDRA_HOME\lib\jsr223\$jsrDir\*.jar")
-        {
-            $file = $file -replace "\\", "/"
-            $cp = $cp + ";" + """$file"""
-        }
-    }
-    $env:CLASSPATH=$cp
-
-    # JSR223/JRuby - set ruby lib directory
-    if (Test-Path "$env:CASSANDRA_HOME\lib\jsr223\jruby\ruby")
-    {
-        $env:CASSANDRA_PARAMS=$env:CASSANDRA_PARAMS + " -Djruby.lib=$env:CASSANDRA_HOME\lib\jsr223\jruby"
-    }
-    # JSR223/JRuby - set ruby JNI libraries root directory
-    if (Test-Path "$env:CASSANDRA_HOME\lib\jsr223\jruby\jni")
-    {
-        $env:CASSANDRA_PARAMS=$env:CASSANDRA_PARAMS + " -Djffi.boot.library.path=$env:CASSANDRA_HOME\lib\jsr223\jruby\jni"
-    }
-    # JSR223/Jython - set python.home system property
-    if (Test-Path "$env:CASSANDRA_HOME\lib\jsr223\jython\jython.jar")
-    {
-        $env:CASSANDRA_PARAMS=$env:CASSANDRA_PARAMS + " -Dpython.home=$env:CASSANDRA_HOME\lib\jsr223\jython"
-    }
-    # JSR223/Scala - necessary system property
-    if (Test-Path "$env:CASSANDRA_HOME\lib\jsr223\scala\scala-compiler.jar")
-    {
-        $env:CASSANDRA_PARAMS=$env:CASSANDRA_PARAMS + " -Dscala.usejavacp=true"
-    }
-}
-
-#-----------------------------------------------------------------------------
 Function ParseJVMInfo
 {
     # grab info about the JVM
@@ -317,7 +281,6 @@ Function SetCassandraEnvironment
 
     SetCassandraMain
     BuildClassPath
-    SetJsr223Env
 
     # Override these to set the amount of memory to allocate to the JVM at
     # start-up. For production use you may wish to adjust this for your