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