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/08/31 10:37:34 UTC

[1/3] cassandra git commit: Revert CASSANDRA-10368 of support non-pk base column filtering on MV due to correctness

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.11 4f12c4092 -> 425880ffb
  refs/heads/trunk f40198fc6 -> adf025bd4


Revert CASSANDRA-10368 of support non-pk base column filtering on MV due to correctness

Patch by Zhao Yang; Reviewed by Paulo Motta for CASSANDRA-13798


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

Branch: refs/heads/cassandra-3.11
Commit: 425880ffb2e6bd5aeaa509fdbfa553db58b74c43
Parents: 4f12c40
Author: Zhao Yang <zh...@gmail.com>
Authored: Fri Aug 25 17:55:22 2017 +0800
Committer: Paulo Motta <pa...@apache.org>
Committed: Thu Aug 31 05:14:05 2017 -0500

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 NEWS.txt                                             |  6 ++++++
 .../cql3/statements/CreateViewStatement.java         | 15 +++++++++++++++
 .../org/apache/cassandra/cql3/ViewFilteringTest.java |  9 +++++++++
 .../org/apache/cassandra/cql3/ViewSchemaTest.java    | 15 +++++++++++++++
 5 files changed, 46 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index af185cf..e5ccf45 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.11.1
+ * Revert CASSANDRA-10368 of supporting non-pk column filtering due to correctness (CASSANDRA-13798)
  * Fix cassandra-stress hang issues when an error during cluster connection happens (CASSANDRA-12938)
  * Better bootstrap failure message when blocked by (potential) range movement (CASSANDRA-13744)
  * "ignore" option is ignored in sstableloader (CASSANDRA-13721)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/NEWS.txt
----------------------------------------------------------------------
diff --git a/NEWS.txt b/NEWS.txt
index 10f631f..8e39667 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -26,6 +26,12 @@ Upgrading
 
 Upgrading
 ---------
+   - Creating Materialized View with filtering on non-primary-key base column
+     (added in CASSANDRA-10368) is disabled, because the liveness of view row
+     is depending on multiple filtered base non-key columns and base non-key
+     column used in view primary-key. This semantic cannot be supported without
+     storage format change, see CASSANDRA-13826. For append-only use case, you
+     may still use this feature with a startup flag: "-Dcassandra.mv.allow_filtering_nonkey_columns_unsafe=true"
    - ALTER TABLE (ADD/DROP COLUMN) operations concurrent with a read might
      result into data corruption (see CASSANDRA-13004 for more details).
      Fixing this bug required a messaging protocol version bump. By default,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java b/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java
index 668f791..8a8fc17 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java
@@ -19,6 +19,7 @@
 package org.apache.cassandra.cql3.statements;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Sets;
@@ -210,6 +211,20 @@ public class CreateViewStatement extends SchemaAlteringStatement
         if (!prepared.boundNames.isEmpty())
             throw new InvalidRequestException("Cannot use query parameters in CREATE MATERIALIZED VIEW statements");
 
+        // SEE CASSANDRA-13798, use it if the use case is append-only.
+        final boolean allowFilteringNonKeyColumns = Boolean.parseBoolean(System.getProperty("cassandra.mv.allow_filtering_nonkey_columns_unsafe",
+                                                                                            "false"));
+        if (!restrictions.nonPKRestrictedColumns(false).isEmpty() && !allowFilteringNonKeyColumns)
+        {
+            throw new InvalidRequestException(
+                                              String.format("Non-primary key columns cannot be restricted in the SELECT statement used"
+                                                      + " for materialized view creation (got restrictions on: %s)",
+                                                            restrictions.nonPKRestrictedColumns(false)
+                                                                        .stream()
+                                                                        .map(def -> def.name.toString())
+                                                                        .collect(Collectors.joining(", "))));
+        }
+
         String whereClauseText = View.relationsToWhereClause(whereClause.relations);
 
         Set<ColumnIdentifier> basePrimaryKeyCols = new HashSet<>();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java b/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java
index cc8bfe9..87b19ad 100644
--- a/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java
+++ b/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java
@@ -21,6 +21,7 @@ package org.apache.cassandra.cql3;
 import java.util.*;
 
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -48,7 +49,15 @@ public class ViewFilteringTest extends CQLTester
     public static void startup()
     {
         requireNetwork();
+        System.setProperty("cassandra.mv.allow_filtering_nonkey_columns_unsafe", "true");
     }
+
+    @AfterClass
+    public static void TearDown()
+    {
+        System.setProperty("cassandra.mv.allow_filtering_nonkey_columns_unsafe", "false");
+    }
+
     @Before
     public void begin()
     {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java b/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
index 86e00dc..c83d96d 100644
--- a/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
+++ b/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
@@ -684,4 +684,19 @@ public class ViewSchemaTest extends CQLTester
             Assert.assertEquals("Cannot use DROP TABLE on Materialized View", e.getMessage());
         }
     }
+
+    @Test
+    public void testCreateMVWithFilteringOnNonPkColumn() throws Throwable
+    {
+        // SEE CASSANDRA-13798, we cannot properly support non-pk base column filtering for mv without huge storage
+        // format changes.
+        createTable("CREATE TABLE %s ( a int, b int, c int, d int, PRIMARY KEY (a, b, c))");
+
+        executeNet(protocolVersion, "USE " + keyspace());
+
+        assertInvalidMessage("Non-primary key columns cannot be restricted in the SELECT statement used for materialized view creation",
+                             "CREATE MATERIALIZED VIEW " + keyspace() + ".mv AS SELECT * FROM %s "
+                                     + "WHERE b IS NOT NULL AND c IS NOT NULL AND a IS NOT NULL "
+                                     + "AND d = 1 PRIMARY KEY (c, b, a)");
+    }
 }


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


[2/3] cassandra git commit: Revert CASSANDRA-10368 of support non-pk base column filtering on MV due to correctness

Posted by pa...@apache.org.
Revert CASSANDRA-10368 of support non-pk base column filtering on MV due to correctness

Patch by Zhao Yang; Reviewed by Paulo Motta for CASSANDRA-13798


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

Branch: refs/heads/trunk
Commit: 425880ffb2e6bd5aeaa509fdbfa553db58b74c43
Parents: 4f12c40
Author: Zhao Yang <zh...@gmail.com>
Authored: Fri Aug 25 17:55:22 2017 +0800
Committer: Paulo Motta <pa...@apache.org>
Committed: Thu Aug 31 05:14:05 2017 -0500

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 NEWS.txt                                             |  6 ++++++
 .../cql3/statements/CreateViewStatement.java         | 15 +++++++++++++++
 .../org/apache/cassandra/cql3/ViewFilteringTest.java |  9 +++++++++
 .../org/apache/cassandra/cql3/ViewSchemaTest.java    | 15 +++++++++++++++
 5 files changed, 46 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index af185cf..e5ccf45 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.11.1
+ * Revert CASSANDRA-10368 of supporting non-pk column filtering due to correctness (CASSANDRA-13798)
  * Fix cassandra-stress hang issues when an error during cluster connection happens (CASSANDRA-12938)
  * Better bootstrap failure message when blocked by (potential) range movement (CASSANDRA-13744)
  * "ignore" option is ignored in sstableloader (CASSANDRA-13721)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/NEWS.txt
----------------------------------------------------------------------
diff --git a/NEWS.txt b/NEWS.txt
index 10f631f..8e39667 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -26,6 +26,12 @@ Upgrading
 
 Upgrading
 ---------
+   - Creating Materialized View with filtering on non-primary-key base column
+     (added in CASSANDRA-10368) is disabled, because the liveness of view row
+     is depending on multiple filtered base non-key columns and base non-key
+     column used in view primary-key. This semantic cannot be supported without
+     storage format change, see CASSANDRA-13826. For append-only use case, you
+     may still use this feature with a startup flag: "-Dcassandra.mv.allow_filtering_nonkey_columns_unsafe=true"
    - ALTER TABLE (ADD/DROP COLUMN) operations concurrent with a read might
      result into data corruption (see CASSANDRA-13004 for more details).
      Fixing this bug required a messaging protocol version bump. By default,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java b/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java
index 668f791..8a8fc17 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java
@@ -19,6 +19,7 @@
 package org.apache.cassandra.cql3.statements;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Sets;
@@ -210,6 +211,20 @@ public class CreateViewStatement extends SchemaAlteringStatement
         if (!prepared.boundNames.isEmpty())
             throw new InvalidRequestException("Cannot use query parameters in CREATE MATERIALIZED VIEW statements");
 
+        // SEE CASSANDRA-13798, use it if the use case is append-only.
+        final boolean allowFilteringNonKeyColumns = Boolean.parseBoolean(System.getProperty("cassandra.mv.allow_filtering_nonkey_columns_unsafe",
+                                                                                            "false"));
+        if (!restrictions.nonPKRestrictedColumns(false).isEmpty() && !allowFilteringNonKeyColumns)
+        {
+            throw new InvalidRequestException(
+                                              String.format("Non-primary key columns cannot be restricted in the SELECT statement used"
+                                                      + " for materialized view creation (got restrictions on: %s)",
+                                                            restrictions.nonPKRestrictedColumns(false)
+                                                                        .stream()
+                                                                        .map(def -> def.name.toString())
+                                                                        .collect(Collectors.joining(", "))));
+        }
+
         String whereClauseText = View.relationsToWhereClause(whereClause.relations);
 
         Set<ColumnIdentifier> basePrimaryKeyCols = new HashSet<>();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java b/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java
index cc8bfe9..87b19ad 100644
--- a/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java
+++ b/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java
@@ -21,6 +21,7 @@ package org.apache.cassandra.cql3;
 import java.util.*;
 
 import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -48,7 +49,15 @@ public class ViewFilteringTest extends CQLTester
     public static void startup()
     {
         requireNetwork();
+        System.setProperty("cassandra.mv.allow_filtering_nonkey_columns_unsafe", "true");
     }
+
+    @AfterClass
+    public static void TearDown()
+    {
+        System.setProperty("cassandra.mv.allow_filtering_nonkey_columns_unsafe", "false");
+    }
+
     @Before
     public void begin()
     {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/425880ff/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java b/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
index 86e00dc..c83d96d 100644
--- a/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
+++ b/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
@@ -684,4 +684,19 @@ public class ViewSchemaTest extends CQLTester
             Assert.assertEquals("Cannot use DROP TABLE on Materialized View", e.getMessage());
         }
     }
+
+    @Test
+    public void testCreateMVWithFilteringOnNonPkColumn() throws Throwable
+    {
+        // SEE CASSANDRA-13798, we cannot properly support non-pk base column filtering for mv without huge storage
+        // format changes.
+        createTable("CREATE TABLE %s ( a int, b int, c int, d int, PRIMARY KEY (a, b, c))");
+
+        executeNet(protocolVersion, "USE " + keyspace());
+
+        assertInvalidMessage("Non-primary key columns cannot be restricted in the SELECT statement used for materialized view creation",
+                             "CREATE MATERIALIZED VIEW " + keyspace() + ".mv AS SELECT * FROM %s "
+                                     + "WHERE b IS NOT NULL AND c IS NOT NULL AND a IS NOT NULL "
+                                     + "AND d = 1 PRIMARY KEY (c, b, a)");
+    }
 }


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


[3/3] 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/adf025bd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/adf025bd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/adf025bd

Branch: refs/heads/trunk
Commit: adf025bd46d8255db3e96b8c0377a1e6f861d5b2
Parents: f40198f 425880f
Author: Paulo Motta <pa...@apache.org>
Authored: Thu Aug 31 05:18:46 2017 -0500
Committer: Paulo Motta <pa...@apache.org>
Committed: Thu Aug 31 05:18:46 2017 -0500

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 NEWS.txt                                             |  6 ++++++
 .../cql3/statements/CreateViewStatement.java         | 15 +++++++++++++++
 .../org/apache/cassandra/cql3/ViewFilteringTest.java |  9 +++++++++
 .../org/apache/cassandra/cql3/ViewSchemaTest.java    | 15 +++++++++++++++
 5 files changed, 46 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/adf025bd/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 99f2b4d,e5ccf45..a1951b4
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,132 -1,5 +1,133 @@@
 +4.0
 + * Reduce memory copies and object creations when acting on ByteBufs (CASSANDRA-13789)
 + * simplify mx4j configuration (Cassandra-13578)
 + * Fix trigger example on 4.0 (CASSANDRA-13796)
 + * force minumum timeout value (CASSANDRA-9375)
 + * use netty for streaming (CASSANDRA-12229)
 + * Use netty for internode messaging (CASSANDRA-8457)
 + * Add bytes repaired/unrepaired to nodetool tablestats (CASSANDRA-13774)
 + * Don't delete incremental repair sessions if they still have sstables (CASSANDRA-13758)
 + * Fix pending repair manager index out of bounds check (CASSANDRA-13769)
 + * Don't use RangeFetchMapCalculator when RF=1 (CASSANDRA-13576)
 + * Don't optimise trivial ranges in RangeFetchMapCalculator (CASSANDRA-13664)
 + * Use an ExecutorService for repair commands instead of new Thread(..).start() (CASSANDRA-13594)
 + * Fix race / ref leak in anticompaction (CASSANDRA-13688)
 + * Expose tasks queue length via JMX (CASSANDRA-12758)
 + * Fix race / ref leak in PendingRepairManager (CASSANDRA-13751)
 + * Enable ppc64le runtime as unsupported architecture (CASSANDRA-13615)
 + * Improve sstablemetadata output (CASSANDRA-11483)
 + * Support for migrating legacy users to roles has been dropped (CASSANDRA-13371)
 + * Introduce error metrics for repair (CASSANDRA-13387)
 + * Refactoring to primitive functional interfaces in AuthCache (CASSANDRA-13732)
 + * Update metrics to 3.1.5 (CASSANDRA-13648)
 + * batch_size_warn_threshold_in_kb can now be set at runtime (CASSANDRA-13699)
 + * Avoid always rebuilding secondary indexes at startup (CASSANDRA-13725)
 + * Upgrade JMH from 1.13 to 1.19 (CASSANDRA-13727)
 + * Upgrade SLF4J from 1.7.7 to 1.7.25 (CASSANDRA-12996)
 + * Default for start_native_transport now true if not set in config (CASSANDRA-13656)
 + * Don't add localhost to the graph when calculating where to stream from (CASSANDRA-13583)
 + * Make CDC availability more deterministic via hard-linking (CASSANDRA-12148)
 + * Allow skipping equality-restricted clustering columns in ORDER BY clause (CASSANDRA-10271)
 + * Use common nowInSec for validation compactions (CASSANDRA-13671)
 + * Improve handling of IR prepare failures (CASSANDRA-13672)
 + * Send IR coordinator messages synchronously (CASSANDRA-13673)
 + * Flush system.repair table before IR finalize promise (CASSANDRA-13660)
 + * Fix column filter creation for wildcard queries (CASSANDRA-13650)
 + * Add 'nodetool getbatchlogreplaythrottle' and 'nodetool setbatchlogreplaythrottle' (CASSANDRA-13614)
 + * fix race condition in PendingRepairManager (CASSANDRA-13659)
 + * Allow noop incremental repair state transitions (CASSANDRA-13658)
 + * Run repair with down replicas (CASSANDRA-10446)
 + * Added started & completed repair metrics (CASSANDRA-13598)
 + * Added started & completed repair metrics (CASSANDRA-13598)
 + * Improve secondary index (re)build failure and concurrency handling (CASSANDRA-10130)
 + * Improve calculation of available disk space for compaction (CASSANDRA-13068)
 + * Change the accessibility of RowCacheSerializer for third party row cache plugins (CASSANDRA-13579)
 + * Allow sub-range repairs for a preview of repaired data (CASSANDRA-13570)
 + * NPE in IR cleanup when columnfamily has no sstables (CASSANDRA-13585)
 + * Fix Randomness of stress values (CASSANDRA-12744)
 + * Allow selecting Map values and Set elements (CASSANDRA-7396)
 + * Fast and garbage-free Streaming Histogram (CASSANDRA-13444)
 + * Update repairTime for keyspaces on completion (CASSANDRA-13539)
 + * Add configurable upper bound for validation executor threads (CASSANDRA-13521)
 + * Bring back maxHintTTL propery (CASSANDRA-12982)
 + * Add testing guidelines (CASSANDRA-13497)
 + * Add more repair metrics (CASSANDRA-13531)
 + * RangeStreamer should be smarter when picking endpoints for streaming (CASSANDRA-4650)
 + * Avoid rewrapping an exception thrown for cache load functions (CASSANDRA-13367)
 + * Log time elapsed for each incremental repair phase (CASSANDRA-13498)
 + * Add multiple table operation support to cassandra-stress (CASSANDRA-8780)
 + * Fix incorrect cqlsh results when selecting same columns multiple times (CASSANDRA-13262)
 + * Fix WriteResponseHandlerTest is sensitive to test execution order (CASSANDRA-13421)
 + * Improve incremental repair logging (CASSANDRA-13468)
 + * Start compaction when incremental repair finishes (CASSANDRA-13454)
 + * Add repair streaming preview (CASSANDRA-13257)
 + * Cleanup isIncremental/repairedAt usage (CASSANDRA-13430)
 + * Change protocol to allow sending key space independent of query string (CASSANDRA-10145)
 + * Make gc_log and gc_warn settable at runtime (CASSANDRA-12661)
 + * Take number of files in L0 in account when estimating remaining compaction tasks (CASSANDRA-13354)
 + * Skip building views during base table streams on range movements (CASSANDRA-13065)
 + * Improve error messages for +/- operations on maps and tuples (CASSANDRA-13197)
 + * Remove deprecated repair JMX APIs (CASSANDRA-11530)
 + * Fix version check to enable streaming keep-alive (CASSANDRA-12929)
 + * Make it possible to monitor an ideal consistency level separate from actual consistency level (CASSANDRA-13289)
 + * Outbound TCP connections ignore internode authenticator (CASSANDRA-13324)
 + * Upgrade junit from 4.6 to 4.12 (CASSANDRA-13360)
 + * Cleanup ParentRepairSession after repairs (CASSANDRA-13359)
 + * Upgrade snappy-java to 1.1.2.6 (CASSANDRA-13336)
 + * Incremental repair not streaming correct sstables (CASSANDRA-13328)
 + * Upgrade the jna version to 4.3.0 (CASSANDRA-13300)
 + * Add the currentTimestamp, currentDate, currentTime and currentTimeUUID functions (CASSANDRA-13132)
 + * Remove config option index_interval (CASSANDRA-10671)
 + * Reduce lock contention for collection types and serializers (CASSANDRA-13271)
 + * Make it possible to override MessagingService.Verb ids (CASSANDRA-13283)
 + * Avoid synchronized on prepareForRepair in ActiveRepairService (CASSANDRA-9292)
 + * Adds the ability to use uncompressed chunks in compressed files (CASSANDRA-10520)
 + * Don't flush sstables when streaming for incremental repair (CASSANDRA-13226)
 + * Remove unused method (CASSANDRA-13227)
 + * Fix minor bugs related to #9143 (CASSANDRA-13217)
 + * Output warning if user increases RF (CASSANDRA-13079)
 + * Remove pre-3.0 streaming compatibility code for 4.0 (CASSANDRA-13081)
 + * Add support for + and - operations on dates (CASSANDRA-11936)
 + * Fix consistency of incrementally repaired data (CASSANDRA-9143)
 + * Increase commitlog version (CASSANDRA-13161)
 + * Make TableMetadata immutable, optimize Schema (CASSANDRA-9425)
 + * Refactor ColumnCondition (CASSANDRA-12981)
 + * Parallelize streaming of different keyspaces (CASSANDRA-4663)
 + * Improved compactions metrics (CASSANDRA-13015)
 + * Speed-up start-up sequence by avoiding un-needed flushes (CASSANDRA-13031)
 + * Use Caffeine (W-TinyLFU) for on-heap caches (CASSANDRA-10855)
 + * Thrift removal (CASSANDRA-11115)
 + * Remove pre-3.0 compatibility code for 4.0 (CASSANDRA-12716)
 + * Add column definition kind to dropped columns in schema (CASSANDRA-12705)
 + * Add (automate) Nodetool Documentation (CASSANDRA-12672)
 + * Update bundled cqlsh python driver to 3.7.0 (CASSANDRA-12736)
 + * Reject invalid replication settings when creating or altering a keyspace (CASSANDRA-12681)
 + * Clean up the SSTableReader#getScanner API wrt removal of RateLimiter (CASSANDRA-12422)
 + * Use new token allocation for non bootstrap case as well (CASSANDRA-13080)
 + * Avoid byte-array copy when key cache is disabled (CASSANDRA-13084)
 + * Require forceful decommission if number of nodes is less than replication factor (CASSANDRA-12510)
 + * Allow IN restrictions on column families with collections (CASSANDRA-12654)
 + * Log message size in trace message in OutboundTcpConnection (CASSANDRA-13028)
 + * Add timeUnit Days for cassandra-stress (CASSANDRA-13029)
 + * Add mutation size and batch metrics (CASSANDRA-12649)
 + * Add method to get size of endpoints to TokenMetadata (CASSANDRA-12999)
 + * Expose time spent waiting in thread pool queue (CASSANDRA-8398)
 + * Conditionally update index built status to avoid unnecessary flushes (CASSANDRA-12969)
 + * cqlsh auto completion: refactor definition of compaction strategy options (CASSANDRA-12946)
 + * Add support for arithmetic operators (CASSANDRA-11935)
 + * Add histogram for delay to deliver hints (CASSANDRA-13234)
 + * Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307)
 + * Changing `max_hint_window_in_ms` at runtime (CASSANDRA-11720)
 + * Trivial format error in StorageProxy (CASSANDRA-13551)
 + * Nodetool repair can hang forever if we lose the notification for the repair completing/failing (CASSANDRA-13480)
 + * Anticompaction can cause noisy log messages (CASSANDRA-13684)
 + * Switch to client init for sstabledump (CASSANDRA-13683)
 + * CQLSH: Don't pause when capturing data (CASSANDRA-13743)
 +
 +
  3.11.1
+  * Revert CASSANDRA-10368 of supporting non-pk column filtering due to correctness (CASSANDRA-13798)
 + * Add a skip read validation flag to cassandra-stress (CASSANDRA-13772)
   * Fix cassandra-stress hang issues when an error during cluster connection happens (CASSANDRA-12938)
   * Better bootstrap failure message when blocked by (potential) range movement (CASSANDRA-13744)
   * "ignore" option is ignored in sstableloader (CASSANDRA-13721)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adf025bd/NEWS.txt
----------------------------------------------------------------------
diff --cc NEWS.txt
index 2038342,8e39667..c9963c3
--- a/NEWS.txt
+++ b/NEWS.txt
@@@ -73,6 -26,37 +73,12 @@@ Upgradin
  
  Upgrading
  ---------
+    - Creating Materialized View with filtering on non-primary-key base column
+      (added in CASSANDRA-10368) is disabled, because the liveness of view row
+      is depending on multiple filtered base non-key columns and base non-key
+      column used in view primary-key. This semantic cannot be supported without
+      storage format change, see CASSANDRA-13826. For append-only use case, you
+      may still use this feature with a startup flag: "-Dcassandra.mv.allow_filtering_nonkey_columns_unsafe=true"
 -   - ALTER TABLE (ADD/DROP COLUMN) operations concurrent with a read might
 -     result into data corruption (see CASSANDRA-13004 for more details).
 -     Fixing this bug required a messaging protocol version bump. By default,
 -     Cassandra 3.11 will use 3014 version for messaging.
 -
 -     Since Schema Migrations rely the on exact messaging protocol version
 -     match between nodes, if you need schema changes during the upgrade
 -     process, you have to start your nodes with `-Dcassandra.force_3_0_protocol_version=true`
 -     first, in order to temporarily force a backwards compatible protocol.
 -     After the whole cluster is upgraded to 3.11, do a rolling
 -     restart of the cluster without setting that flag.
 -
 -     3.11 nodes with and withouot the flag set will be able to do schema
 -     migrations with other 3.x and 3.0.x releases.
 -
 -     While running the cluster with the flag set to true on 3.11 (in
 -     compatibility mode), avoid adding or removing any columns to/from
 -     existing tables.
 -
 -     If your cluster can do without schema migrations during the upgrade
 -     time, just start the cluster normally without setting aforementioned
 -     flag.
 -
 -     If you are upgrading from 3.0.14+ (of 3.0.x branch), you do not have
 -     to set an flag while upgrading to ensure schema migrations.
     - The NativeAccessMBean isAvailable method will only return true if the
       native library has been successfully linked. Previously it was returning
       true if JNA could be found but was not taking into account link failures.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adf025bd/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adf025bd/test/unit/org/apache/cassandra/cql3/ViewFilteringTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/adf025bd/test/unit/org/apache/cassandra/cql3/ViewSchemaTest.java
----------------------------------------------------------------------


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