Drop table should remove corresponding entries in dropped_columns table

patch by Zhao Yang; reviewed by Aleksey Yeschenko for CASSANDRA-13730


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

Branch: refs/heads/master
Commit: 7e3bcfd52fbc926b4c43e258a7e0efa19e1ca13d
Parents: 55c4ca8
Author: Zhao Yang <zhaoyangsingap...@gmail.com>
Authored: Sun Jul 30 11:54:29 2017 +0800
Committer: Aleksey Yeschenko <alek...@yeschenko.com>
Committed: Thu Aug 3 14:31:47 2017 +0100

----------------------------------------------------------------------
 snapshot_test.py | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/7e3bcfd5/snapshot_test.py
----------------------------------------------------------------------
diff --git a/snapshot_test.py b/snapshot_test.py
index 563af81..1aa5a70 100644
--- a/snapshot_test.py
+++ b/snapshot_test.py
@@ -115,6 +115,40 @@ class TestSnapshot(SnapshotTester):
 
         self.assertEqual(rows[0][0], 100)
 
+    @since('3.0')
+    def test_snapshot_and_restore_drop_table_remove_dropped_column(self):
+        """
+        @jira_ticket CASSANDRA-13730
+
+        Dropping table should clear entries in dropped_column table
+        """
+        cluster = self.cluster
+        cluster.populate(1).start()
+        node1, = cluster.nodelist()
+        session = self.patient_cql_connection(node1)
+
+        # Create schema and insert some data
+        create_ks(session, 'ks', 1)
+        session.execute("CREATE TABLE ks.cf (k int PRIMARY KEY, a text, b 
text)")
+        session.execute("INSERT INTO ks.cf (k, a, b) VALUES (1, 'a', 'b')")
+        assert_one(session, "SELECT * FROM ks.cf", [1, "a", "b"])
+
+        # Take a snapshot and drop the column and then drop table
+        snapshot_dir = self.make_snapshot(node1, 'ks', 'cf', 'basic')
+        session.execute("ALTER TABLE ks.cf DROP b")
+        assert_one(session, "SELECT * FROM ks.cf", [1, "a"])
+        session.execute("DROP TABLE ks.cf")
+
+        # Restore schema and data from snapshot, data should be the same as 
input
+        self.restore_snapshot_schema(snapshot_dir, node1, 'ks', 'cf')
+        self.restore_snapshot(snapshot_dir, node1, 'ks', 'cf')
+        node1.nodetool('refresh ks cf')
+        assert_one(session, "SELECT * FROM ks.cf", [1, "a", "b"])
+
+        # Clean up
+        debug("removing snapshot_dir: " + snapshot_dir)
+        shutil.rmtree(snapshot_dir)
+
     @since('3.11')
     def test_snapshot_and_restore_dropping_a_column(self):
         """


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

Reply via email to