@@ -9,13 +9,22 @@ using namespace NYdb::NTable;
9
9
10
10
Y_UNIT_TEST_SUITE (KqpSchemeFulltext) {
11
11
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) {
13
24
NKikimrConfig::TFeatureFlags featureFlags;
14
25
featureFlags.SetEnableFulltextIndex (true );
15
26
auto settings = TKikimrSettings ().SetFeatureFlags (featureFlags);
16
27
TKikimrRunner kikimr (settings);
17
- auto db = kikimr.GetTableClient ();
18
- auto session = db.CreateSession ().GetValueSync ().GetSession ();
19
28
{
20
29
TString query = R"(
21
30
--!syntax_v1
@@ -31,18 +40,16 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
31
40
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
32
41
);
33
42
)" ;
34
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
43
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
35
44
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
36
45
}
37
46
}
38
47
39
- Y_UNIT_TEST (AlterTableWithIndex) {
48
+ Y_UNIT_TEST_TWIN (AlterTableWithIndex, UseQueryClient ) {
40
49
NKikimrConfig::TFeatureFlags featureFlags;
41
50
featureFlags.SetEnableFulltextIndex (true );
42
51
auto settings = TKikimrSettings ().SetFeatureFlags (featureFlags);
43
52
TKikimrRunner kikimr (settings);
44
- auto db = kikimr.GetTableClient ();
45
- auto session = db.CreateSession ().GetValueSync ().GetSession ();
46
53
{
47
54
TString query = R"(
48
55
--!syntax_v1
@@ -53,7 +60,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
53
60
PRIMARY KEY (Key)
54
61
);
55
62
)" ;
56
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
63
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
57
64
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
58
65
}
59
66
{
@@ -65,18 +72,16 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
65
72
COVER (Data)
66
73
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
67
74
)" ;
68
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
75
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
69
76
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
70
77
}
71
78
}
72
79
73
- Y_UNIT_TEST (CreateTableWithIndexNoFeatureFlag) {
80
+ Y_UNIT_TEST_TWIN (CreateTableWithIndexNoFeatureFlag, UseQueryClient ) {
74
81
NKikimrConfig::TFeatureFlags featureFlags;
75
82
featureFlags.SetEnableFulltextIndex (false );
76
83
auto settings = TKikimrSettings ().SetFeatureFlags (featureFlags);
77
84
TKikimrRunner kikimr (settings);
78
- auto db = kikimr.GetTableClient ();
79
- auto session = db.CreateSession ().GetValueSync ().GetSession ();
80
85
{
81
86
TString query = R"(
82
87
--!syntax_v1
@@ -90,19 +95,17 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
90
95
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
91
96
);
92
97
)" ;
93
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
98
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
94
99
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::GENERIC_ERROR, result.GetIssues ().ToString ());
95
100
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " Fulltext index support is disabled" );
96
101
}
97
102
}
98
103
99
- Y_UNIT_TEST (AlterTableWithIndexNoFeatureFlag) {
104
+ Y_UNIT_TEST_TWIN (AlterTableWithIndexNoFeatureFlag, UseQueryClient ) {
100
105
NKikimrConfig::TFeatureFlags featureFlags;
101
106
featureFlags.SetEnableFulltextIndex (false );
102
107
auto settings = TKikimrSettings ().SetFeatureFlags (featureFlags);
103
108
TKikimrRunner kikimr (settings);
104
- auto db = kikimr.GetTableClient ();
105
- auto session = db.CreateSession ().GetValueSync ().GetSession ();
106
109
{
107
110
TString query = R"(
108
111
--!syntax_v1
@@ -113,7 +116,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
113
116
PRIMARY KEY (Key)
114
117
);
115
118
)" ;
116
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
119
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
117
120
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
118
121
}
119
122
{
@@ -124,19 +127,17 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
124
127
ON (Text)
125
128
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
126
129
)" ;
127
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
130
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
128
131
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::GENERIC_ERROR, result.GetIssues ().ToString ());
129
132
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " Fulltext index support is disabled" );
130
133
}
131
134
}
132
135
133
- Y_UNIT_TEST (CreateTableWithIndexCaseInsensitive) {
136
+ Y_UNIT_TEST_TWIN (CreateTableWithIndexCaseInsensitive, UseQueryClient ) {
134
137
NKikimrConfig::TFeatureFlags featureFlags;
135
138
featureFlags.SetEnableFulltextIndex (true );
136
139
auto settings = TKikimrSettings ().SetFeatureFlags (featureFlags);
137
140
TKikimrRunner kikimr (settings);
138
- auto db = kikimr.GetTableClient ();
139
- auto session = db.CreateSession ().GetValueSync ().GetSession ();
140
141
{
141
142
TString query = R"(
142
143
--!syntax_v1
@@ -150,18 +151,16 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
150
151
WITH (layOUT=FLat, tokenIZER=WHITEspace, use_FILTER_lowercase=TRUE)
151
152
);
152
153
)" ;
153
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
154
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
154
155
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
155
156
}
156
157
}
157
158
158
- Y_UNIT_TEST (CreateTableWithIndexInvalidSettings) {
159
+ Y_UNIT_TEST_TWIN (CreateTableWithIndexInvalidSettings, UseQueryClient ) {
159
160
NKikimrConfig::TFeatureFlags featureFlags;
160
161
featureFlags.SetEnableFulltextIndex (true );
161
162
auto settings = TKikimrSettings ().SetFeatureFlags (featureFlags);
162
163
TKikimrRunner kikimr (settings);
163
- auto db = kikimr.GetTableClient ();
164
- auto session = db.CreateSession ().GetValueSync ().GetSession ();
165
164
{ // tokenizer=asdf
166
165
TString query = R"(
167
166
--!syntax_v1
@@ -175,7 +174,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
175
174
WITH (layout=flat, tokenizer=asdf, use_filter_lowercase=true)
176
175
);
177
176
)" ;
178
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
177
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
179
178
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::GENERIC_ERROR, result.GetIssues ().ToString ());
180
179
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " <main>:10:54: Error: Invalid tokenizer: asdf" );
181
180
}
@@ -192,7 +191,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
192
191
WITH (layout=flat, use_filter_lowercase=true)
193
192
);
194
193
)" ;
195
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
194
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
196
195
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::GENERIC_ERROR, result.GetIssues ().ToString ());
197
196
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " <main>:9:29: Error: tokenizer should be set" );
198
197
}
@@ -208,19 +207,17 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
208
207
ON (Text)
209
208
);
210
209
)" ;
211
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
210
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
212
211
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::GENERIC_ERROR, result.GetIssues ().ToString ());
213
212
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " <main>:9:29: Error: layout should be set" );
214
213
}
215
214
}
216
215
217
- Y_UNIT_TEST (AlterTableWithIndexInvalidSettings) {
216
+ Y_UNIT_TEST_TWIN (AlterTableWithIndexInvalidSettings, UseQueryClient ) {
218
217
NKikimrConfig::TFeatureFlags featureFlags;
219
218
featureFlags.SetEnableFulltextIndex (true );
220
219
auto settings = TKikimrSettings ().SetFeatureFlags (featureFlags);
221
220
TKikimrRunner kikimr (settings);
222
- auto db = kikimr.GetTableClient ();
223
- auto session = db.CreateSession ().GetValueSync ().GetSession ();
224
221
{
225
222
TString query = R"(
226
223
--!syntax_v1
@@ -231,7 +228,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
231
228
PRIMARY KEY (Key)
232
229
);
233
230
)" ;
234
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
231
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
235
232
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::SUCCESS, result.GetIssues ().ToString ());
236
233
}
237
234
{ // tokenizer=asdf
@@ -242,7 +239,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
242
239
ON (Text)
243
240
WITH (layout=flat, tokenizer=asdf, use_filter_lowercase=true)
244
241
)" ;
245
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
242
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
246
243
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::GENERIC_ERROR, result.GetIssues ().ToString ());
247
244
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " <main>:6:50: Error: Invalid tokenizer: asdf" );
248
245
}
@@ -254,7 +251,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
254
251
ON (Text)
255
252
WITH (layout=flat, use_filter_lowercase=true)
256
253
)" ;
257
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
254
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
258
255
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::GENERIC_ERROR, result.GetIssues ().ToString ());
259
256
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " <main>:5:25: Error: tokenizer should be set" );
260
257
}
@@ -265,19 +262,17 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
265
262
GLOBAL USING fulltext
266
263
ON (Text)
267
264
)" ;
268
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
265
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
269
266
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::GENERIC_ERROR, result.GetIssues ().ToString ());
270
267
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " <main>:5:25: Error: layout should be set" );
271
268
}
272
269
}
273
270
274
- Y_UNIT_TEST (CreateTableWithIndexInvalidTextType) {
271
+ Y_UNIT_TEST_TWIN (CreateTableWithIndexInvalidTextType, UseQueryClient ) {
275
272
NKikimrConfig::TFeatureFlags featureFlags;
276
273
featureFlags.SetEnableFulltextIndex (true );
277
274
auto settings = TKikimrSettings ().SetFeatureFlags (featureFlags);
278
275
TKikimrRunner kikimr (settings);
279
- auto db = kikimr.GetTableClient ();
280
- auto session = db.CreateSession ().GetValueSync ().GetSession ();
281
276
{
282
277
TString query = R"(
283
278
--!syntax_v1
@@ -291,7 +286,7 @@ Y_UNIT_TEST_SUITE(KqpSchemeFulltext) {
291
286
WITH (layout=flat, tokenizer=whitespace, use_filter_lowercase=true)
292
287
);
293
288
)" ;
294
- auto result = session. ExecuteSchemeQuery (query). ExtractValueSync ( );
289
+ auto result = ExecuteSchemeQuery (kikimr, query, UseQueryClient );
295
290
UNIT_ASSERT_VALUES_EQUAL_C (result.GetStatus (), EStatus::BAD_REQUEST, result.GetIssues ().ToString ());
296
291
UNIT_ASSERT_STRING_CONTAINS (result.GetIssues ().ToString (), " Error: Fulltext column 'Text' expected type 'String' but got Uint64" );
297
292
}
0 commit comments