Author: xedin
Date: Fri Dec  2 14:39:28 2011
New Revision: 1209514

URL: http://svn.apache.org/viewvc?rev=1209514&view=rev
Log:
fix default value validation usage in CLI SET command
patch by Pavel Yaskevich; reviewed by Jonathan Ellis for CASSANDRA-3553

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

Modified: cassandra/branches/cassandra-1.0/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1209514&r1=1209513&r2=1209514&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/CHANGES.txt (original)
+++ cassandra/branches/cassandra-1.0/CHANGES.txt Fri Dec  2 14:39:28 2011
@@ -8,7 +8,7 @@
  * always remove endpoints from delevery queue in HH (CASSANDRA-3546)
  * fix race between cf flush and its 2ndary indexes flush (CASSANDRA-3547)
  * fix potential race in AES when a repair fails (CASSANDRA-3548)
-
+ * fix default value validation usage in CLI SET command (CASSANDRA-3553)
 
 1.0.5
  * revert CASSANDRA-3407 (see CASSANDRA-3540)

Modified: 
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cli/CliClient.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cli/CliClient.java?rev=1209514&r1=1209513&r2=1209514&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cli/CliClient.java
 (original)
+++ 
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cli/CliClient.java
 Fri Dec  2 14:39:28 2011
@@ -2497,7 +2497,8 @@ public class CliClient
     private ByteBuffer columnValueAsBytes(ByteBuffer columnName, String 
columnFamilyName, String columnValue)
     {
         CfDef columnFamilyDef = getCfDef(columnFamilyName);
-        
+        AbstractType defaultValidator = 
getFormatType(columnFamilyDef.default_validation_class);
+
         for (ColumnDef columnDefinition : columnFamilyDef.getColumn_metadata())
         {
             byte[] currentColumnName = columnDefinition.getName();
@@ -2516,8 +2517,7 @@ public class CliClient
             }
         }
 
-        // if no validation were set returning simple .getBytes()
-        return ByteBufferUtil.bytes(columnValue);
+        return defaultValidator.fromString(columnValue);
     }
 
     /**

Modified: 
cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/cli/CliTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1209514&r1=1209513&r2=1209514&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/cli/CliTest.java
 (original)
+++ 
cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/cli/CliTest.java
 Fri Dec  2 14:39:28 2011
@@ -43,7 +43,8 @@ public class CliTest extends CleanupHelp
                                                                                
"{ column_name:world2, validation_class:LongType, index_type:KEYS, 
index_name:LongIdxName}, " +
                                                                                
"{ column_name:617070, validation_class:UTF8Type, index_type:KEYS }, " +
                                                                                
"{ column_name:28292, validation_class:UTF8Type, index_type:CUSTOM, 
index_options:{class_name:'org.apache.cassandra.db.index.keys.KeysIndex', 
foo:bar}}," +
-                                                                               
"{ column_name:'-617071', validation_class:UTF8Type, index_type:KEYS }];",
+                                                                               
"{ column_name:'-617071', validation_class:UTF8Type, index_type:KEYS }," +
+                                                                               
"{ column_name:time_spent_uuid, validation_class:TimeUUIDType}] and 
default_validation_class=UTF8Type;",
         "assume 123 keys as utf8;",
         "set 123[hello][world] = 123848374878933948398384;",
         "set 123[hello][test_quote] = 'value\\'';",
@@ -60,7 +61,6 @@ public class CliTest extends CleanupHelp
         "get 123[hello][test_quote];",
         "get 123['k\\'ey'][VALUE]",
         "set 123[hello][-31337] = -23876;",
-        "set 123[hello][-31337] = long(-23876);",
         "set 123[hello][world2] = 15;",
         "get 123 where world2 = long(15);",
         "get 123 where world2 = long(15);",
@@ -68,7 +68,7 @@ public class CliTest extends CleanupHelp
         "del 123[utf8('hello')][utf8('world')];",
         "del 123[hello][world2];",
         "set 123['hello'][time_spent_uuid] = 
timeuuid(a8098c1a-f86e-11da-bd1a-00112444be1e);",
-        "create column family CF2 with comparator=IntegerType;",
+        "create column family CF2 with comparator=IntegerType and 
default_validation_class=AsciiType;",
         "assume CF2 keys as utf8;",
         "set CF2['key'][98349387493847748398334] = 'some text';",
         "get CF2['key'][98349387493847748398334];",
@@ -160,7 +160,7 @@ public class CliTest extends CleanupHelp
         "drop keyspace tesTIN;",
         "update column family 123 with comparator=UTF8Type and 
column_metadata=[];",
         "drop column family 123;",
-        "create column family myCF with column_type='Super' and 
comparator='UTF8Type' AND subcomparator='UTF8Type';",
+        "create column family myCF with column_type='Super' and 
comparator='UTF8Type' AND subcomparator='UTF8Type' AND 
default_validation_class=AsciiType;",
         "assume myCF keys as utf8;",
         "create column family Countries with comparator=UTF8Type and 
column_metadata=[ {column_name: name, validation_class: UTF8Type} ];",
         "set Countries[1][name] = USA;",


Reply via email to