From 9df9dd19577c33ade4f4dd54b3b810cf16c2ca87 Mon Sep 17 00:00:00 2001 From: Gary Dusbabek Date: Tue, 23 Nov 2010 19:09:42 +0000 Subject: [PATCH] system test for add/drop index. patch by thobbs, reviewed by gdusbabek. CASSANDRA-1764 git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7@1038283 13f79535-47bb-0310-9956-ffa450edef68 --- test/system/test_thrift_server.py | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/test/system/test_thrift_server.py b/test/system/test_thrift_server.py index 6669c76a4f..1d1e838e02 100644 --- a/test/system/test_thrift_server.py +++ b/test/system/test_thrift_server.py @@ -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)