You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by gd...@apache.org on 2010/11/23 20:09:42 UTC

svn commit: r1038283 - /cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py

Author: gdusbabek
Date: Tue Nov 23 19:09:42 2010
New Revision: 1038283

URL: http://svn.apache.org/viewvc?rev=1038283&view=rev
Log:
system test for add/drop index. patch by thobbs, reviewed by gdusbabek. CASSANDRA-1764

Modified:
    cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py

Modified: cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py?rev=1038283&r1=1038282&r2=1038283&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py (original)
+++ cassandra/branches/cassandra-0.7/test/system/test_thrift_server.py Tue Nov 23 19:09:42 2010
@@ -1304,6 +1304,49 @@ 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]
 
+    def test_dynamic_indexes_creation_deletion(self):
+        _set_keyspace('Keyspace1')
+        cfdef = CfDef('Keyspace1', 'BlankCF')
+        client.system_add_column_family(cfdef)
+
+        ks1 = client.describe_keyspace('Keyspace1')
+        cfid = [x.id for x in ks1.cf_defs if x.name=='BlankCF'][0]
+        modified_cd = ColumnDef('birthdate', 'BytesType', IndexType.KEYS, 'birthdate_index')
+        modified_cf = CfDef('Keyspace1', 'BlankCF', column_metadata=[modified_cd])
+        modified_cf.id = cfid
+        client.system_update_column_family(modified_cf)
+
+        # Add a second indexed CF ...
+        birthdate_coldef = ColumnDef('birthdate', 'BytesType', IndexType.KEYS, 'birthdate_index')
+        age_coldef = ColumnDef('age', 'BytesType', IndexType.KEYS, 'age_index')
+        cfdef = CfDef('Keyspace1', 'BlankCF2', column_metadata=[birthdate_coldef, age_coldef])
+        client.system_add_column_family(cfdef)
+ 
+        # ... and update it to have a third index
+        ks1 = client.describe_keyspace('Keyspace1')
+        cfdef = [x for x in ks1.cf_defs if x.name=='BlankCF2'][0]
+        name_coldef = ColumnDef('name', 'BytesType', IndexType.KEYS, 'name_index')
+        cfdef.column_metadata.append(name_coldef)
+        client.system_update_column_family(cfdef)
+       
+        # Now drop the indexes
+        ks1 = client.describe_keyspace('Keyspace1')
+        cfdef = [x for x in ks1.cf_defs if x.name=='BlankCF2'][0]
+        birthdate_coldef = ColumnDef('birthdate', 'BytesType', None, None)
+        age_coldef = ColumnDef('age', 'BytesType', None, None)
+        name_coldef = ColumnDef('name', 'BytesType', None, None)
+        cfdef.column_metadata = [birthdate_coldef, age_coldef, name_coldef]
+        client.system_update_column_family(cfdef)
+
+        ks1 = client.describe_keyspace('Keyspace1')
+        cfdef = [x for x in ks1.cf_defs if x.name=='BlankCF'][0]
+        birthdate_coldef = ColumnDef('birthdate', 'BytesType', None, None)
+        cfdef.column_metadata = [birthdate_coldef]
+        client.system_update_column_family(cfdef)
+        
+        client.system_drop_column_family('BlankCF')
+        client.system_drop_column_family('BlankCF2')
+
     def test_dynamic_indexes_with_system_update_cf(self):
         _set_keyspace('Keyspace1')
         cd = ColumnDef('birthdate', 'BytesType', None, None)