You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by gd...@apache.org on 2010/07/29 17:58:20 UTC

svn commit: r980491 - /cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java

Author: gdusbabek
Date: Thu Jul 29 15:58:19 2010
New Revision: 980491

URL: http://svn.apache.org/viewvc?rev=980491&view=rev
Log:
check for ks/cf keyspace name agreement. Patch by Nate McCall, reviewed by Gary Dusbabek. CASSANDRA-1310

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java?rev=980491&r1=980490&r2=980491&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java Thu Jul 29 15:58:19 2010
@@ -832,6 +832,15 @@ public class CassandraServer implements 
         if (!(DatabaseDescriptor.getAuthenticator() instanceof AllowAllAuthenticator))
             throw new InvalidRequestException("Unable to create new keyspace while authentication is enabled.");
 
+        //generate a meaningful error if the user setup keyspace and/or column definition incorrectly
+        for (CfDef cf : ks_def.cf_defs) 
+        {
+            if (!cf.getKeyspace().equals(ks_def.getName()))
+            {
+                throw new InvalidRequestException("CsDef (" + cf.getName() +") had a keyspace definition that did not match KsDef");
+            }
+        }
+
         try
         {
             Collection<CFMetaData> cfDefs = new ArrayList<CFMetaData>(ks_def.cf_defs.size());