You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2017/08/03 13:29:14 UTC
[2/6] cassandra git commit: Drop table should remove corresponding
entries in dropped_columns table
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/d9eabd3d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d9eabd3d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d9eabd3d
Branch: refs/heads/cassandra-3.11
Commit: d9eabd3d0cbf1287aa7d01bc23dd8e39c3acf232
Parents: d74ed4b
Author: Zhao Yang <zh...@gmail.com>
Authored: Sun Jul 30 12:24:46 2017 +0800
Committer: Aleksey Yeschenko <al...@yeschenko.com>
Committed: Thu Aug 3 12:32:13 2017 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/schema/SchemaKeyspace.java | 9 +++++++++
.../cassandra/cql3/validation/operations/DropTest.java | 13 +++++++++++++
3 files changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d9eabd3d/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7e518ed..799e7f4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.15
+ * Drop table should remove corresponding entries in dropped_columns table (CASSANDRA-13730)
* Log warn message until legacy auth tables have been migrated (CASSANDRA-13371)
* Fix incorrect [2.1 <- 3.0] serialization of counter cells created in 2.0 (CASSANDRA-13691)
* Fix invalid writetime for null cells (CASSANDRA-13711)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d9eabd3d/src/java/org/apache/cassandra/schema/SchemaKeyspace.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java
index 63017ec..06450f1 100644
--- a/src/java/org/apache/cassandra/schema/SchemaKeyspace.java
+++ b/src/java/org/apache/cassandra/schema/SchemaKeyspace.java
@@ -31,6 +31,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.cassandra.config.*;
+import org.apache.cassandra.config.CFMetaData.DroppedColumn;
import org.apache.cassandra.config.ColumnDefinition.ClusteringOrder;
import org.apache.cassandra.cql3.*;
import org.apache.cassandra.cql3.functions.*;
@@ -626,6 +627,9 @@ public final class SchemaKeyspace
for (ColumnDefinition column : table.allColumns())
dropColumnFromSchemaMutation(table, column, timestamp, mutation);
+ for (CFMetaData.DroppedColumn column : table.getDroppedColumns().values())
+ dropDroppedColumnFromSchemaMutation(table, column, timestamp, mutation);
+
for (TriggerMetadata trigger : table.getTriggers())
dropTriggerFromSchemaMutation(table, trigger, timestamp, mutation);
@@ -657,6 +661,11 @@ public final class SchemaKeyspace
RowUpdateBuilder.deleteRow(Columns, timestamp, mutation, table.cfName, column.name.toString());
}
+ private static void dropDroppedColumnFromSchemaMutation(CFMetaData table, DroppedColumn column, long timestamp, Mutation mutation)
+ {
+ RowUpdateBuilder.deleteRow(DroppedColumns, timestamp, mutation, table.cfName, column.name);
+ }
+
private static void addDroppedColumnToSchemaMutation(CFMetaData table, CFMetaData.DroppedColumn column, long timestamp, Mutation mutation)
{
RowUpdateBuilder adder = new RowUpdateBuilder(DroppedColumns, timestamp, mutation).clustering(table.cfName, column.name);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d9eabd3d/test/unit/org/apache/cassandra/cql3/validation/operations/DropTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/DropTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/DropTest.java
index e5c7089..692eb45 100644
--- a/test/unit/org/apache/cassandra/cql3/validation/operations/DropTest.java
+++ b/test/unit/org/apache/cassandra/cql3/validation/operations/DropTest.java
@@ -34,4 +34,17 @@ public class DropTest extends CQLTester
execute("DROP TABLE IF EXISTS keyspace_does_not_exist.table_does_not_exist");
}
+ @Test
+ public void testDropTableWithDroppedColumns() throws Throwable
+ {
+ // CASSANDRA-13730: entry should be removed from dropped_columns table when table is dropped
+ String cf = createTable("CREATE TABLE %s (k1 int, c1 int , v1 int, v2 int, PRIMARY KEY (k1, c1))");
+
+ execute("ALTER TABLE %s DROP v2");
+ execute("DROP TABLE %s");
+
+ assertRowsIgnoringOrder(execute("select * from system_schema.dropped_columns where keyspace_name = '"
+ + keyspace()
+ + "' and table_name = '" + cf + "'"));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org