Author: jbellis
Date: Wed Oct 12 14:54:32 2011
New Revision: 1182413

URL: http://svn.apache.org/viewvc?rev=1182413&view=rev
Log:
allow numeric keyspace names in USE statement
patch by pyaskevich; reviewed by jbellis for CASSANDRA-3350

Modified:
    cassandra/branches/cassandra-0.8/CHANGES.txt
    cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/Cql.g
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/QueryProcessor.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1182413&r1=1182412&r2=1182413&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Wed Oct 12 14:54:32 2011
@@ -1,8 +1,9 @@
 0.8.8
  * fix truncate allowing data to be replayed post-restart (CASSANDRA-3297)
  * make iwriter final in IndexWriter to avoid NPE (CASSANDRA-2863)
- * (CQL) update grammar to require key clause in delete statement
+ * (CQL) update grammar to require key clause in DELETE statement
    (CASSANDRA-3349)
+ * (CQL) allow numeric keyspace names in USE statement (CASSANDRA-3350)
 
 
 0.8.7

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/Cql.g
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/Cql.g?rev=1182413&r1=1182412&r2=1182413&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/Cql.g 
(original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/Cql.g 
Wed Oct 12 14:54:32 2011
@@ -121,7 +121,7 @@ query returns [CQLStatement stmnt]
 
 // USE <KEYSPACE>;
 useStatement returns [String keyspace]
-    : K_USE IDENT { $keyspace = $IDENT.text; } endStmnt
+    : K_USE name=( IDENT | INTEGER | STRING_LITERAL ) { $keyspace = 
$name.text; } endStmnt
     ;
 
 /**

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/QueryProcessor.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/QueryProcessor.java?rev=1182413&r1=1182412&r2=1182413&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/QueryProcessor.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/QueryProcessor.java
 Wed Oct 12 14:54:32 2011
@@ -32,6 +32,7 @@ import java.util.concurrent.TimeoutExcep
 
 import com.google.common.base.Predicates;
 import com.google.common.collect.Maps;
+import org.apache.cassandra.cli.CliUtils;
 import org.apache.cassandra.db.CounterColumn;
 import org.apache.cassandra.db.context.CounterContext;
 import org.slf4j.Logger;
@@ -619,7 +620,7 @@ public class QueryProcessor
                 return result;
                 
             case USE:
-                clientState.setKeyspace((String)statement.statement);
+                clientState.setKeyspace(CliUtils.unescapeSQLString((String) 
statement.statement));
                 result.type = CqlResultType.VOID;
                 
                 return result;


Reply via email to