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");
                 }
             }
 


Reply via email to