You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/07/17 16:13:23 UTC

svn commit: r1147621 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/cli/CliClient.java

Author: jbellis
Date: Sun Jul 17 14:13:22 2011
New Revision: 1147621

URL: http://svn.apache.org/viewvc?rev=1147621&view=rev
Log:
avoid including inferred types in CFupdate
patch by pyaskevich; reviewed by jbellis for CASSANDRA-2809

Modified:
    cassandra/branches/cassandra-0.7/CHANGES.txt
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1147621&r1=1147620&r2=1147621&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Sun Jul 17 14:13:22 2011
@@ -2,6 +2,7 @@
  * fix possibility of spurious UnavailableException for LOCAL_QUORUM
    reads with dynamic snitch + read repair disabled (CASSANDRA-2870)
  * support spaces in path to log4j configuration (CASSANDRA-2383)
+ * avoid including inferred types in CF update (CASSANDRA-2809)
 
 
 0.7.7

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java?rev=1147621&r1=1147620&r2=1147621&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java Sun Jul 17 14:13:22 2011
@@ -828,11 +828,15 @@ public class CliClient extends CliUserHe
             return;
 
         String cfName = CliCompiler.getColumnFamily(statement, keyspacesMap.get(keySpace).cf_defs);
-        // first child is a column family name
-        CfDef cfDef = getCfDef(cfName);
 
         try
         {
+            // request correct cfDef from the server
+            CfDef cfDef = getCfDef(thriftClient.describe_keyspace(this.keySpace), cfName);
+
+            if (cfDef == null)
+                throw new RuntimeException("Column Family " + cfName + " was not found in the current keyspace.");
+
             String mySchemaVersion = thriftClient.system_update_column_family(updateCfDefAttributes(statement, cfDef));
             sessionState.out.println(mySchemaVersion);
             validateSchemaIsSettled(mySchemaVersion);
@@ -1578,7 +1582,18 @@ public class CliClient extends CliUserHe
     {
         return getCfDef(this.keySpace, columnFamilyName);
     }
-    
+
+    private CfDef getCfDef(KsDef keyspace, String columnFamilyName)
+    {
+        for (CfDef cfDef : keyspace.cf_defs)
+        {
+            if (cfDef.name.equals(columnFamilyName))
+                return cfDef;
+        }
+
+        return null;
+    }
+
     /**
      * Used to parse meta tree and compile meta attributes into List<ColumnDef>
      * @param cfDef - column family definition