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;",