Name | Status | Type | Time(s) |
test_decommissioned_wiped_node_can_gossip_to_single_seed | Success | | 162.994 |
test_collection_and_regular | Skipped | test not applicable to env.
/home/cassandra/cassandra-dtest/upgrade_tests/cql_tests.py:2197: test not applicable to env. | 0.001 |
test_whole_list_conditional | Skipped | test not applicable to env.
/home/cassandra/cassandra-dtest/upgrade_tests/cql_tests.py:4364: test not applicable to env. | 0.000 |
test_list | Success | | 59.240 |
test_add_deletion_info_in_unsorted_column | Success | | 58.036 |
test_order_by | Success | | 68.074 |
test_IN_clause_on_last_key | Skipped | 5.0 > 3.11.99
/home/cassandra/cassandra-dtest/conftest.py:449: 5.0 > 3.11.99 | 0.546 |
test_select_list_key_multi_row | Skipped | awaiting CASSANDRA-7396
/home/cassandra/cassandra-dtest/upgrade_tests/cql_tests.py:5378: awaiting CASSANDRA-7396 | 0.000 |
test_returned_null | Success | | 65.732 |
test_whole_map_conditional | Failure | TypeError: '<' not supported between instances of 'str' and 'int'
self = <abc.TestCQLNodes3RF3_Upgrade_current_5_0_x_To_indev_5_0_x object at 0x7fef260f8b20>
@since('2.1.1')
def test_whole_map_conditional(self):
cursor = self.prepare()
cursor.execute("""
CREATE TABLE tmap (
k int PRIMARY KEY,
m map<text, text>
)""")
cursor.execute("""
CREATE TABLE frozentmap (
k int PRIMARY KEY,
m frozen<map<text, text>>
)""")
for is_upgraded, cursor in self.do_upgrade(cursor):
logger.debug("Querying {} node".format("upgraded" if is_upgraded else "old"))
cursor.execute("TRUNCATE tmap")
cursor.execute("TRUNCATE frozentmap")
for frozen in (False, True):
logger.debug("Testing {} maps".format("frozen" if frozen else "normal"))
table = "frozentmap" if frozen else "tmap"
cursor.execute("INSERT INTO %s(k, m) VALUES (0, {'foo' : 'bar'})" % (table,))
def check_applies(condition):
# UPDATE statement
assert_one(cursor, "UPDATE {} SET m = {{'foo': 'bar'}} WHERE k=0 IF {}".format(table, condition), [True])
assert_one(cursor, "SELECT * FROM {}".format(table), [0, {'foo': 'bar'}], cl=ConsistencyLevel.SERIAL)
# DELETE statement
assert_one(cursor, "DELETE FROM {} WHERE k=0 IF {}".format(table, condition), [True])
assert_none(cursor, "SELECT * FROM {}".format(table), cl=ConsistencyLevel.SERIAL)
cursor.execute("INSERT INTO {}(k, m) VALUES (0, {{'foo' : 'bar'}})".format(table))
check_applies("m = {'foo': 'bar'}")
check_applies("m > {'a': 'a'}")
check_applies("m >= {'a': 'a'}")
check_applies("m < {'z': 'z'}")
check_applies("m <= {'z': 'z'}")
check_applies("m != {'a': 'a'}")
check_applies("m IN (null, {'a': 'a'}, {'foo': 'bar'})")
# multiple conditions
check_applies("m > {'a': 'a'} AND m < {'z': 'z'}")
check_applies("m != null AND m IN (null, {'a': 'a'}, {'foo': 'bar'})")
def check_does_not_apply(condition):
# UPDATE statement
assert_one(cursor, "UPDATE {} SET m = {{'foo': 'bar'}} WHERE k=0 IF {}".format(table, condition), [False, {'foo': 'bar'}])
assert_one(cursor, "SELECT * FROM {}".format(table), [0, {'foo': 'bar'}], cl=ConsistencyLevel.SERIAL)
# DELETE statement
assert_one(cursor, "DELETE FROM {} WHERE k=0 IF {}".format(table, condition), [False, {'foo': 'bar'}])
assert_one(cursor, "SELECT * FROM {}".format(table), [0, {'foo': 'bar'}], cl=ConsistencyLevel.SERIAL)
# should not apply
check_does_not_apply("m = {'a': 'a'}")
check_does_not_apply("m > {'z': 'z'}")
check_does_not_apply("m >= {'z': 'z'}")
check_does_not_apply("m < {'a': 'a'}")
check_does_not_apply("m <= {'a': 'a'}")
check_does_not_apply("m != {'foo': 'bar'}")
check_does_not_apply("m IN ({'a': 'a'}, null)")
check_does_not_apply("m IN ()")
check_does_not_apply("m = null AND m != null")
def check_invalid(condition, expected=InvalidRequest):
# UPDATE statement
assert_invalid(cursor, "UPDATE {} SET m = {{'foo': 'bar'}} WHERE k=0 IF {}".format(table, condition), expected=expected)
assert_one(cursor, "SELECT * FROM {}".format(table), [0, {'foo': 'bar'}], cl=ConsistencyLevel.SERIAL)
# DELETE statement
assert_invalid(cursor, "DELETE FROM {} WHERE k=0 IF {}".format(table, condition), expected=expected)
assert_one(cursor, "SELECT * FROM {}".format(table), [0, {'foo': 'bar'}], cl=ConsistencyLevel.SERIAL)
check_invalid("m = {null: null}")
check_invalid("m = {'a': null}")
check_invalid("m = {null: 'a'}")
check_invalid("m < null")
check_invalid("m IN null", expected=SyntaxException)
# @jira_ticket CASSANDRA-10537
> if self.get_node_version(is_upgraded) >= LooseVersion(CASSANDRA_4_1):
upgrade_tests/cql_tests.py:4775:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
upgrade_tests/upgrade_base.py:227: in get_node_version
return max(node_versions) if is_upgraded else min(node_versions)
/usr/lib/python3.8/distutils/version.py:64: in __gt__
c = self._cmp(other)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = LooseVersion ('5.0-rc1'), other = LooseVersion ('5.0.1')
def _cmp (self, other):
if isinstance(other, str):
other = LooseVersion(other)
if self.version == other.version:
return 0
> if self.version < other.version:
E TypeError: '<' not supported between instances of 'str' and 'int'
/usr/lib/python3.8/distutils/version.py:337: TypeError | 61.942 |
test_cql3_insert_thrift | Skipped | 5.0 > 3.99
/home/cassandra/cassandra-dtest/conftest.py:449: 5.0 > 3.99 | 0.505 |
test_intersection_logic_returns_empty_result | Success | | 188.040 |
test_reversed_comparator | Success | | 163.000 |
test_rename | Skipped | 5.0 > 3.99
/home/cassandra/cassandra-dtest/conftest.py:449: 5.0 > 3.99 | 0.624 |
test_materialized_view_simple | Success | | 70.053 |
test_range_with_deletes | Skipped | test not applicable to env.
/home/cassandra/cassandra-dtest/upgrade_tests/cql_tests.py:2416: test not applicable to env. | 0.000 |
test_static_with_limit | Skipped | test not applicable to env.
/home/cassandra/cassandra-dtest/upgrade_tests/cql_tests.py:4946: test not applicable to env. | 0.000 |
test_no_clustering | Success | | 55.271 |
test_nan_infinity | Success | | 54.969 |
test_count | Success | | 56.492 |
test_conditional_delete | Success | | 61.345 |
test_dynamic_cf | Success | | 56.651 |
test_multi_in_compact | Success | | 55.525 |
test_invalid_custom_timestamp | Success | | 59.521 |
test_limit_bugs | Success | | 56.480 |
test_static_columns_with_distinct | Success | | 58.978 |
test_no_range_ghost | Success | | 60.730 |
test_empty_in | Success | | 62.352 |
test_limit_multiget | Skipped | test not applicable to env.
/home/cassandra/cassandra-dtest/upgrade_tests/cql_tests.py:334: test not applicable to env. | 0.000 |
test_float_with_exponent | Skipped | test not applicable to env.
/home/cassandra/cassandra-dtest/upgrade_tests/cql_tests.py:2685: test not applicable to env. | 0.000 |
test_blobAs_functions | Skipped | test not applicable to env.
/home/cassandra/cassandra-dtest/upgrade_tests/cql_tests.py:5183: test not applicable to env. | 0.000 |
test_with_more_results_than_page_size | Success | | 59.994 |
test_with_limit | Skipped | test not applicable to env.
/home/cassandra/cassandra-dtest/upgrade_tests/paging_test.py:310: test not applicable to env. | 0.000 |
test_paging_using_secondary_indexes_with_static_cols | Success | | 62.539 |
test_row_TTL_expiry_during_paging | Success | | 89.420 |
test_multiple_cell_deletions | Success | | 57.670 |
test_upgrade_with_unclustered_compact_table | Success | | 31.217 |
test_sstableloader_compression_none_to_none | Skipped | 5.0.1 > 4.99
/home/cassandra/cassandra-dtest/conftest.py:468: 5.0.1 > 4.99 | 0.334 |
test_sparse_supercolumn | Skipped | 5.0 > 3.99
/home/cassandra/cassandra-dtest/conftest.py:449: 5.0 > 3.99 | 0.594 |
test_bootstrap_multidc | Success | | 484.682 |