Return InvalidRequest when using a keyspace that doesn't exist
patch by jbellis; reviewed by pcannon for CASSANDRA-3764


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/372a3ade
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/372a3ade
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/372a3ade

Branch: refs/heads/trunk
Commit: 372a3ade515b307209ea078358fa8777eda10599
Parents: 37b0793
Author: Jonathan Ellis <[email protected]>
Authored: Tue Jan 24 18:52:14 2012 -0600
Committer: Jonathan Ellis <[email protected]>
Committed: Tue Jan 24 20:19:26 2012 -0600

----------------------------------------------------------------------
 CHANGES.txt                                        |    2 ++
 .../org/apache/cassandra/service/ClientState.java  |   12 +++++-------
 2 files changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/372a3ade/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index c7a228f..06ac8a0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -54,6 +54,8 @@
 
 
 1.0.8
+ * Return InvalidRequest when using a keyspace that doesn't exist
+   (CASSANDRA-3764)
  * disallow user modification of System keyspace (CASSANDRA-3738)
  * allow using sstable2json on secondary index data (CASSANDRA-3738)
  * (cqlsh) add DESCRIBE COLUMNFAMILIES (CASSANDRA-3586)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/372a3ade/src/java/org/apache/cassandra/service/ClientState.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/ClientState.java 
b/src/java/org/apache/cassandra/service/ClientState.java
index 0ea7272..d2df8a9 100644
--- a/src/java/org/apache/cassandra/service/ClientState.java
+++ b/src/java/org/apache/cassandra/service/ClientState.java
@@ -18,12 +18,7 @@
 
 package org.apache.cassandra.service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -32,6 +27,7 @@ import org.apache.cassandra.auth.AuthenticatedUser;
 import org.apache.cassandra.auth.Permission;
 import org.apache.cassandra.auth.Resources;
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.cql.CQLStatement;
 import org.apache.cassandra.db.Table;
 import org.apache.cassandra.thrift.AuthenticationException;
@@ -86,8 +82,10 @@ public class ClientState
         return keyspace;
     }
 
-    public void setKeyspace(String ks)
+    public void setKeyspace(String ks) throws InvalidRequestException
     {
+        if (Schema.instance.getKSMetaData(ks) == null)
+            throw new InvalidRequestException("Keyspace '" + ks + "' does not 
exist");
         keyspace = ks;
     }
 

Reply via email to