You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2021/09/20 07:50:04 UTC

[cassandra] branch cassandra-3.11 updated: Improve MV TTL error message

This is an automated email from the ASF dual-hosted git repository.

bereng pushed a commit to branch cassandra-3.11
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-3.11 by this push:
     new 8f4ae7d  Improve MV TTL error message
8f4ae7d is described below

commit 8f4ae7d825d90a18327c5555386f3cdaf414d836
Author: Bereng <be...@gmail.com>
AuthorDate: Thu Sep 16 09:03:27 2021 +0200

    Improve MV TTL error message
    
    patch by Brandon Williams, Berenguer Blasi; reviewed by Brandon Williams, Benjamin Lerer, Aleksei Zotov for CASSANDRA-16960
    
    Co-authored-by: Brandon Williams <br...@apache.org>
    Co-authored-by: Berenguer Blasi <be...@gmail.com>
---
 .../org/apache/cassandra/cql3/statements/AlterViewStatement.java | 5 +++--
 test/unit/org/apache/cassandra/cql3/ViewTest.java                | 9 ++++++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/java/org/apache/cassandra/cql3/statements/AlterViewStatement.java b/src/java/org/apache/cassandra/cql3/statements/AlterViewStatement.java
index ea87cfd..91c5462 100644
--- a/src/java/org/apache/cassandra/cql3/statements/AlterViewStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/AlterViewStatement.java
@@ -79,9 +79,10 @@ public class AlterViewStatement extends SchemaAlteringStatement
 
         if (params.defaultTimeToLive > 0)
         {
-            throw new InvalidRequestException("Cannot set or alter default_time_to_live for a materialized view. " +
+            throw new InvalidRequestException("Forbidden default_time_to_live detected for a materialized view. " +
                                               "Data in a materialized view always expire at the same time than " +
-                                              "the corresponding data in the parent table.");
+                                              "the corresponding data in the parent table. default_time_to_live " +
+                                              "must be set to zero, see CASSANDRA-12868 for more information");
         }
 
         viewCopy.metadata.params(params);
diff --git a/test/unit/org/apache/cassandra/cql3/ViewTest.java b/test/unit/org/apache/cassandra/cql3/ViewTest.java
index db742f7..6dd6a85 100644
--- a/test/unit/org/apache/cassandra/cql3/ViewTest.java
+++ b/test/unit/org/apache/cassandra/cql3/ViewTest.java
@@ -1380,16 +1380,23 @@ public class ViewTest extends CQLTester
                     "c int, " +
                     "val int) WITH default_time_to_live = 60");
 
+        execute("USE " + keyspace());
+        executeNet(protocolVersion, "USE " + keyspace());
+
         createView("mv_ttl2", "CREATE MATERIALIZED VIEW %s AS SELECT * FROM %%s WHERE k IS NOT NULL AND c IS NOT NULL PRIMARY KEY (k,c)");
 
         // Must NOT include "default_time_to_live" on alter Materialized View
         try
         {
-            executeNet(protocolVersion, "ALTER MATERIALIZED VIEW %s WITH default_time_to_live = 30");
+            executeNet(protocolVersion, "ALTER MATERIALIZED VIEW " + keyspace() + ".mv_ttl2 WITH default_time_to_live = 30");
             fail("Should fail if TTL is provided while altering materialized view");
         }
         catch (Exception e)
         {
+            // Make sure the message is clear. See CASSANDRA-16960
+            assertEquals("Forbidden default_time_to_live detected for a materialized view. Data in a materialized view always expire at the same time than the corresponding "
+                         + "data in the parent table. default_time_to_live must be set to zero, see CASSANDRA-12868 for more information",
+                         e.getMessage());
         }
     }
 

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