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