Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 f4ec535db -> b2a2d4635


Push correct protocol notification for DROP INDEX

patch by Carl Yeksigian; reviewed by Sam Tunnicliffe for CASSANDRA-9310


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

Branch: refs/heads/cassandra-2.0
Commit: b2a2d46352d2dcd57cef968a8cd4a2189bea32ce
Parents: f4ec535
Author: Carl Yeksigian <c...@apache.org>
Authored: Tue May 12 18:13:11 2015 -0400
Committer: Aleksey Yeschenko <alek...@apache.org>
Committed: Fri May 15 17:20:34 2015 +0300

----------------------------------------------------------------------
 CHANGES.txt                                     |  2 ++
 .../cql3/statements/DropIndexStatement.java     | 24 ++++++++++++++------
 2 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b2a2d463/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index cee28bc..c3e84db 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,6 +1,8 @@
 2.0.16:
+ * Push correct protocol notification for DROP INDEX (CASSANDRA-9310)
  * token-generator - generated tokens too long (CASSANDRA-9300)
 
+
 2.0.15:
  * Fix counting of tombstones for TombstoneOverwhelmingException 
(CASSANDRA-9299)
  * Fix ReconnectableSnitch reconnecting to peers during upgrade 
(CASSANDRA-6702)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b2a2d463/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
index b2e8dde..c421c09 100644
--- a/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java
@@ -33,6 +33,9 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
     public final String indexName;
     public final boolean ifExists;
 
+    // initialized in announceMigration()
+    private String indexedCF;
+
     public DropIndexStatement(String indexName, boolean ifExists)
     {
         super(new CFName());
@@ -40,14 +43,20 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
         this.ifExists = ifExists;
     }
 
-    // We don't override CFStatement#columnFamily as this'd change the
-    // protocol for returned events when we drop an index. We need it
-    // to return null so that SchemaMigrations remain a keyspace,
-    // rather than table, level event (see SchemaAlteringStatement#execute).
-    public String getColumnFamily() throws InvalidRequestException
+    public String columnFamily()
     {
-        CFMetaData cfm = findIndexedCF();
-        return cfm == null ? null : cfm.cfName;
+        if (indexedCF != null)
+            return indexedCF;
+
+        try
+        {
+            CFMetaData cfm = findIndexedCF();
+            return cfm == null ? null : cfm.cfName;
+        }
+        catch (InvalidRequestException ire)
+        {
+            throw new RuntimeException(ire);
+        }
     }
 
     public void checkAccess(ClientState state) throws UnauthorizedException, 
InvalidRequestException
@@ -77,6 +86,7 @@ public class DropIndexStatement extends 
SchemaAlteringStatement
             return false;
 
         CFMetaData updatedCfm = updateCFMetadata(cfm);
+        indexedCF = updatedCfm.cfName;
         MigrationManager.announceColumnFamilyUpdate(updatedCfm, false);
         return true;
     }

Reply via email to