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