Author: eevans
Date: Thu Mar 24 20:21:44 2011
New Revision: 1085112
URL: http://svn.apache.org/viewvc?rev=1085112&view=rev
Log:
do not require keyspace when dropping keyspace
Patch by eevans
Modified:
cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
cassandra/trunk/src/java/org/apache/cassandra/cql/StatementType.java
Modified: cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java?rev=1085112&r1=1085111&r2=1085112&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java Thu
Mar 24 20:21:44 2011
@@ -63,6 +63,7 @@ import org.apache.cassandra.service.Stor
import org.apache.cassandra.thrift.Column;
import org.apache.cassandra.thrift.*;
import org.apache.cassandra.utils.ByteBufferUtil;
+import org.eclipse.jdt.internal.compiler.ast.Statement;
import com.google.common.base.Predicates;
import com.google.common.collect.Maps;
@@ -444,8 +445,8 @@ public class QueryProcessor
CQLStatement statement = getStatement(queryString);
String keyspace = null;
- // Chicken-and-egg; No keyspace to get when we're setting (or
creating) one.
- if ((statement.type != StatementType.USE) && (statement.type !=
StatementType.CREATE_KEYSPACE))
+ // Some statements won't have (or don't need) a keyspace (think USE,
or CREATE).
+ if (StatementType.requiresKeyspace.contains(statement.type))
keyspace = clientState.getKeyspace();
CqlResult avroResult = new CqlResult();
Modified: cassandra/trunk/src/java/org/apache/cassandra/cql/StatementType.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cql/StatementType.java?rev=1085112&r1=1085111&r2=1085112&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cql/StatementType.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/StatementType.java Thu
Mar 24 20:21:44 2011
@@ -20,8 +20,14 @@
*/
package org.apache.cassandra.cql;
+import java.util.EnumSet;
+
public enum StatementType
{
SELECT, UPDATE, BATCH_UPDATE, USE, TRUNCATE, DELETE, CREATE_KEYSPACE,
CREATE_COLUMNFAMILY, CREATE_INDEX,
DROP_KEYSPACE, DROP_COLUMNFAMILY;
+
+ // Statement types that don't require a keyspace to be set.
+ private static final EnumSet<StatementType> topLevel = EnumSet.of(USE,
CREATE_KEYSPACE, DROP_KEYSPACE);
+ public static final EnumSet<StatementType> requiresKeyspace =
EnumSet.complementOf(topLevel);
}