Author: jbellis
Date: Fri Dec 3 14:25:24 2010
New Revision: 1041834
URL: http://svn.apache.org/viewvc?rev=1041834&view=rev
Log:
cli support index type enum names
patch by Pavel Yaskevich; reviewed by jbellis for CASSANDRA-1810
Modified:
cassandra/branches/cassandra-0.7/CHANGES.txt
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java
Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1041834&r1=1041833&r2=1041834&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Fri Dec 3 14:25:24 2010
@@ -25,6 +25,7 @@ dev
* fix range queries against wrapped range (CASSANDRA-1781)
* fix consistencylevel calculations for NetworkTopologyStrategy
(CASSANDRA-1804)
+ * cli support index type enum names (CASSANDRA-1810)
0.7.0-rc1
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java?rev=1041834&r1=1041833&r2=1041834&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
(original)
+++
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/cli/CliClient.java
Fri Dec 3 14:25:24 2010
@@ -1414,20 +1414,28 @@ public class CliClient extends CliUserHe
*/
private IndexType getIndexTypeFromString(String indexTypeAsString)
{
- Integer indexTypeId;
IndexType indexType;
- try {
- indexTypeId = new Integer(indexTypeAsString);
+ try
+ {
+ indexType = IndexType.findByValue(new Integer(indexTypeAsString));
}
- catch (NumberFormatException e) {
- throw new RuntimeException("Could not convert " +
indexTypeAsString + " into Integer.");
+ catch (NumberFormatException e)
+ {
+ try
+ {
+ // if this is not an integer lets try to get IndexType by name
+ indexType = IndexType.valueOf(indexTypeAsString);
+ }
+ catch (IllegalArgumentException ie)
+ {
+ throw new RuntimeException("IndexType '" + indexTypeAsString +
"' is unsupported.");
+ }
}
- indexType = IndexType.findByValue(indexTypeId);
-
- if (indexType == null) {
- throw new RuntimeException(indexTypeAsString + " is unsupported.");
+ if (indexType == null)
+ {
+ throw new RuntimeException("IndexType '" + indexTypeAsString + "'
is unsupported.");
}
return indexType;
Modified:
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1041834&r1=1041833&r2=1041834&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java
(original)
+++
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/cli/CliTest.java
Fri Dec 3 14:25:24 2010
@@ -36,7 +36,7 @@ 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:0, 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}];",
"set CF1[hello][world] = 123848374878933948398384;",
"get CF1[hello][world];",
"set CF1[hello][world2] = 15;",