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 <berenguerbl...@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 <brandonwilli...@apache.org> Co-authored-by: Berenguer Blasi <berenguerbl...@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-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org