Skip to content

Commit e439d5a

Browse files
authored
Test fulltext scheme queries with QueryService (#26112)
1 parent 8137e7d commit e439d5a

File tree

1 file changed

+34
-39
lines changed

1 file changed

+34
-39
lines changed

ydb/core/kqp/ut/scheme/kqp_scheme_fulltext_ut.cpp

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,22 @@ using namespace NYdb::NTable;
99

1010
Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
1111

12-
Y_UNIT_TEST(CreateTableWithIndex) {
12+
TStatus ExecuteSchemeQuery(TKikimrRunner& kikimr, const TString& query, bool useQueryClient) {
13+
if (useQueryClient) {
14+
auto db = kikimr.GetQueryClient();
15+
return db.ExecuteQuery(query, NYdb::NQuery::TTxControl::NoTx()).ExtractValueSync();
16+
} else {
17+
auto db = kikimr.GetTableClient();
18+
auto session = db.CreateSession().GetValueSync().GetSession();
19+
return session.ExecuteSchemeQuery(query).ExtractValueSync();
20+
}
21+
}
22+
23+
Y_UNIT_TEST_TWIN(CreateTableWithIndex, UseQueryClient) {
1324
NKikimrConfig::TFeatureFlags featureFlags;
1425
featureFlags.SetEnableFulltextIndex(true);
1526
auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
1627
TKikimrRunner kikimr(settings);
17-
auto db = kikimr.GetTableClient();
18-
auto session = db.CreateSession().GetValueSync().GetSession();
1928
{
2029
TString query = R"(
2130
--!syntax_v1
@@ -31,18 +40,16 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
3140
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
3241
);
3342
)";
34-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
43+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
3544
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
3645
}
3746
}
3847

39-
Y_UNIT_TEST(AlterTableWithIndex) {
48+
Y_UNIT_TEST_TWIN(AlterTableWithIndex, UseQueryClient) {
4049
NKikimrConfig::TFeatureFlags featureFlags;
4150
featureFlags.SetEnableFulltextIndex(true);
4251
auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
4352
TKikimrRunner kikimr(settings);
44-
auto db = kikimr.GetTableClient();
45-
auto session = db.CreateSession().GetValueSync().GetSession();
4653
{
4754
TString query = R"(
4855
--!syntax_v1
@@ -53,7 +60,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
5360
PRIMARY KEY (Key)
5461
);
5562
)";
56-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
63+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
5764
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
5865
}
5966
{
@@ -65,18 +72,16 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
6572
COVER (Data)
6673
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
6774
)";
68-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
75+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
6976
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
7077
}
7178
}
7279

73-
Y_UNIT_TEST(CreateTableWithIndexNoFeatureFlag) {
80+
Y_UNIT_TEST_TWIN(CreateTableWithIndexNoFeatureFlag, UseQueryClient) {
7481
NKikimrConfig::TFeatureFlags featureFlags;
7582
featureFlags.SetEnableFulltextIndex(false);
7683
auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
7784
TKikimrRunner kikimr(settings);
78-
auto db = kikimr.GetTableClient();
79-
auto session = db.CreateSession().GetValueSync().GetSession();
8085
{
8186
TString query = R"(
8287
--!syntax_v1
@@ -90,19 +95,17 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
9095
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
9196
);
9297
)";
93-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
98+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
9499
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
95100
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Fulltext index support is disabled");
96101
}
97102
}
98103

99-
Y_UNIT_TEST(AlterTableWithIndexNoFeatureFlag) {
104+
Y_UNIT_TEST_TWIN(AlterTableWithIndexNoFeatureFlag, UseQueryClient) {
100105
NKikimrConfig::TFeatureFlags featureFlags;
101106
featureFlags.SetEnableFulltextIndex(false);
102107
auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
103108
TKikimrRunner kikimr(settings);
104-
auto db = kikimr.GetTableClient();
105-
auto session = db.CreateSession().GetValueSync().GetSession();
106109
{
107110
TString query = R"(
108111
--!syntax_v1
@@ -113,7 +116,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
113116
PRIMARY KEY (Key)
114117
);
115118
)";
116-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
119+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
117120
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
118121
}
119122
{
@@ -124,19 +127,17 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
124127
ON (Text)
125128
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
126129
)";
127-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
130+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
128131
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
129132
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Fulltext index support is disabled");
130133
}
131134
}
132135

133-
Y_UNIT_TEST(CreateTableWithIndexCaseInsensitive) {
136+
Y_UNIT_TEST_TWIN(CreateTableWithIndexCaseInsensitive, UseQueryClient) {
134137
NKikimrConfig::TFeatureFlags featureFlags;
135138
featureFlags.SetEnableFulltextIndex(true);
136139
auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
137140
TKikimrRunner kikimr(settings);
138-
auto db = kikimr.GetTableClient();
139-
auto session = db.CreateSession().GetValueSync().GetSession();
140141
{
141142
TString query = R"(
142143
--!syntax_v1
@@ -150,18 +151,16 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
150151
WITH (layOUT=FLat, tokenIZER=WHITEspace, use_FILTER_lowercase=TRUE)
151152
);
152153
)";
153-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
154+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
154155
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
155156
}
156157
}
157158

158-
Y_UNIT_TEST(CreateTableWithIndexInvalidSettings) {
159+
Y_UNIT_TEST_TWIN(CreateTableWithIndexInvalidSettings, UseQueryClient) {
159160
NKikimrConfig::TFeatureFlags featureFlags;
160161
featureFlags.SetEnableFulltextIndex(true);
161162
auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
162163
TKikimrRunner kikimr(settings);
163-
auto db = kikimr.GetTableClient();
164-
auto session = db.CreateSession().GetValueSync().GetSession();
165164
{ // tokenizer=asdf
166165
TString query = R"(
167166
--!syntax_v1
@@ -175,7 +174,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
175174
WITH (layout=flat, tokenizer=asdf, use_filter_lowercase=true)
176175
);
177176
)";
178-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
177+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
179178
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
180179
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "<main>:10:54: Error: Invalid tokenizer: asdf");
181180
}
@@ -192,7 +191,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
192191
WITH (layout=flat, use_filter_lowercase=true)
193192
);
194193
)";
195-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
194+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
196195
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
197196
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "<main>:9:29: Error: tokenizer should be set");
198197
}
@@ -208,19 +207,17 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
208207
ON (Text)
209208
);
210209
)";
211-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
210+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
212211
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
213212
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "<main>:9:29: Error: layout should be set");
214213
}
215214
}
216215

217-
Y_UNIT_TEST(AlterTableWithIndexInvalidSettings) {
216+
Y_UNIT_TEST_TWIN(AlterTableWithIndexInvalidSettings, UseQueryClient) {
218217
NKikimrConfig::TFeatureFlags featureFlags;
219218
featureFlags.SetEnableFulltextIndex(true);
220219
auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
221220
TKikimrRunner kikimr(settings);
222-
auto db = kikimr.GetTableClient();
223-
auto session = db.CreateSession().GetValueSync().GetSession();
224221
{
225222
TString query = R"(
226223
--!syntax_v1
@@ -231,7 +228,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
231228
PRIMARY KEY (Key)
232229
);
233230
)";
234-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
231+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
235232
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString());
236233
}
237234
{ // tokenizer=asdf
@@ -242,7 +239,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
242239
ON (Text)
243240
WITH (layout=flat, tokenizer=asdf, use_filter_lowercase=true)
244241
)";
245-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
242+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
246243
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
247244
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "<main>:6:50: Error: Invalid tokenizer: asdf");
248245
}
@@ -254,7 +251,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
254251
ON (Text)
255252
WITH (layout=flat, use_filter_lowercase=true)
256253
)";
257-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
254+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
258255
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
259256
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "<main>:5:25: Error: tokenizer should be set");
260257
}
@@ -265,19 +262,17 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
265262
GLOBAL USING fulltext
266263
ON (Text)
267264
)";
268-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
265+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
269266
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString());
270267
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "<main>:5:25: Error: layout should be set");
271268
}
272269
}
273270

274-
Y_UNIT_TEST(CreateTableWithIndexInvalidTextType) {
271+
Y_UNIT_TEST_TWIN(CreateTableWithIndexInvalidTextType, UseQueryClient) {
275272
NKikimrConfig::TFeatureFlags featureFlags;
276273
featureFlags.SetEnableFulltextIndex(true);
277274
auto settings = TKikimrSettings().SetFeatureFlags(featureFlags);
278275
TKikimrRunner kikimr(settings);
279-
auto db = kikimr.GetTableClient();
280-
auto session = db.CreateSession().GetValueSync().GetSession();
281276
{
282277
TString query = R"(
283278
--!syntax_v1
@@ -291,7 +286,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
291286
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
292287
);
293288
)";
294-
auto result = session.ExecuteSchemeQuery(query).ExtractValueSync();
289+
auto result = ExecuteSchemeQuery(kikimr, query, UseQueryClient);
295290
UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::BAD_REQUEST, result.GetIssues().ToString());
296291
UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Error: Fulltext column 'Text' expected type 'String' but got Uint64");
297292
}

0 commit comments

Comments
 (0)