You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by aw...@apache.org on 2017/11/15 21:46:43 UTC
[15/50] cassandra git commit: Add test verifying that a schema
propagation adding a view over a non existing table doesn't prevent a node
from start
Add test verifying that a schema propagation adding a view over a non existing table doesn't prevent a node from start
patch by Andres de la Peña; reviewed by Jake Luciani for CASSANDRA-13737
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/95920874
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/95920874
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/95920874
Branch: refs/heads/master
Commit: 959208749d70e5808aec144e87b73e90d56a7f91
Parents: 7e3bcfd
Author: Andrés de la Peña <a....@gmail.com>
Authored: Tue Aug 8 10:01:15 2017 +0100
Committer: Andrés de la Peña <a....@gmail.com>
Committed: Tue Aug 8 10:01:15 2017 +0100
----------------------------------------------------------------------
materialized_views_test.py | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/95920874/materialized_views_test.py
----------------------------------------------------------------------
diff --git a/materialized_views_test.py b/materialized_views_test.py
index 306d719..77b20e6 100644
--- a/materialized_views_test.py
+++ b/materialized_views_test.py
@@ -1532,6 +1532,41 @@ class TestMaterializedViews(Tester):
session.execute("DROP MATERIALIZED VIEW mv")
session.execute("DROP TABLE test")
+ def propagate_view_creation_over_non_existing_table(self):
+ """
+ The internal addition of a view over a non existing table should be ignored
+ @jira_ticket CASSANDRA-13737
+ """
+
+ cluster = self.cluster
+ cluster.populate(3)
+ cluster.start()
+ node1, node2, node3 = self.cluster.nodelist()
+ session = self.patient_cql_connection(node1, consistency_level=ConsistencyLevel.QUORUM)
+ create_ks(session, 'ks', 3)
+
+ session.execute('CREATE TABLE users (username varchar PRIMARY KEY, state varchar)')
+
+ # create a materialized view only in nodes 1 and 2
+ node3.stop(wait_other_notice=True)
+ session.execute(('CREATE MATERIALIZED VIEW users_by_state AS '
+ 'SELECT * FROM users WHERE state IS NOT NULL AND username IS NOT NULL '
+ 'PRIMARY KEY (state, username)'))
+
+ # drop the base table only in node 3
+ node1.stop(wait_other_notice=True)
+ node2.stop(wait_other_notice=True)
+ node3.start(wait_for_binary_proto=True)
+ session = self.patient_cql_connection(node3, consistency_level=ConsistencyLevel.QUORUM)
+ session.execute('DROP TABLE ks.users')
+
+ # restart the cluster
+ cluster.stop()
+ cluster.start()
+
+ # node3 should have received and ignored the creation of the MV over the dropped table
+ self.assertTrue(node3.grep_log('Not adding view users_by_state because the base table'))
+
# For read verification
class MutationPresence(Enum):
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org