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