@@ -21,6 +21,7 @@ local space_name = 'customers'
21
21
local non_existing_space_id = 100500
22
22
local non_existing_space_name = ' non_existing_space'
23
23
local new_space_name = ' newspace'
24
+ local select_by_secondary_index_idx = 2
24
25
25
26
local function before_all (g )
26
27
g .cluster = helpers .Cluster :new ({
@@ -152,54 +153,62 @@ local eval = {
152
153
}
153
154
154
155
local simple_operation_cases = {
155
- insert = {
156
+ {
157
+ name = ' insert' ,
156
158
func = ' crud.insert' ,
157
159
args = {
158
160
space_name ,
159
161
{ 12 , box .NULL , ' Ivan' , ' Ivanov' , 20 , ' Moscow' },
160
162
},
161
163
op = ' insert' ,
162
164
},
163
- insert_object = {
165
+ {
166
+ name = ' insert_object' ,
164
167
func = ' crud.insert_object' ,
165
168
args = {
166
169
space_name ,
167
170
{ id = 13 , name = ' Ivan' , last_name = ' Ivanov' , age = 20 , city = ' Moscow' },
168
171
},
169
172
op = ' insert' ,
170
173
},
171
- get = {
174
+ {
175
+ name = ' get' ,
172
176
func = ' crud.get' ,
173
177
args = { space_name , { 12 } },
174
178
op = ' get' ,
175
179
},
176
- select = {
180
+ {
181
+ name = ' select' ,
177
182
func = ' crud.select' ,
178
183
args = { space_name , {{ ' ==' , ' id_index' , 3 }} },
179
184
op = ' select' ,
180
185
},
181
- pairs = {
186
+ {
187
+ name = ' pairs' ,
182
188
eval = eval .pairs ,
183
189
args = { space_name , {{ ' ==' , ' id_index' , 3 }} },
184
190
op = ' select' ,
185
191
},
186
- replace = {
192
+ {
193
+ name = ' replace' ,
187
194
func = ' crud.replace' ,
188
195
args = {
189
196
space_name ,
190
197
{ 12 , box .NULL , ' Ivan' , ' Ivanov' , 20 , ' Moscow' },
191
198
},
192
199
op = ' replace' ,
193
200
},
194
- replace_object = {
201
+ {
202
+ name = ' replace_object' ,
195
203
func = ' crud.replace_object' ,
196
204
args = {
197
205
space_name ,
198
206
{ id = 12 , name = ' Ivan' , last_name = ' Ivanov' , age = 20 , city = ' Moscow' },
199
207
},
200
208
op = ' replace' ,
201
209
},
202
- update = {
210
+ {
211
+ name = ' update' ,
203
212
prepare = function (g )
204
213
helpers .insert_objects (g , space_name , {{
205
214
id = 15 , name = ' Ivan' , last_name = ' Ivanov' ,
@@ -210,7 +219,8 @@ local simple_operation_cases = {
210
219
args = { space_name , 12 , {{' +' , ' age' , 10 }} },
211
220
op = ' update' ,
212
221
},
213
- upsert = {
222
+ {
223
+ name = ' upsert' ,
214
224
func = ' crud.upsert' ,
215
225
args = {
216
226
space_name ,
@@ -219,7 +229,8 @@ local simple_operation_cases = {
219
229
},
220
230
op = ' upsert' ,
221
231
},
222
- upsert_object = {
232
+ {
233
+ name = ' upsert_object' ,
223
234
func = ' crud.upsert_object' ,
224
235
args = {
225
236
space_name ,
@@ -228,116 +239,136 @@ local simple_operation_cases = {
228
239
},
229
240
op = ' upsert' ,
230
241
},
231
- delete = {
242
+ {
243
+ name = ' delete' ,
232
244
func = ' crud.delete' ,
233
245
args = { space_name , { 12 } },
234
246
op = ' delete' ,
235
247
},
236
- truncate = {
248
+ {
249
+ name = ' truncate' ,
237
250
func = ' crud.truncate' ,
238
251
args = { space_name },
239
252
op = ' truncate' ,
240
253
},
241
- len = {
254
+ {
255
+ name = ' len' ,
242
256
func = ' crud.len' ,
243
257
args = { space_name },
244
258
op = ' len' ,
245
259
},
246
- count = {
260
+ {
261
+ name = ' count' ,
247
262
func = ' crud.count' ,
248
263
args = { space_name , {{ ' ==' , ' id_index' , 3 }} },
249
264
op = ' count' ,
250
265
},
251
- min = {
266
+ {
267
+ name = ' min' ,
252
268
func = ' crud.min' ,
253
269
args = { space_name },
254
270
op = ' borders' ,
255
271
},
256
- max = {
272
+ {
273
+ name = ' max' ,
257
274
func = ' crud.max' ,
258
275
args = { space_name },
259
276
op = ' borders' ,
260
277
},
261
- insert_error = {
278
+ {
279
+ name = ' insert_error' ,
262
280
func = ' crud.insert' ,
263
281
args = { space_name , { ' id' } },
264
282
op = ' insert' ,
265
283
expect_error = true ,
266
284
},
267
- insert_object_error = {
285
+ {
286
+ name = ' insert_object_error' ,
268
287
func = ' crud.insert_object' ,
269
288
args = { space_name , { ' id' } },
270
289
op = ' insert' ,
271
290
expect_error = true ,
272
291
},
273
- get_error = {
292
+ {
293
+ name = ' get_error' ,
274
294
func = ' crud.get' ,
275
295
args = { space_name , { ' id' } },
276
296
op = ' get' ,
277
297
expect_error = true ,
278
298
},
279
- select_error = {
299
+ {
300
+ name = ' select_error' ,
280
301
func = ' crud.select' ,
281
302
args = { space_name , {{ ' ==' , ' id_index' , ' sdf' }} },
282
303
op = ' select' ,
283
304
expect_error = true ,
284
305
},
285
- pairs_error = {
306
+ {
307
+ name = ' pairs_error' ,
286
308
eval = eval .pairs ,
287
309
args = { space_name , {{ ' %=' , ' id_index' , ' sdf' }} },
288
310
op = ' select' ,
289
311
expect_error = true ,
290
312
pcall = true ,
291
313
},
292
- replace_error = {
314
+ {
315
+ name = ' replace_error' ,
293
316
func = ' crud.replace' ,
294
317
args = { space_name , { ' id' } },
295
318
op = ' replace' ,
296
319
expect_error = true ,
297
320
},
298
- replace_object_error = {
321
+ {
322
+ name = ' replace_object_error' ,
299
323
func = ' crud.replace_object' ,
300
324
args = { space_name , { ' id' } },
301
325
op = ' replace' ,
302
326
expect_error = true ,
303
327
},
304
- update_error = {
328
+ {
329
+ name = ' update_error' ,
305
330
func = ' crud.update' ,
306
331
args = { space_name , { ' id' }, {{' +' , ' age' , 1 }} },
307
332
op = ' update' ,
308
333
expect_error = true ,
309
334
},
310
- upsert_error = {
335
+ {
336
+ name = ' upsert_error' ,
311
337
func = ' crud.upsert' ,
312
338
args = { space_name , { ' id' }, {{' +' , ' age' , 1 }} },
313
339
op = ' upsert' ,
314
340
expect_error = true ,
315
341
},
316
- upsert_object_error = {
342
+ {
343
+ name = ' upsert_object_error' ,
317
344
func = ' crud.upsert_object' ,
318
345
args = { space_name , { ' id' }, {{' +' , ' age' , 1 }} },
319
346
op = ' upsert' ,
320
347
expect_error = true ,
321
348
},
322
- delete_error = {
349
+ {
350
+ name = ' delete_error' ,
323
351
func = ' crud.delete' ,
324
352
args = { space_name , { ' id' } },
325
353
op = ' delete' ,
326
354
expect_error = true ,
327
355
},
328
- count_error = {
356
+ {
357
+ name = ' count_error' ,
329
358
func = ' crud.count' ,
330
359
args = { space_name , {{ ' ==' , ' id_index' , ' sdf' }} },
331
360
op = ' count' ,
332
361
expect_error = true ,
333
362
},
334
- min_error = {
363
+ {
364
+ name = ' min_error' ,
335
365
func = ' crud.min' ,
336
366
args = { space_name , ' badindex' },
337
367
op = ' borders' ,
338
368
expect_error = true ,
339
369
},
340
- max_error = {
370
+ {
371
+ name = ' max_error' ,
341
372
func = ' crud.max' ,
342
373
args = { space_name , ' badindex' },
343
374
op = ' borders' ,
@@ -371,28 +402,32 @@ local prepare_select_data = function(g)
371
402
end
372
403
373
404
local select_cases = {
374
- select_by_primary_index = {
405
+ {
406
+ name = ' select_by_primary_index' ,
375
407
func = ' crud.select' ,
376
408
conditions = {{ ' ==' , ' id_index' , 3 }},
377
409
map_reduces = 0 ,
378
410
tuples_fetched = 1 ,
379
411
tuples_lookup = 1 ,
380
412
},
381
- select_by_secondary_index = {
413
+ {
414
+ name = ' select_by_secondary_index' ,
382
415
func = ' crud.select' ,
383
416
conditions = {{ ' ==' , ' age_index' , 46 }},
384
417
map_reduces = 1 ,
385
418
tuples_fetched = 1 ,
386
419
tuples_lookup = 1 ,
387
420
},
388
- select_full_scan = {
421
+ {
422
+ name = ' select_full_scan' ,
389
423
func = ' crud.select' ,
390
424
conditions = {{ ' >' , ' id_index' , 0 }, { ' ==' , ' city' , ' Kyoto' }},
391
425
map_reduces = 1 ,
392
426
tuples_fetched = 0 ,
393
427
tuples_lookup = 4 ,
394
428
},
395
- pairs_by_primary_index = {
429
+ {
430
+ name = ' pairs_by_primary_index' ,
396
431
eval = eval .pairs ,
397
432
conditions = {{ ' ==' , ' id_index' , 3 }},
398
433
map_reduces = 0 ,
@@ -401,7 +436,8 @@ local select_cases = {
401
436
-- after_tuple scroll for second batch.
402
437
tuples_lookup = 2 ,
403
438
},
404
- pairs_by_secondary_index = {
439
+ {
440
+ name = ' pairs_by_secondary_index' ,
405
441
eval = eval .pairs ,
406
442
conditions = {{ ' ==' , ' age_index' , 46 }},
407
443
map_reduces = 1 ,
@@ -410,7 +446,8 @@ local select_cases = {
410
446
-- after_tuple scroll for second batch.
411
447
tuples_lookup = 2 ,
412
448
},
413
- pairs_full_scan = {
449
+ {
450
+ name = ' pairs_full_scan' ,
414
451
eval = eval .pairs ,
415
452
conditions = {{ ' >' , ' id_index' , 0 }, { ' ==' , ' city' , ' Kyoto' }},
416
453
map_reduces = 1 ,
461
498
462
499
-- Call some operations for existing
463
500
-- spaces and ensure statistics is updated.
464
- for name , case in pairs (simple_operation_cases ) do
465
- local test_name = (' test_%s' ):format (name )
501
+ for _ , case in pairs (simple_operation_cases ) do
502
+ local test_name = (' test_%s' ):format (case . name )
466
503
467
504
if case .prepare ~= nil then
468
505
pgroup .before_test (test_name , case .prepare )
@@ -573,8 +610,8 @@ pgroup.test_non_existing_space = function(g)
573
610
end
574
611
575
612
576
- for name , case in pairs (select_cases ) do
577
- local test_name = (' test_%s_details' ):format (name )
613
+ for _ , case in pairs (select_cases ) do
614
+ local test_name = (' test_%s_details' ):format (case . name )
578
615
579
616
pgroup .before_test (test_name , prepare_select_data )
580
617
@@ -770,8 +807,8 @@ local function validate_metrics(g, metrics)
770
807
t .assert_type (stats_sum , ' table' , ' `tnt_crud_stats` summary metrics found' )
771
808
772
809
773
- local expected_operations = { ' insert' , ' get' , ' replace' , ' update' ,
774
- ' upsert' , ' delete' , ' select' , ' truncate' , ' len' , ' count' , ' borders' }
810
+ local expected_operations = { ' insert' , ' batch_insert ' , ' get' , ' replace' , ' update' ,
811
+ ' upsert' , ' batch_upsert ' , ' delete' , ' select' , ' truncate' , ' len' , ' count' , ' borders' }
775
812
776
813
if g .params .quantiles == true then
777
814
t .assert_items_equals (get_unique_label_values (quantile_stats , ' operation' ), expected_operations ,
@@ -867,7 +904,7 @@ local function check_updated_per_call(g)
867
904
local tuples_fetched_before = find_obs (' tnt_crud_tuples_fetched' , details_labels , metrics_before )
868
905
local map_reduces_before = find_obs (' tnt_crud_map_reduces' , details_labels , metrics_before )
869
906
870
- local case = select_cases [' select_by_secondary_index ' ]
907
+ local case = select_cases [select_by_secondary_index_idx ]
871
908
local _ , err = g .router :call (case .func , { space_name , case .conditions })
872
909
t .assert_equals (err , nil )
873
910
0 commit comments