Skip to content

Commit

Permalink
test: schema_change_test: Verify digests also with TABLE_DIGEST_INSEN…
Browse files Browse the repository at this point in the history
…SITIVE_TO_EXPIRY enabled

The new test cases are a mirror of old test cases, but with updated digests.
  • Loading branch information
tgrabiec committed Jul 12, 2023
1 parent f2ed9fc commit 1ecd3c1
Showing 1 changed file with 111 additions and 5 deletions.
116 changes: 111 additions & 5 deletions test/boost/schema_change_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -824,7 +824,7 @@ future<> test_schema_digest_does_not_change_with_disabled_features(sstring data_
}, cfg_in).then([tmp = std::move(tmp)] {});
}

SEASTAR_TEST_CASE(test_schema_digest_does_not_change) {
SEASTAR_TEST_CASE(test_schema_digest_does_not_change_without_digest_feature) {
std::vector<utils::UUID> expected_digests{
utils::UUID("264f79fc-61bd-3670-8d6e-2794f9787b0a"),
utils::UUID("d2035515-b299-3265-b920-7dbe5306e72a"),
Expand All @@ -842,7 +842,7 @@ SEASTAR_TEST_CASE(test_schema_digest_does_not_change) {
std::move(expected_digests), [] (cql_test_env& e) {});
}

SEASTAR_TEST_CASE(test_schema_digest_does_not_change_after_computed_columns) {
SEASTAR_TEST_CASE(test_schema_digest_does_not_change_after_computed_columns_without_digest_feature) {
std::vector<utils::UUID> expected_digests{
utils::UUID("036153ec-4565-34fb-a878-ce347b94f247"),
utils::UUID("fa2e7735-7604-3202-8ce9-399996305aca"),
Expand All @@ -859,7 +859,7 @@ SEASTAR_TEST_CASE(test_schema_digest_does_not_change_after_computed_columns) {
std::set<sstring>{"CDC", "KEYSPACE_STORAGE_OPTIONS", "TABLE_DIGEST_INSENSITIVE_TO_EXPIRY"}, std::move(expected_digests), [] (cql_test_env& e) {});
}

SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_functions) {
SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_functions_without_digest_feature) {
std::vector<utils::UUID> expected_digests{
utils::UUID("6fa38d16-bbc4-3da5-bda5-680329789d8f"),
utils::UUID("649bf7ec-fd64-3ccb-adde-3887fc1432be"),
Expand All @@ -882,7 +882,7 @@ SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_functions) {
});
}

SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_cdc_options) {
SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_cdc_options_without_digest_feature) {
auto ext = std::make_shared<db::extensions>();
ext->add_schema_extension<cdc::cdc_extension>(cdc::cdc_extension::NAME);
std::vector<utils::UUID> expected_digests{
Expand All @@ -907,7 +907,7 @@ SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_cdc_options) {
std::move(ext));
}

SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_keyspace_storage_options) {
SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_keyspace_storage_options_without_digest_feature) {
std::vector<utils::UUID> expected_digests{
utils::UUID("d9f78213-ff9f-3208-9083-47e18cebf06f"),
utils::UUID("30e2cf99-389d-381f-82b9-3fcdcf66a1fb"),
Expand All @@ -930,6 +930,112 @@ SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_keyspace_storage_optio
e.execute_cql("create table tests_s3.table1 (pk int primary key, c1 int, c2 int)").get();
});
}
SEASTAR_TEST_CASE(test_schema_digest_does_not_change) {
std::vector<utils::UUID> expected_digests{
utils::UUID("264f79fc-61bd-3670-8d6e-2794f9787b0a"),
utils::UUID("d2035515-b299-3265-b920-7dbe5306e72a"),
utils::UUID("d2035515-b299-3265-b920-7dbe5306e72a"),
utils::UUID("de49e92f-a00d-3f24-8779-d07de26708cb"),
utils::UUID("de49e92f-a00d-3f24-8779-d07de26708cb"),
utils::UUID("75550bef-3a95-3901-be80-4540f7d8a311"),
utils::UUID("aff80a2a-4a72-35bb-9ac3-f851013610d0"),
utils::UUID("030100b2-27aa-32f2-8964-0090a1af75f8"),
utils::UUID("16ba4b2d-7c61-393b-ba51-0890e25f4e22"),
utils::UUID("de49e92f-a00d-3f24-8779-d07de26708cb"),
};
return test_schema_digest_does_not_change_with_disabled_features("./test/resource/sstables/schema_digest_test",
std::set<sstring>{"COMPUTED_COLUMNS", "CDC", "KEYSPACE_STORAGE_OPTIONS"},
std::move(expected_digests), [] (cql_test_env& e) {});
}

SEASTAR_TEST_CASE(test_schema_digest_does_not_change_after_computed_columns) {
std::vector<utils::UUID> expected_digests{
utils::UUID("036153ec-4565-34fb-a878-ce347b94f247"),
utils::UUID("fa2e7735-7604-3202-8ce9-399996305aca"),
utils::UUID("fa2e7735-7604-3202-8ce9-399996305aca"),
utils::UUID("94606636-ae43-3e0a-b238-e7f0e33ef600"),
utils::UUID("94606636-ae43-3e0a-b238-e7f0e33ef600"),
utils::UUID("5a89ff92-9b5c-32eb-ad5a-5def856e3024"),
utils::UUID("26808d79-e22a-3d20-88a7-d812301ff342"),
utils::UUID("371527f3-2f26-32a6-8b29-bb0ce0735b61"),
utils::UUID("02ed06b1-c384-3f83-b116-fe94f5bf647a"),
utils::UUID("94606636-ae43-3e0a-b238-e7f0e33ef600"),
};
return test_schema_digest_does_not_change_with_disabled_features("./test/resource/sstables/schema_digest_test_computed_columns",
std::set<sstring>{"CDC", "KEYSPACE_STORAGE_OPTIONS"}, std::move(expected_digests), [] (cql_test_env& e) {});
}

SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_functions) {
std::vector<utils::UUID> expected_digests{
utils::UUID("6fa38d16-bbc4-3da5-bda5-680329789d8f"),
utils::UUID("649bf7ec-fd64-3ccb-adde-3887fc1432be"),
utils::UUID("649bf7ec-fd64-3ccb-adde-3887fc1432be"),
utils::UUID("48fd0c1b-9777-34be-8c16-187c6ab55cfc"),
utils::UUID("48fd0c1b-9777-34be-8c16-187c6ab55cfc"),
utils::UUID("9b842fb8-2b89-3f9f-a344-f648cb27a226"),
utils::UUID("e596cbc4-60f8-3788-96e6-fdfb105ba39f"),
utils::UUID("0f214b9c-81a5-3771-8722-4763ab8fd0ee"),
utils::UUID("08624ebc-c0d2-3e7a-bcd7-4fcb442626e4"),
utils::UUID("48fd0c1b-9777-34be-8c16-187c6ab55cfc"),
};
return test_schema_digest_does_not_change_with_disabled_features(
"./test/resource/sstables/schema_digest_with_functions_test",
std::set<sstring>{"CDC", "KEYSPACE_STORAGE_OPTIONS"},
std::move(expected_digests),
[] (cql_test_env& e) {
e.execute_cql("create function twice(val int) called on null input returns int language lua as 'return 2 * val';").get();
e.execute_cql("create function my_add(a int, b int) called on null input returns int language lua as 'return a + b';").get();
});
}

SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_cdc_options) {
auto ext = std::make_shared<db::extensions>();
ext->add_schema_extension<cdc::cdc_extension>(cdc::cdc_extension::NAME);
std::vector<utils::UUID> expected_digests{
utils::UUID("ff69e387-64ca-3335-b488-b7a615908148"),
utils::UUID("7f1ac621-fc68-3420-bc9b-54520da40418"),
utils::UUID("7f1ac621-fc68-3420-bc9b-54520da40418"),
utils::UUID("09899769-4e7f-3119-9769-e3db3d99455b"),
utils::UUID("09899769-4e7f-3119-9769-e3db3d99455b"),
utils::UUID("fdfdea09-fee9-3fd4-945f-b91a7a2e0e39"),
utils::UUID("44e79540-5cc5-3617-88c0-267fe7cc2232"),
utils::UUID("e2b673e7-04c0-37cb-b076-77951f2f5452"),
utils::UUID("089d5e42-065a-3e19-a608-58a960816c51"),
utils::UUID("09899769-4e7f-3119-9769-e3db3d99455b"),
};
return test_schema_digest_does_not_change_with_disabled_features(
"./test/resource/sstables/schema_digest_test_cdc_options",
std::set<sstring>{"KEYSPACE_STORAGE_OPTIONS"},
std::move(expected_digests),
[] (cql_test_env& e) {
e.execute_cql("create table tests.table_cdc (pk int primary key, c1 int, c2 int) with cdc = {'enabled':'true'};").get();
},
std::move(ext));
}

SEASTAR_TEST_CASE(test_schema_digest_does_not_change_with_keyspace_storage_options) {
std::vector<utils::UUID> expected_digests{
utils::UUID("d9f78213-ff9f-3208-9083-47e18cebf06f"),
utils::UUID("30e2cf99-389d-381f-82b9-3fcdcf66a1fb"),
utils::UUID("30e2cf99-389d-381f-82b9-3fcdcf66a1fb"),
utils::UUID("98d63879-6633-3708-880e-8716fcbadda0"),
utils::UUID("98d63879-6633-3708-880e-8716fcbadda0"),
utils::UUID("1f971ee2-42d1-3564-ae89-0090803d6d58"),
utils::UUID("60444aca-708a-387f-b571-e4c0806ab78d"),
utils::UUID("11c00de3-d47f-38bd-84f1-0f5e1179a168"),
utils::UUID("c495feac-b2a4-3c50-91a5-363630f878d6"),
utils::UUID("3fc03c97-8010-3746-8cea-e8b9ac27fe4e"),
};
return test_schema_digest_does_not_change_with_disabled_features(
"./test/resource/sstables/schema_digest_test_keyspace_storage_options",
std::set<sstring>{},
std::move(expected_digests),
[] (cql_test_env& e) {
e.execute_cql("create keyspace tests_s3 with replication = { 'class' : 'NetworkTopologyStrategy', 'replication_factor' : 1 }"
" and storage = { 'type': 'S3', 'bucket': 'b1', 'endpoint': 'localhost' };").get();
e.execute_cql("create table tests_s3.table1 (pk int primary key, c1 int, c2 int)").get();
});
}

// Regression test, ensuring people don't forget to set the null sharder
// for newly added schema tables.
Expand Down

0 comments on commit 1ecd3c1

Please sign in to comment.