@@ -2840,29 +2840,32 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
2840
2840
}
2841
2841
}
2842
2842
2843
+ void CreateTestTableWithVectorIndex(TSession& session) {
2844
+ TString create_index_query = R"(
2845
+ --!syntax_v1
2846
+ CREATE TABLE `/Root/TestTable` (
2847
+ Key Uint64,
2848
+ Embedding String,
2849
+ PRIMARY KEY (Key),
2850
+ INDEX vector_idx
2851
+ GLOBAL USING vector_kmeans_tree
2852
+ ON (Embedding)
2853
+ WITH (similarity=inner_product, vector_type=float, vector_dimension=1024)
2854
+ );
2855
+ )";
2856
+ auto result = session.ExecuteSchemeQuery(create_index_query).ExtractValueSync();
2857
+ UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
2858
+ }
2859
+
2843
2860
Y_UNIT_TEST(AlterTableAlterVectorIndex) {
2844
2861
NKikimrConfig::TFeatureFlags featureFlags;
2845
2862
featureFlags.SetEnableVectorIndex(true);
2846
2863
auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
2847
2864
TKikimrRunner kikimr(settings);
2848
2865
auto db = kikimr.GetTableClient();
2849
2866
auto session = db.CreateSession().GetValueSync().GetSession();
2850
- {
2851
- TString create_index_query = R"(
2852
- --!syntax_v1
2853
- CREATE TABLE `/Root/TestTable` (
2854
- Key Uint64,
2855
- Embedding String,
2856
- PRIMARY KEY (Key),
2857
- INDEX vector_idx
2858
- GLOBAL USING vector_kmeans_tree
2859
- ON (Embedding)
2860
- WITH (similarity=cosine, vector_type=bit, vector_dimension=1)
2861
- );
2862
- )";
2863
- auto result = session.ExecuteSchemeQuery(create_index_query).ExtractValueSync();
2864
- UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
2865
- }
2867
+
2868
+ CreateTestTableWithVectorIndex(session);
2866
2869
{
2867
2870
auto describe = session.DescribeTable("/Root/TestTable/vector_idx/indexImplPostingTable").GetValueSync();
2868
2871
UNIT_ASSERT_C(describe.IsSuccess(), describe.GetIssues().ToString());
@@ -3108,24 +3111,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
3108
3111
TKikimrRunner kikimr(settings);
3109
3112
auto db = kikimr.GetTableClient();
3110
3113
auto session = db.CreateSession().GetValueSync().GetSession();
3111
- {
3112
- TString create_index_query = R"(
3113
- --!syntax_v1
3114
- CREATE TABLE `/Root/TestTable` (
3115
- Key Uint64,
3116
- Embedding String,
3117
- PRIMARY KEY (Key),
3118
- INDEX vector_idx
3119
- GLOBAL USING vector_kmeans_tree
3120
- ON (Embedding)
3121
- WITH (similarity=inner_product, vector_type=float, vector_dimension=1024)
3122
- );
3123
- )";
3124
-
3125
- auto result = session.ExecuteSchemeQuery(create_index_query).ExtractValueSync();
3126
-
3127
- UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
3128
- }
3114
+ CreateTestTableWithVectorIndex(session);
3129
3115
{
3130
3116
auto result = session.DescribeTable("/Root/TestTable").ExtractValueSync();
3131
3117
UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), NYdb::EStatus::SUCCESS);
@@ -3326,6 +3312,39 @@ Y_UNIT_TEST_SUITE(KqpScheme) {
3326
3312
}
3327
3313
}
3328
3314
3315
+ Y_UNIT_TEST(AlterTableRenameVectorIndex) {
3316
+ NKikimrConfig::TFeatureFlags featureFlags;
3317
+ featureFlags.SetEnableVectorIndex(true);
3318
+ auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
3319
+ TKikimrRunner kikimr(settings);
3320
+ auto db = kikimr.GetTableClient();
3321
+ auto session = db.CreateSession().GetValueSync().GetSession();
3322
+ CreateTestTableWithVectorIndex(session);
3323
+ {
3324
+ auto status = session.ExecuteSchemeQuery(R"(
3325
+ --!syntax_v1
3326
+ ALTER TABLE `/Root/TestTable` RENAME INDEX vector_idx TO RenamedIndex;
3327
+ )").ExtractValueSync();
3328
+ UNIT_ASSERT_VALUES_EQUAL_C(status.GetStatus(), EStatus::SUCCESS, status.GetIssues().ToString());
3329
+ }
3330
+
3331
+ {
3332
+ TDescribeTableResult describe = session.DescribeTable("/Root/TestTable").GetValueSync();
3333
+ UNIT_ASSERT_EQUAL(describe.GetStatus(), EStatus::SUCCESS);
3334
+ auto indexDesc = describe.GetTableDescription().GetIndexDescriptions();
3335
+ UNIT_ASSERT_VALUES_EQUAL(indexDesc.size(), 1);
3336
+ UNIT_ASSERT_VALUES_EQUAL(indexDesc.back().GetIndexName(), "RenamedIndex");
3337
+ UNIT_ASSERT_VALUES_EQUAL(indexDesc.back().GetIndexColumns().size(), 1);
3338
+ UNIT_ASSERT_VALUES_EQUAL(indexDesc.back().GetDataColumns().size(), 0);
3339
+ }
3340
+ {
3341
+ auto describeLevelTable = session.DescribeTable("/Root/TestTable/RenamedIndex/indexImplLevelTable").GetValueSync();
3342
+ UNIT_ASSERT_C(describeLevelTable.IsSuccess(), describeLevelTable.GetIssues().ToString());
3343
+ auto describePostingTable = session.DescribeTable("/Root/TestTable/RenamedIndex/indexImplPostingTable").GetValueSync();
3344
+ UNIT_ASSERT_C(describePostingTable.IsSuccess(), describePostingTable.GetIssues().ToString());
3345
+ }
3346
+ }
3347
+
3329
3348
Y_UNIT_TEST(AlterTableWithDecimalColumn) {
3330
3349
TKikimrRunner kikimr;
3331
3350
auto db = kikimr.GetTableClient();
0 commit comments