def test_dense_supercolumn_with_renames(self): cursor = self.prepare(row_factory=dict_factory) cluster = self.cluster node = self.cluster.nodelist()[0] node.nodetool("enablethrift") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') client.system_add_column_family(_create_dense_super_cf('dense_super_2')) for i in range(1, 3): client.insert('k1', ColumnParent('dense_super_2', 'key{}'.format(i)), Column(_i64(100), 'value1', 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('dense_super_2', 'key{}'.format(i)), Column(_i64(200), 'value2', 0), ConsistencyLevel.ONE) cursor.execute("ALTER TABLE ks.dense_super_2 RENAME key TO renamed_key") cursor.execute("ALTER TABLE ks.dense_super_2 RENAME column1 TO renamed_column1") cursor.execute("ALTER TABLE ks.dense_super_2 RENAME column2 TO renamed_column2") cursor.execute("ALTER TABLE ks.dense_super_2 RENAME value TO renamed_value") _validate_dense_cql(cursor, cf='dense_super_2', key='renamed_key', column1='renamed_column1', column2='renamed_column2', value='renamed_value') _validate_dense_thrift(client, cf='dense_super_2') for is_upgraded, cursor in self.do_upgrade(cursor, row_factory=dict_factory, use_thrift=True): logger.debug("Querying {} node".format("upgraded" if is_upgraded else "old")) client = get_thrift_client(host, port) _validate_dense_cql(cursor, cf='dense_super_2', key='renamed_key', column1='renamed_column1', column2='renamed_column2', value='renamed_value') _validate_dense_thrift(client, cf='dense_super_2')
def test_dense_supercolumn(self): cursor = self.prepare(nodes=2, rf=2, row_factory=dict_factory) cluster = self.cluster node = self.cluster.nodelist()[0] node.nodetool("enablethrift") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') client.system_add_column_family(_create_dense_super_cf('dense_super_1')) for i in range(1, 3): client.insert('k1', ColumnParent('dense_super_1', 'key{}'.format(i)), Column(_i64(100), 'value1', 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('dense_super_1', 'key{}'.format(i)), Column(_i64(200), 'value2', 0), ConsistencyLevel.ONE) _validate_dense_cql(cursor) _validate_dense_thrift(client) for is_upgraded, cursor in self.do_upgrade(cursor, row_factory=dict_factory, use_thrift=True): logger.debug("Querying {} node".format("upgraded" if is_upgraded else "old")) client = get_thrift_client(host, port) _validate_dense_cql(cursor) _validate_dense_thrift(client)
def test_dense_supercolumn_3_0_created(self): cluster = self.prepare(cassandra_version='github:apache/cassandra-3.0') node = self.cluster.nodelist()[0] cursor = self.patient_cql_connection(node, row_factory=dict_factory) cursor.execute("CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy','replication_factor': '1' };") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') client.system_add_column_family(_create_dense_super_cf('dense_super_1')) for i in range(1, 3): client.insert('k1', ColumnParent('dense_super_1', 'key{}'.format(i)), Column(_i64(100), 'value1', 0), ConsistencyLevel.ONE) client.insert('k2', ColumnParent('dense_super_1', 'key{}'.format(i)), Column(_i64(200), 'value2', 0), ConsistencyLevel.ONE) _validate_dense_thrift(client, cf='dense_super_1') node.stop() self.set_node_to_current_version(node) node.set_configuration_options(values={'start_rpc': 'true'}) node.start() cursor = self.patient_cql_connection(node, row_factory=dict_factory) client = get_thrift_client(host, port) _validate_dense_thrift(client, cf='dense_super_1') _validate_dense_cql(cursor, cf='dense_super_1')
def test_dense_supercolumn(self): cluster = self.prepare() node = self.cluster.nodelist()[0] node.nodetool("enablethrift") cursor = self.patient_cql_connection(node, row_factory=dict_factory) cursor.execute( "CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy','replication_factor': '1' };" ) host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') _create_dense_super_cf(client, 'dense_super_1') for i in range(1, 3): client.insert( 'k1'.encode(), ColumnParent('dense_super_1', 'key{}'.format(i).encode()), Column(_i64(100), 'value1'.encode(), 0), ConsistencyLevel.ONE) client.insert( 'k2'.encode(), ColumnParent('dense_super_1', 'key{}'.format(i).encode()), Column(_i64(200), 'value2'.encode(), 0), ConsistencyLevel.ONE) _validate_dense_thrift(client, cf='dense_super_1') _validate_dense_cql(cursor, cf='dense_super_1') self.upgrade_to_version('github:apache/cassandra-3.0') cursor = self.patient_cql_connection(node, row_factory=dict_factory) client = get_thrift_client(host, port) _validate_dense_thrift(client, cf='dense_super_1') self.set_node_to_current_version(node) #4.0 doesn't support compact storage if node.get_cassandra_version() >= '4': cursor.execute( "ALTER TABLE ks.dense_super_1 DROP COMPACT STORAGE;") node.stop() if node.get_cassandra_version() < '4': node.set_configuration_options(values={'start_rpc': 'true'}) node.start() if node.get_cassandra_version() < '4': client = get_thrift_client(host, port) _validate_dense_thrift(client, cf='dense_super_1') cursor = self.patient_cql_connection(node, row_factory=dict_factory) _validate_dense_cql( cursor, cf='dense_super_1', is_version_4_or_greater=node.get_cassandra_version() >= CASSANDRA_4_0)
def test_dense_supercolumn(self): cursor = self.prepare(nodes=2, rf=2, row_factory=dict_factory) cluster = self.cluster node = self.cluster.nodelist()[0] node.nodetool("enablethrift") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') _create_dense_super_cf(client, 'dense_super_1') for i in range(1, 3): client.insert( 'k1'.encode(), ColumnParent('dense_super_1', 'key{}'.format(i).encode()), Column(_i64(100), 'value1'.encode(), 0), ConsistencyLevel.ONE) client.insert( 'k2'.encode(), ColumnParent('dense_super_1', 'key{}'.format(i).encode()), Column(_i64(200), 'value2'.encode(), 0), ConsistencyLevel.ONE) _validate_dense_cql(cursor) _validate_dense_thrift(client) version_string = self.upgrade_version_string() is_version_4_or_greater = version_string == 'trunk' or version_string >= '4.0' #4.0 doesn't support compact storage if is_version_4_or_greater: cursor.execute( "ALTER TABLE ks.dense_super_1 DROP COMPACT STORAGE;") for is_upgraded, cursor in self.do_upgrade(cursor, row_factory=dict_factory, use_thrift=True): logger.debug("Querying {} node".format( "upgraded" if is_upgraded else "old")) if not is_version_4_or_greater: client = get_thrift_client(host, port) _validate_dense_thrift(client) _validate_dense_cql( cursor, is_version_4_or_greater=is_version_4_or_greater)
def test_sparse_supercolumn(self): cursor = self.prepare(row_factory=dict_factory) cluster = self.cluster node = self.cluster.nodelist()[0] node.nodetool("enablethrift") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') _create_sparse_super_cf(client, 'sparse_super_2') for i in range(1, 3): client.insert('k1'.encode(), ColumnParent('sparse_super_2', 'key{}'.format(i).encode()), Column("value1".encode(), _i64(100), 0), ConsistencyLevel.ONE) client.insert('k1'.encode(), ColumnParent('sparse_super_2', 'key{}'.format(i).encode()), Column("col1".encode(), _i64(200), 0), ConsistencyLevel.ONE) client.insert('k1'.encode(), ColumnParent('sparse_super_2', 'key{}'.format(i).encode()), Column("col2".encode(), _i64(300), 0), ConsistencyLevel.ONE) client.insert('k2'.encode(), ColumnParent('sparse_super_2', 'key{}'.format(i).encode()), Column("value2".encode(), _i64(100), 0), ConsistencyLevel.ONE) client.insert('k2'.encode(), ColumnParent('sparse_super_2', 'key{}'.format(i).encode()), Column("col1".encode(), _i64(200), 0), ConsistencyLevel.ONE) client.insert('k2'.encode(), ColumnParent('sparse_super_2', 'key{}'.format(i).encode()), Column("col2".encode(), _i64(300), 0), ConsistencyLevel.ONE) _validate_sparse_thrift(client, cf='sparse_super_2') _validate_sparse_cql(cursor, cf='sparse_super_2') if self.upgrade_is_version_4_or_greater(): # 4.0 doesn't support compact storage cursor.execute("ALTER TABLE ks.sparse_super_2 DROP COMPACT STORAGE;") for is_upgraded, cursor in self.do_upgrade(cursor, row_factory=dict_factory, use_thrift=True): logger.debug("Querying {} node".format("upgraded" if is_upgraded else "old")) is_version_4_or_greater = node.get_cassandra_version() >= CASSANDRA_4_0 if not is_version_4_or_greater: client = get_thrift_client(host, port) _validate_sparse_thrift(client, cf='sparse_super_2') _validate_sparse_cql(cursor, cf='sparse_super_2', is_version_4_or_greater=is_version_4_or_greater)
def test_dense_supercolumn_with_renames(self): cursor = self.prepare(row_factory=dict_factory) cluster = self.cluster node = self.cluster.nodelist()[0] node.nodetool("enablethrift") host, port = node.network_interfaces['thrift'] client = get_thrift_client(host, port) client.transport.open() client.set_keyspace('ks') _create_dense_super_cf(client, 'dense_super_2') for i in range(1, 3): client.insert( 'k1'.encode(), ColumnParent('dense_super_2', 'key{}'.format(i).encode()), Column(_i64(100), 'value1'.encode(), 0), ConsistencyLevel.ONE) client.insert( 'k2'.encode(), ColumnParent('dense_super_2', 'key{}'.format(i).encode()), Column(_i64(200), 'value2'.encode(), 0), ConsistencyLevel.ONE) cursor.execute( "ALTER TABLE ks.dense_super_2 RENAME key TO renamed_key") cursor.execute( "ALTER TABLE ks.dense_super_2 RENAME column1 TO renamed_column1") cursor.execute( "ALTER TABLE ks.dense_super_2 RENAME column2 TO renamed_column2") cursor.execute( "ALTER TABLE ks.dense_super_2 RENAME value TO renamed_value") _validate_dense_cql(cursor, cf='dense_super_2', key='renamed_key', column1='renamed_column1', column2='renamed_column2', value='renamed_value') _validate_dense_thrift(client, cf='dense_super_2') if self.upgrade_is_version_4_or_greater( ): # 4.0 doesn't support compact storage cursor.execute( "ALTER TABLE ks.dense_super_2 DROP COMPACT STORAGE;") for is_upgraded, cursor in self.do_upgrade(cursor, row_factory=dict_factory, use_thrift=True): logger.debug("Querying {} node".format( "upgraded" if is_upgraded else "old")) if not is_version_4_or_greater: client = get_thrift_client(host, port) _validate_dense_thrift(client, cf='dense_super_2') _validate_dense_cql( cursor, cf='dense_super_2', key='renamed_key', column1='renamed_column1', column2='renamed_column2', value='renamed_value', is_version_4_or_greater=is_version_4_or_greater)