You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by pa...@apache.org on 2017/12/07 22:13:09 UTC

[1/6] cassandra git commit: Fix SStable ordering by max timestamp in SinglePartitionReadCommand

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 f9de26a79 -> a9225f90e
  refs/heads/cassandra-3.11 cdcd6529d -> b637eb11c
  refs/heads/trunk a61764d6c -> 23691f5f8


Fix SStable ordering by max timestamp in SinglePartitionReadCommand

Patch by Zhao Yang; Reviewed by Benjamin Lerer for CASSANDRA-14010


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

Branch: refs/heads/cassandra-3.0
Commit: a9225f90e205a7c2b24a4ad4a32d0961067005b0
Parents: f9de26a
Author: Zhao Yang <zh...@gmail.com>
Authored: Wed Dec 6 16:17:26 2017 +0800
Committer: Paulo Motta <pa...@apache.org>
Committed: Fri Dec 8 09:01:56 2017 +1100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../io/sstable/format/SSTableReader.java        |  3 ++-
 .../apache/cassandra/cql3/SimpleQueryTest.java  | 23 +++++++++++++++++---
 3 files changed, 23 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9225f90/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 4a415eb..a5a97db 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.16
+ * Fix SStable ordering by max timestamp in SinglePartitionReadCommand (CASSANDRA-14010)
  * Accept role names containing forward-slash (CASSANDRA-14088)
  * Optimize CRC check chance probability calculations (CASSANDRA-14094)
  * Fix cleanup on keyspace with no replicas (CASSANDRA-13526)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9225f90/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
index fb9343f..7e1bc1a 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
@@ -140,7 +140,8 @@ public abstract class SSTableReader extends SSTable implements SelfRefCounted<SS
     }
     private static final RateLimiter meterSyncThrottle = RateLimiter.create(100.0);
 
-    public static final Comparator<SSTableReader> maxTimestampComparator = (o1, o2) -> Long.compare(o1.getMaxTimestamp(), o2.getMaxTimestamp());
+    // Descending order
+    public static final Comparator<SSTableReader> maxTimestampComparator = (o1, o2) -> Long.compare(o2.getMaxTimestamp(), o1.getMaxTimestamp());
 
     // it's just an object, which we use regular Object equality on; we introduce a special class just for easy recognition
     public static final class UniqueIdentifier {}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9225f90/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java b/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
index 052b53d..f32bcc6 100644
--- a/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
+++ b/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
@@ -17,11 +17,8 @@
  */
 package org.apache.cassandra.cql3;
 
-import java.util.*;
 import org.junit.Test;
 
-import static junit.framework.Assert.*;
-
 public class SimpleQueryTest extends CQLTester
 {
     @Test
@@ -529,4 +526,24 @@ public class SimpleQueryTest extends CQLTester
             row(0, 0, 0, 0)
         );
     }
+
+    @Test
+    public void testSStableTimestampOrdering() throws Throwable
+    {
+        createTable("CREATE TABLE %s (k1 int, v1 int, v2 int, PRIMARY KEY (k1))");
+        disableCompaction();
+
+        // sstable1
+        execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,1)  USING TIMESTAMP 5");
+        flush();
+
+        // sstable2
+        execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,2)  USING TIMESTAMP 8");
+        flush();
+
+        execute("INSERT INTO %s(k1) VALUES(1)  USING TIMESTAMP 7");
+        execute("DELETE FROM %s USING TIMESTAMP 6 WHERE k1 = 1");
+
+        assertRows(execute("SELECT * FROM %s WHERE k1=1"), row(1, 1, 2));
+    } 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


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

Posted by pa...@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/b637eb11
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b637eb11
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b637eb11

Branch: refs/heads/cassandra-3.11
Commit: b637eb11c956698dc2ffb936eb85224e22dc7d94
Parents: cdcd652 a9225f9
Author: Paulo Motta <pa...@apache.org>
Authored: Fri Dec 8 09:03:53 2017 +1100
Committer: Paulo Motta <pa...@apache.org>
Committed: Fri Dec 8 09:04:56 2017 +1100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../io/sstable/format/SSTableReader.java        |  3 ++-
 .../apache/cassandra/cql3/SimpleQueryTest.java  | 20 ++++++++++++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b637eb11/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 691b285,a5a97db..18a22bd
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,13 -1,5 +1,14 @@@
 +3.11.2
 + * Remove OpenJDK log warning (CASSANDRA-13916)
 + * Prevent compaction strategies from looping indefinitely (CASSANDRA-14079)
 + * Cache disk boundaries (CASSANDRA-13215)
 + * Add asm jar to build.xml for maven builds (CASSANDRA-11193)
 + * Round buffer size to powers of 2 for the chunk cache (CASSANDRA-13897)
 + * Update jackson JSON jars (CASSANDRA-13949)
 + * Avoid locks when checking LCS fanout and if we should defrag (CASSANDRA-13930)
 +Merged from 3.0:
  3.0.16
+  * Fix SStable ordering by max timestamp in SinglePartitionReadCommand (CASSANDRA-14010)
   * Accept role names containing forward-slash (CASSANDRA-14088)
   * Optimize CRC check chance probability calculations (CASSANDRA-14094)
   * Fix cleanup on keyspace with no replicas (CASSANDRA-13526)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b637eb11/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b637eb11/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
index c2de52a,f32bcc6..62fe5a1
--- a/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
+++ b/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
@@@ -547,42 -527,23 +547,62 @@@ public class SimpleQueryTest extends CQ
          );
      }
  
 +    /** Test for Cassandra issue 10958 **/
 +    @Test
 +    public void restrictionOnRegularColumnWithStaticColumnPresentTest() throws Throwable
 +    {
 +        createTable("CREATE TABLE %s (id int, id2 int, age int static, extra int, PRIMARY KEY(id, id2))");
 +
 +        execute("INSERT INTO %s (id, id2, age, extra) VALUES (?, ?, ?, ?)", 1, 1, 1, 1);
 +        execute("INSERT INTO %s (id, id2, age, extra) VALUES (?, ?, ?, ?)", 2, 2, 2, 2);
 +        execute("UPDATE %s SET age=? WHERE id=?", 3, 3);
 +
 +        assertRows(execute("SELECT * FROM %s"),
 +            row(1, 1, 1, 1),
 +            row(2, 2, 2, 2),
 +            row(3, null, 3, null)
 +        );
 +
 +        assertRows(execute("SELECT * FROM %s WHERE extra > 1 ALLOW FILTERING"),
 +            row(2, 2, 2, 2)
 +        );
 +    }
 +
 +    @Test
 +    public void testRowFilteringOnStaticColumn() throws Throwable
 +    {
 +        createTable("CREATE TABLE %s (id int, name text, age int static, PRIMARY KEY (id, name))");
 +        for (int i = 0; i < 5; i++)
 +        {
 +            execute("INSERT INTO %s (id, name, age) VALUES (?, ?, ?)", i, "NameDoesNotMatter", i);
 +        }
 +
 +        assertInvalid("SELECT id, age FROM %s WHERE age < 1");
 +        assertRows(execute("SELECT id, age FROM %s WHERE age < 1 ALLOW FILTERING"),
 +                   row(0, 0));
 +        assertRows(execute("SELECT id, age FROM %s WHERE age > 0 AND age < 3 ALLOW FILTERING"),
 +                   row(1, 1), row(2, 2));
 +        assertRows(execute("SELECT id, age FROM %s WHERE age > 3 ALLOW FILTERING"),
 +                   row(4, 4));
 +    }
++
+     @Test
+     public void testSStableTimestampOrdering() throws Throwable
+     {
+         createTable("CREATE TABLE %s (k1 int, v1 int, v2 int, PRIMARY KEY (k1))");
+         disableCompaction();
+ 
+         // sstable1
+         execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,1)  USING TIMESTAMP 5");
+         flush();
+ 
+         // sstable2
+         execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,2)  USING TIMESTAMP 8");
+         flush();
+ 
+         execute("INSERT INTO %s(k1) VALUES(1)  USING TIMESTAMP 7");
+         execute("DELETE FROM %s USING TIMESTAMP 6 WHERE k1 = 1");
+ 
+         assertRows(execute("SELECT * FROM %s WHERE k1=1"), row(1, 1, 2));
+     } 
  }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[6/6] cassandra git commit: Merge branch 'cassandra-3.11' into trunk

Posted by pa...@apache.org.
Merge branch 'cassandra-3.11' into trunk


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

Branch: refs/heads/trunk
Commit: 23691f5f8ae541a91f0a2379693d59f7120c12cd
Parents: a61764d b637eb1
Author: Paulo Motta <pa...@apache.org>
Authored: Fri Dec 8 09:05:20 2017 +1100
Committer: Paulo Motta <pa...@apache.org>
Committed: Fri Dec 8 09:06:05 2017 +1100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../io/sstable/format/SSTableReader.java        |  3 ++-
 .../apache/cassandra/cql3/SimpleQueryTest.java  | 20 ++++++++++++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/23691f5f/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/23691f5f/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/23691f5f/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
----------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[3/6] cassandra git commit: Fix SStable ordering by max timestamp in SinglePartitionReadCommand

Posted by pa...@apache.org.
Fix SStable ordering by max timestamp in SinglePartitionReadCommand

Patch by Zhao Yang; Reviewed by Benjamin Lerer for CASSANDRA-14010


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

Branch: refs/heads/trunk
Commit: a9225f90e205a7c2b24a4ad4a32d0961067005b0
Parents: f9de26a
Author: Zhao Yang <zh...@gmail.com>
Authored: Wed Dec 6 16:17:26 2017 +0800
Committer: Paulo Motta <pa...@apache.org>
Committed: Fri Dec 8 09:01:56 2017 +1100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../io/sstable/format/SSTableReader.java        |  3 ++-
 .../apache/cassandra/cql3/SimpleQueryTest.java  | 23 +++++++++++++++++---
 3 files changed, 23 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9225f90/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 4a415eb..a5a97db 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.16
+ * Fix SStable ordering by max timestamp in SinglePartitionReadCommand (CASSANDRA-14010)
  * Accept role names containing forward-slash (CASSANDRA-14088)
  * Optimize CRC check chance probability calculations (CASSANDRA-14094)
  * Fix cleanup on keyspace with no replicas (CASSANDRA-13526)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9225f90/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
index fb9343f..7e1bc1a 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
@@ -140,7 +140,8 @@ public abstract class SSTableReader extends SSTable implements SelfRefCounted<SS
     }
     private static final RateLimiter meterSyncThrottle = RateLimiter.create(100.0);
 
-    public static final Comparator<SSTableReader> maxTimestampComparator = (o1, o2) -> Long.compare(o1.getMaxTimestamp(), o2.getMaxTimestamp());
+    // Descending order
+    public static final Comparator<SSTableReader> maxTimestampComparator = (o1, o2) -> Long.compare(o2.getMaxTimestamp(), o1.getMaxTimestamp());
 
     // it's just an object, which we use regular Object equality on; we introduce a special class just for easy recognition
     public static final class UniqueIdentifier {}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9225f90/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java b/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
index 052b53d..f32bcc6 100644
--- a/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
+++ b/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
@@ -17,11 +17,8 @@
  */
 package org.apache.cassandra.cql3;
 
-import java.util.*;
 import org.junit.Test;
 
-import static junit.framework.Assert.*;
-
 public class SimpleQueryTest extends CQLTester
 {
     @Test
@@ -529,4 +526,24 @@ public class SimpleQueryTest extends CQLTester
             row(0, 0, 0, 0)
         );
     }
+
+    @Test
+    public void testSStableTimestampOrdering() throws Throwable
+    {
+        createTable("CREATE TABLE %s (k1 int, v1 int, v2 int, PRIMARY KEY (k1))");
+        disableCompaction();
+
+        // sstable1
+        execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,1)  USING TIMESTAMP 5");
+        flush();
+
+        // sstable2
+        execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,2)  USING TIMESTAMP 8");
+        flush();
+
+        execute("INSERT INTO %s(k1) VALUES(1)  USING TIMESTAMP 7");
+        execute("DELETE FROM %s USING TIMESTAMP 6 WHERE k1 = 1");
+
+        assertRows(execute("SELECT * FROM %s WHERE k1=1"), row(1, 1, 2));
+    } 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[2/6] cassandra git commit: Fix SStable ordering by max timestamp in SinglePartitionReadCommand

Posted by pa...@apache.org.
Fix SStable ordering by max timestamp in SinglePartitionReadCommand

Patch by Zhao Yang; Reviewed by Benjamin Lerer for CASSANDRA-14010


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

Branch: refs/heads/cassandra-3.11
Commit: a9225f90e205a7c2b24a4ad4a32d0961067005b0
Parents: f9de26a
Author: Zhao Yang <zh...@gmail.com>
Authored: Wed Dec 6 16:17:26 2017 +0800
Committer: Paulo Motta <pa...@apache.org>
Committed: Fri Dec 8 09:01:56 2017 +1100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../io/sstable/format/SSTableReader.java        |  3 ++-
 .../apache/cassandra/cql3/SimpleQueryTest.java  | 23 +++++++++++++++++---
 3 files changed, 23 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9225f90/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 4a415eb..a5a97db 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.16
+ * Fix SStable ordering by max timestamp in SinglePartitionReadCommand (CASSANDRA-14010)
  * Accept role names containing forward-slash (CASSANDRA-14088)
  * Optimize CRC check chance probability calculations (CASSANDRA-14094)
  * Fix cleanup on keyspace with no replicas (CASSANDRA-13526)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9225f90/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
index fb9343f..7e1bc1a 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
@@ -140,7 +140,8 @@ public abstract class SSTableReader extends SSTable implements SelfRefCounted<SS
     }
     private static final RateLimiter meterSyncThrottle = RateLimiter.create(100.0);
 
-    public static final Comparator<SSTableReader> maxTimestampComparator = (o1, o2) -> Long.compare(o1.getMaxTimestamp(), o2.getMaxTimestamp());
+    // Descending order
+    public static final Comparator<SSTableReader> maxTimestampComparator = (o1, o2) -> Long.compare(o2.getMaxTimestamp(), o1.getMaxTimestamp());
 
     // it's just an object, which we use regular Object equality on; we introduce a special class just for easy recognition
     public static final class UniqueIdentifier {}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9225f90/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java b/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
index 052b53d..f32bcc6 100644
--- a/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
+++ b/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
@@ -17,11 +17,8 @@
  */
 package org.apache.cassandra.cql3;
 
-import java.util.*;
 import org.junit.Test;
 
-import static junit.framework.Assert.*;
-
 public class SimpleQueryTest extends CQLTester
 {
     @Test
@@ -529,4 +526,24 @@ public class SimpleQueryTest extends CQLTester
             row(0, 0, 0, 0)
         );
     }
+
+    @Test
+    public void testSStableTimestampOrdering() throws Throwable
+    {
+        createTable("CREATE TABLE %s (k1 int, v1 int, v2 int, PRIMARY KEY (k1))");
+        disableCompaction();
+
+        // sstable1
+        execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,1)  USING TIMESTAMP 5");
+        flush();
+
+        // sstable2
+        execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,2)  USING TIMESTAMP 8");
+        flush();
+
+        execute("INSERT INTO %s(k1) VALUES(1)  USING TIMESTAMP 7");
+        execute("DELETE FROM %s USING TIMESTAMP 6 WHERE k1 = 1");
+
+        assertRows(execute("SELECT * FROM %s WHERE k1=1"), row(1, 1, 2));
+    } 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11

Posted by pa...@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/b637eb11
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b637eb11
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b637eb11

Branch: refs/heads/trunk
Commit: b637eb11c956698dc2ffb936eb85224e22dc7d94
Parents: cdcd652 a9225f9
Author: Paulo Motta <pa...@apache.org>
Authored: Fri Dec 8 09:03:53 2017 +1100
Committer: Paulo Motta <pa...@apache.org>
Committed: Fri Dec 8 09:04:56 2017 +1100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../io/sstable/format/SSTableReader.java        |  3 ++-
 .../apache/cassandra/cql3/SimpleQueryTest.java  | 20 ++++++++++++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b637eb11/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 691b285,a5a97db..18a22bd
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,13 -1,5 +1,14 @@@
 +3.11.2
 + * Remove OpenJDK log warning (CASSANDRA-13916)
 + * Prevent compaction strategies from looping indefinitely (CASSANDRA-14079)
 + * Cache disk boundaries (CASSANDRA-13215)
 + * Add asm jar to build.xml for maven builds (CASSANDRA-11193)
 + * Round buffer size to powers of 2 for the chunk cache (CASSANDRA-13897)
 + * Update jackson JSON jars (CASSANDRA-13949)
 + * Avoid locks when checking LCS fanout and if we should defrag (CASSANDRA-13930)
 +Merged from 3.0:
  3.0.16
+  * Fix SStable ordering by max timestamp in SinglePartitionReadCommand (CASSANDRA-14010)
   * Accept role names containing forward-slash (CASSANDRA-14088)
   * Optimize CRC check chance probability calculations (CASSANDRA-14094)
   * Fix cleanup on keyspace with no replicas (CASSANDRA-13526)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b637eb11/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b637eb11/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
index c2de52a,f32bcc6..62fe5a1
--- a/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
+++ b/test/unit/org/apache/cassandra/cql3/SimpleQueryTest.java
@@@ -547,42 -527,23 +547,62 @@@ public class SimpleQueryTest extends CQ
          );
      }
  
 +    /** Test for Cassandra issue 10958 **/
 +    @Test
 +    public void restrictionOnRegularColumnWithStaticColumnPresentTest() throws Throwable
 +    {
 +        createTable("CREATE TABLE %s (id int, id2 int, age int static, extra int, PRIMARY KEY(id, id2))");
 +
 +        execute("INSERT INTO %s (id, id2, age, extra) VALUES (?, ?, ?, ?)", 1, 1, 1, 1);
 +        execute("INSERT INTO %s (id, id2, age, extra) VALUES (?, ?, ?, ?)", 2, 2, 2, 2);
 +        execute("UPDATE %s SET age=? WHERE id=?", 3, 3);
 +
 +        assertRows(execute("SELECT * FROM %s"),
 +            row(1, 1, 1, 1),
 +            row(2, 2, 2, 2),
 +            row(3, null, 3, null)
 +        );
 +
 +        assertRows(execute("SELECT * FROM %s WHERE extra > 1 ALLOW FILTERING"),
 +            row(2, 2, 2, 2)
 +        );
 +    }
 +
 +    @Test
 +    public void testRowFilteringOnStaticColumn() throws Throwable
 +    {
 +        createTable("CREATE TABLE %s (id int, name text, age int static, PRIMARY KEY (id, name))");
 +        for (int i = 0; i < 5; i++)
 +        {
 +            execute("INSERT INTO %s (id, name, age) VALUES (?, ?, ?)", i, "NameDoesNotMatter", i);
 +        }
 +
 +        assertInvalid("SELECT id, age FROM %s WHERE age < 1");
 +        assertRows(execute("SELECT id, age FROM %s WHERE age < 1 ALLOW FILTERING"),
 +                   row(0, 0));
 +        assertRows(execute("SELECT id, age FROM %s WHERE age > 0 AND age < 3 ALLOW FILTERING"),
 +                   row(1, 1), row(2, 2));
 +        assertRows(execute("SELECT id, age FROM %s WHERE age > 3 ALLOW FILTERING"),
 +                   row(4, 4));
 +    }
++
+     @Test
+     public void testSStableTimestampOrdering() throws Throwable
+     {
+         createTable("CREATE TABLE %s (k1 int, v1 int, v2 int, PRIMARY KEY (k1))");
+         disableCompaction();
+ 
+         // sstable1
+         execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,1)  USING TIMESTAMP 5");
+         flush();
+ 
+         // sstable2
+         execute("INSERT INTO %s(k1,v1,v2) VALUES(1,1,2)  USING TIMESTAMP 8");
+         flush();
+ 
+         execute("INSERT INTO %s(k1) VALUES(1)  USING TIMESTAMP 7");
+         execute("DELETE FROM %s USING TIMESTAMP 6 WHERE k1 = 1");
+ 
+         assertRows(execute("SELECT * FROM %s WHERE k1=1"), row(1, 1, 2));
+     } 
  }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org