Author: xedin
Date: Fri Aug 19 15:00:55 2011
New Revision: 1159657

URL: http://svn.apache.org/viewvc?rev=1159657&view=rev
Log:
Fix of numeric-only and string column names handling in CLI "drop index"
patch by Pavel Yaskevich; reviewed by Jonathan Ellis for CASSANDRA-3054

Modified:
    cassandra/branches/cassandra-0.8/CHANGES.txt
    cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java
    
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1159657&r1=1159656&r2=1159657&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Aug 19 15:00:55 2011
@@ -17,7 +17,7 @@
    on create/update of the ColumnFamily and CQL 'ALTER' statement 
(CASSANDRA-3036)
  * return an InvalidRequestException if an indexed column is assigned
    a value larger than 64KB (CASSANDRA-3057)
-
+ * fix of numeric-only and string column names handling in CLI "drop index" 
(CASSANDRA-3054)
 
 0.8.4
  * include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972)

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g?rev=1159657&r1=1159656&r2=1159657&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g 
(original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/Cli.g 
Fri Aug 19 15:00:55 2011
@@ -428,7 +428,7 @@ keyRangeExpr
     ;
 
 columnName
-       : Identifier
+       : (StringLiteral | Identifier | IntegerPositiveLiteral | 
IntegerNegativeLiteral)
        ;
 
 attr_name

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java?rev=1159657&r1=1159656&r2=1159657&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java
 Fri Aug 19 15:00:55 2011
@@ -1389,7 +1389,7 @@ public class CliClient
 
         // getColumnFamily will check if CF exists for us
         String columnFamily = CliCompiler.getColumnFamily(statement, 
keyspacesMap.get(keySpace).cf_defs);
-        String rawColumName = statement.getChild(1).getText();
+        String rawColumName = 
CliUtils.unescapeSQLString(statement.getChild(1).getText());
 
         CfDef cfDef = getCfDef(columnFamily);
 

Modified: 
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1159657&r1=1159656&r2=1159657&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/cli/CliTest.java
 Fri Aug 19 15:00:55 2011
@@ -37,7 +37,10 @@ public class CliTest extends CleanupHelp
     // please add new statements here so they could be auto-runned by this 
test.
     private String[] statements = {
         "use TestKeySpace;",
-        "create column family CF1 with comparator=UTF8Type and 
column_metadata=[{ column_name:world, validation_class:IntegerType, 
index_type:0, index_name:IdxName }, { column_name:world2, 
validation_class:LongType, index_type:KEYS, index_name:LongIdxName}];",
+        "create column family CF1 with comparator=UTF8Type and 
column_metadata=[{ column_name:world, validation_class:IntegerType, 
index_type:0, index_name:IdxName }, " +
+                                                                               
"{ column_name:world2, validation_class:LongType, index_type:KEYS, 
index_name:LongIdxName}, " +
+                                                                               
"{ column_name:617070, validation_class:UTF8Type, index_type:KEYS }, " +
+                                                                               
"{ column_name:'-617071', validation_class:UTF8Type, index_type:KEYS }];",
         "assume CF1 keys as utf8;",
         "set CF1[hello][world] = 123848374878933948398384;",
         "set CF1[hello][test_quote] = 'value\\'';",
@@ -113,6 +116,8 @@ public class CliTest extends CleanupHelp
         "get Counter1['hello'];",
         "truncate CF1;",
         "drop index on CF1.world2;",
+        "drop index on CF1.617070;",
+        "drop index on CF1.'-617071';",
         "update keyspace TestKeySpace with 
placement_strategy='org.apache.cassandra.locator.LocalStrategy' and 
durable_writes = false;",
         "update keyspace TestKeySpace with strategy_options=[{DC1:3, DC2:4, 
DC5:1}];",
         "assume CF1 comparator as utf8;",


Reply via email to