Author: jbellis
Date: Tue May 24 05:28:15 2011
New Revision: 1126874

URL: http://svn.apache.org/viewvc?rev=1126874&view=rev
Log:
fix exception adding validators to non-string columns
patch by Tyler Hobbs and jbellis for CASSANDRA-2696

Modified:
    cassandra/branches/cassandra-0.8.0/CHANGES.txt
    
cassandra/branches/cassandra-0.8.0/src/java/org/apache/cassandra/config/CFMetaData.java
    cassandra/branches/cassandra-0.8.0/test/system/test_thrift_server.py

Modified: cassandra/branches/cassandra-0.8.0/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8.0/CHANGES.txt?rev=1126874&r1=1126873&r2=1126874&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8.0/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8.0/CHANGES.txt Tue May 24 05:28:15 2011
@@ -8,6 +8,7 @@
  * fix StackOverflowError when building from eclipse (CASSANDRA-2687)
  * only provide replication_factor to strategy_options "help" for
    SimpleStrategy, OldNetworkTopologyStrategy (CASSANDRA-2678)
+ * fix exception adding validators to non-string columns (CASSANDRA-2696)
 
 
 0.8.0-rc1

Modified: 
cassandra/branches/cassandra-0.8.0/src/java/org/apache/cassandra/config/CFMetaData.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8.0/src/java/org/apache/cassandra/config/CFMetaData.java?rev=1126874&r1=1126873&r2=1126874&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8.0/src/java/org/apache/cassandra/config/CFMetaData.java
 (original)
+++ 
cassandra/branches/cassandra-0.8.0/src/java/org/apache/cassandra/config/CFMetaData.java
 Tue May 24 05:28:15 2011
@@ -696,7 +696,6 @@ public final class CFMetaData
 
         validateMinMaxCompactionThresholds(cf_def);
         validateMemtableSettings(cf_def);
-        validateAliasCompares(cf_def);
 
         comment = enforceCommentNotNull(cf_def.comment);
         rowCacheSize = cf_def.row_cache_size;
@@ -970,13 +969,6 @@ public final class CFMetaData
             
DatabaseDescriptor.validateMemtableOperations(cf_def.memtable_operations_in_millions);
     }
 
-    public static void 
validateAliasCompares(org.apache.cassandra.db.migration.avro.CfDef cf_def) 
throws ConfigurationException
-    {
-        AbstractType comparator = 
DatabaseDescriptor.getComparator(cf_def.comparator_type);
-        if (cf_def.key_alias != null)
-            comparator.validate(cf_def.key_alias);
-    }
-
     public ColumnDefinition getColumnDefinition(ByteBuffer name)
     {
         return column_metadata.get(name);

Modified: cassandra/branches/cassandra-0.8.0/test/system/test_thrift_server.py
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8.0/test/system/test_thrift_server.py?rev=1126874&r1=1126873&r2=1126874&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8.0/test/system/test_thrift_server.py 
(original)
+++ cassandra/branches/cassandra-0.8.0/test/system/test_thrift_server.py Tue 
May 24 05:28:15 2011
@@ -1393,6 +1393,21 @@ class TestMutations(ThriftTester):
         assert 'NewColumnFamily' not in [x.name for x in ks1.cf_defs]
         assert 'Standard1' in [x.name for x in ks1.cf_defs]
 
+        # Make a LongType CF and add a validator
+        newcf = CfDef('Keyspace1', 'NewLongColumnFamily', 
comparator_type='LongType')
+        client.system_add_column_family(newcf)
+
+        three = _i64(3)
+        cd = ColumnDef(three, 'LongType', None, None)
+        ks1 = client.describe_keyspace('Keyspace1')
+        modified_cf = [x for x in ks1.cf_defs if 
x.name=='NewLongColumnFamily'][0]
+        modified_cf.column_metadata = [cd]
+        client.system_update_column_family(modified_cf)
+
+        ks1 = client.describe_keyspace('Keyspace1')
+        server_cf = [x for x in ks1.cf_defs if 
x.name=='NewLongColumnFamily'][0]
+        assert server_cf.column_metadata[0].name == _i64(3), 
server_cf.column_metadata
+
     def test_dynamic_indexes_creation_deletion(self):
         _set_keyspace('Keyspace1')
         cfdef = CfDef('Keyspace1', 'BlankCF')


Reply via email to