Author: xedin Date: Fri Dec 2 23:42:18 2011 New Revision: 1209782 URL: http://svn.apache.org/viewvc?rev=1209782&view=rev Log: (CQL) Proper ColumnFamily metadata validation on CREATE COLUMNFAMILY patch by Jonathan Ellis; reviewed by Pavel Yaskevich for CASSANDRA-3565
Modified: cassandra/branches/cassandra-1.0/CHANGES.txt cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/thrift/ThriftValidation.java Modified: cassandra/branches/cassandra-1.0/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1209782&r1=1209781&r2=1209782&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/CHANGES.txt (original) +++ cassandra/branches/cassandra-1.0/CHANGES.txt Fri Dec 2 23:42:18 2011 @@ -12,6 +12,7 @@ * fix default value validation usage in CLI SET command (CASSANDRA-3553) * Optimize componentsFor method for compaction and startup time (CASSANDRA-3532) + * (CQL) Proper ColumnFamily metadata validation on CREATE COLUMNFAMILY (CASSANDRA-3565) Merged from 0.8: * use cannonical host for local node in nodetool info (CASSANDRA-3556) Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java?rev=1209782&r1=1209781&r2=1209782&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/QueryProcessor.java Fri Dec 2 23:42:18 2011 @@ -783,10 +783,12 @@ public class QueryProcessor CreateColumnFamilyStatement createCf = (CreateColumnFamilyStatement)statement.statement; clientState.hasColumnFamilySchemaAccess(Permission.WRITE); validateSchemaAgreement(); - + CFMetaData cfmd = createCf.getCFMetaData(keyspace); + ThriftValidation.validateCfDef(cfmd.toThrift(), null); + try { - applyMigrationOnStage(new AddColumnFamily(createCf.getCFMetaData(keyspace))); + applyMigrationOnStage(new AddColumnFamily(cfmd)); } catch (ConfigurationException e) { Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/thrift/ThriftValidation.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1209782&r1=1209781&r2=1209782&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/thrift/ThriftValidation.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/thrift/ThriftValidation.java Fri Dec 2 23:42:18 2011 @@ -587,7 +587,7 @@ public class ThriftValidation if (cf_def.key_alias.equals(columnDef.name)) throw new InvalidRequestException("Invalid column name: " + AsciiType.instance.compose(cf_def.key_alias) - + ", because it equals to the key_alias."); + + ", because it equals the key_alias"); } }