You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2012/03/30 16:47:40 UTC

[3/4] git commit: Allow custom types in CLI's assume command

Allow custom types in CLI's assume command

patch by xedin; reviewed by slebresne for CASSANDRA-4081


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7326ba88
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7326ba88
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7326ba88

Branch: refs/heads/cassandra-1.1.0
Commit: 7326ba88795665d241d2aac9a1386598f35f157e
Parents: b85d44a
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Fri Mar 30 10:33:29 2012 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Fri Mar 30 10:33:29 2012 +0200

----------------------------------------------------------------------
 CHANGES.txt                                      |    1 +
 src/java/org/apache/cassandra/cli/Cli.g          |    4 +-
 src/java/org/apache/cassandra/cli/CliClient.java |   20 +++++++++++-----
 3 files changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/7326ba88/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index e4d207c..3316e87 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -14,6 +14,7 @@
  * ensure that directory is selected for compaction for user-defined
    tasks and upgradesstables (CASSANDRA-3985)
  * fix NPE on invalid CQL delete command (CASSANDRA-3755)
+ * allow custom types in CLI's assume command (CASSANDRA-4081)
 
 
 1.0.8

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7326ba88/src/java/org/apache/cassandra/cli/Cli.g
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cli/Cli.g b/src/java/org/apache/cassandra/cli/Cli.g
index e7cba6c..742ccf2 100644
--- a/src/java/org/apache/cassandra/cli/Cli.g
+++ b/src/java/org/apache/cassandra/cli/Cli.g
@@ -301,8 +301,8 @@ truncateStatement
     ;
 
 assumeStatement
-    : ASSUME columnFamily assumptionElement=Identifier 'AS' defaultType=Identifier
-        -> ^(NODE_ASSUME columnFamily $assumptionElement $defaultType)
+    : ASSUME columnFamily assumptionElement=Identifier 'AS' entityName
+        -> ^(NODE_ASSUME columnFamily $assumptionElement entityName)
     ;
 
 consistencyLevelStatement

http://git-wip-us.apache.org/repos/asf/cassandra/blob/7326ba88/src/java/org/apache/cassandra/cli/CliClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cli/CliClient.java b/src/java/org/apache/cassandra/cli/CliClient.java
index 8e76b89..dfbcb68 100644
--- a/src/java/org/apache/cassandra/cli/CliClient.java
+++ b/src/java/org/apache/cassandra/cli/CliClient.java
@@ -1491,17 +1491,25 @@ public class CliClient
         AbstractType comparator;
 
         // Could be UTF8Type, IntegerType, LexicalUUIDType etc.
-        String defaultType = statement.getChild(2).getText();
+        String defaultType = CliUtils.unescapeSQLString(statement.getChild(2).getText());
 
         try
         {
-            comparator = Function.valueOf(defaultType.toUpperCase()).getValidator();
+            comparator = TypeParser.parse(defaultType);
         }
-        catch (Exception e)
+        catch (ConfigurationException e)
         {
-            String functions = Function.getFunctionNames();
-            sessionState.out.println("Type '" + defaultType + "' was not found. Available: " + functions);
-            return;
+            try
+            {
+                comparator = Function.valueOf(defaultType.toUpperCase()).getValidator();
+            }
+            catch (Exception ne)
+            {
+                String functions = Function.getFunctionNames();
+                sessionState.out.println("Type '" + defaultType + "' was not found. Available: " + functions
+                                         + " Or any class which extends o.a.c.db.marshal.AbstractType.");
+                return;
+            }
         }
 
         // making string representation look property e.g. o.a.c.db.marshal.UTF8Type