@@ -4137,7 +4137,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
41374137 } else {
41384138 query = Sprintf(R"(
41394139 --!syntax_v1
4140- ALTER TABLE `/Root/TestTable` ADD INDEX vector_idx%d
4140+ ALTER TABLE `/Root/TestTable` ADD INDEX vector_idx%d
41414141 GLOBAL USING vector_kmeans_tree
41424142 ON (Embedding)
41434143 WITH (%s);
@@ -4161,18 +4161,18 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
41614161 // valid settings:
41624162 check("similarity=inner_product, vector_type=float, vector_dimension=1024, levels=3, clusters=10", "");
41634163
4164- // unknown index setting:
4164+ // unknown index setting:
41654165 check("XxX=YyY, similarity=inner_product, vector_type=float, vector_dimension=1024, levels=3, clusters=10",
41664166 "Unknown index setting: xxx");
41674167 check("XxX=42, similarity=inner_product, vector_type=float, vector_dimension=1024, levels=3, clusters=10",
41684168 "Unknown index setting: xxx");
4169-
4169+
41704170 // distance:
41714171 check("distance=XxX, vector_type=float, vector_dimension=1024, levels=3, clusters=10",
41724172 "Invalid distance: xxx");
41734173 check("distance=42, vector_type=float, vector_dimension=1024, levels=3, clusters=10",
41744174 "Invalid distance: 42");
4175-
4175+
41764176 // similarity
41774177 check("similarity=XxX, vector_type=float, vector_dimension=1024, levels=3, clusters=10",
41784178 "Invalid similarity: xxx");
@@ -4194,7 +4194,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
41944194 "Invalid vector_type: 42");
41954195 check("similarity=inner_product, vector_dimension=1024, levels=3, clusters=10",
41964196 "vector_type should be set");
4197-
4197+
41984198 // vector_dimension
41994199 check("similarity=inner_product, vector_type=float, vector_dimension=XxX, levels=3, clusters=10",
42004200 "Invalid vector_dimension: xxx");
@@ -4211,7 +4211,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
42114211 "Invalid vector_dimension: 99999999999999999999");
42124212 check("similarity=inner_product, vector_type=float, levels=3, clusters=10",
42134213 "vector_dimension should be set");
4214-
4214+
42154215 // levels
42164216 check("similarity=inner_product, vector_type=float, vector_dimension=1024, levels=XxX, clusters=2",
42174217 "Invalid levels: xxx");
@@ -4247,13 +4247,13 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
42474247 "Invalid clusters: 99999999999999999999");
42484248 check("similarity=inner_product, vector_type=float, vector_dimension=1024, levels=1",
42494249 "clusters should be set");
4250-
4250+
42514251 // clusters^levels
42524252 check("similarity=inner_product, vector_type=float, vector_dimension=1024, levels=10, clusters=10",
42534253 "Invalid clusters^levels: 10^10 should be less than 1073741824");
42544254 check("similarity=inner_product, vector_type=float, vector_dimension=1024, levels=16, clusters=1024",
42554255 "Invalid clusters^levels: 1024^16 should be less than 1073741824");
4256-
4256+
42574257 // vector_dimension*clusters
42584258 check("similarity=inner_product, vector_type=float, vector_dimension=2048, levels=1, clusters=2048", "");
42594259 check("similarity=inner_product, vector_type=float, vector_dimension=2049, levels=1, clusters=2048",
@@ -11452,6 +11452,77 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
1145211452 }
1145311453 }
1145411454
11455+ Y_UNIT_TEST_TWIN(CreateAndAlterTopicAvailabilityPeriod, UseQueryService) {
11456+ TKikimrRunner kikimr;
11457+ auto queryClient = kikimr.GetQueryClient();
11458+ auto db = kikimr.GetTableClient();
11459+ auto session = db.CreateSession().GetValueSync().GetSession();
11460+
11461+ auto executeQuery = [&queryClient, &session](const TString& query) {
11462+ return ExecuteGeneric<UseQueryService>(queryClient, session, query);
11463+ };
11464+
11465+ // ok
11466+ {
11467+ const auto query = R"(
11468+ --!syntax_v1
11469+ CREATE TOPIC `/Root/topic` (
11470+ CONSUMER cons1 WITH (availability_period = Interval('PT1H'))
11471+ )
11472+ )";
11473+ const auto result = executeQuery(query);
11474+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
11475+ }
11476+ {
11477+ const auto query = R"(
11478+ --!syntax_v1
11479+ ALTER TOPIC `/Root/topic`
11480+ ALTER CONSUMER cons1 SET (availability_period = Interval('PT9H'))
11481+ )";
11482+ const auto result = executeQuery(query);
11483+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
11484+ }
11485+ {
11486+ const auto query = R"(
11487+ --!syntax_v1
11488+ ALTER TOPIC `/Root/topic`
11489+ DROP CONSUMER cons1,
11490+ ADD CONSUMER cons2 WITH (availability_period = Interval('PT8H'))
11491+ )";
11492+ const auto result = executeQuery(query);
11493+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
11494+ }
11495+ {
11496+ const auto query = R"(
11497+ --!syntax_v1
11498+ ALTER TOPIC `/Root/topic`
11499+ ALTER CONSUMER cons2 RESET (availability_period)
11500+ )";
11501+ const auto result = executeQuery(query);
11502+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
11503+ }
11504+ // bad
11505+ {
11506+ const auto query = R"(
11507+ --!syntax_v1
11508+ ALTER TOPIC `/Root/topic`
11509+ ALTER CONSUMER cons2 SET (availability_period = 0)
11510+ )";
11511+ const auto result = executeQuery(query);
11512+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
11513+ UNIT_ASSERT_STRING_CONTAINS_C(result.GetIssues().ToString(), "Interval type is expected", result.GetIssues().ToString());
11514+ }
11515+ {
11516+ const auto query = R"(
11517+ --!syntax_v1
11518+ ALTER TOPIC `/Root/topic`
11519+ ADD CONSUMER cons_neg WITH (availability_period = Interval('-PT8H'))
11520+ )";
11521+ const auto result = executeQuery(query);
11522+ UNIT_ASSERT_VALUES_UNEQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
11523+ }
11524+ }
11525+
1145511526 Y_UNIT_TEST(DisableResourcePools) {
1145611527 NKikimrConfig::TAppConfig config;
1145711528 config.MutableFeatureFlags()->SetEnableResourcePools(false);
0 commit comments