File: reader.result

package info (click to toggle)
tarantool 2.6.0-1.4
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 85,412 kB
  • sloc: ansic: 513,775; cpp: 69,493; sh: 25,650; python: 19,190; perl: 14,973; makefile: 4,178; yacc: 1,329; sql: 1,074; pascal: 620; ruby: 190; awk: 18; lisp: 7
file content (478 lines) | stat: -rw-r--r-- 30,154 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
-- test for xlog_reader module
-- consists of 3 parts:
-- 1) ok snap/xlog reader
-- 2) broken files reader (crc sum is invalid, bad header [version/type])
-- 3) before box.cfg and after box.cfg
fio  = require('fio')
---
...
fun  = require('fun')
---
...
json = require('json')
---
...
xlog = require('xlog').pairs
---
...
trun = require('test_run').new()
---
...
pattern_prefix = fio.pathjoin(os.getenv("SOURCEDIR"), "test/xlog/reader")
---
...
pattern_prefix_re = pattern_prefix:gsub("/", "\\/")
---
...
trun:cmd(("push filter '%s' to '%s'"):format(pattern_prefix_re, "<prefix>"))
---
- true
...
pattern_ok_v12 = fio.pathjoin(pattern_prefix, "v12/")
---
...
pattern_ok_v13 = fio.pathjoin(pattern_prefix, "v13/")
---
...
trun:cmd("setopt delimiter ';'")
---
- true
...
function collect_results(file)
    local val = {}
    for k, v in xlog(file) do
        table.insert(val, setmetatable(v, { __serialize = "map"}))
    end
    return val
end;
---
...
fun.iter({
    fio.pathjoin(pattern_ok_v12, '00000000000000000000.ok.snap'),
    fio.pathjoin(pattern_ok_v12, '00000000000000000000.ok.xlog'),
}):map(collect_results):totable();
---
- - - {'HEADER': {'lsn': 1, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
          'cluster', '1366b1b5-2329-46f4-9fce-a1dc4275d469']}}
    - {'HEADER': {'lsn': 2, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
          'max_id', 511]}}
    - {'HEADER': {'lsn': 3, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
          'version', 1, 6, 8]}}
    - {'HEADER': {'lsn': 4, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          272, 1, '_schema', 'memtx', 0, {}, [{'type': 'str', 'name': 'key'}]]}}
    - {'HEADER': {'lsn': 5, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          280, 1, '_space', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'engine',
              'type': 'str'}, {'name': 'field_count', 'type': 'num'}, {'name': 'flags',
              'type': 'str'}, {'name': 'format', 'type': '*'}]]}}
    - {'HEADER': {'lsn': 6, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          281, 1, '_vspace', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'engine',
              'type': 'str'}, {'name': 'field_count', 'type': 'num'}, {'name': 'flags',
              'type': 'str'}, {'name': 'format', 'type': '*'}]]}}
    - {'HEADER': {'lsn': 7, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          288, 1, '_index', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'iid',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
            {'name': 'opts', 'type': 'array'}, {'name': 'parts', 'type': 'array'}]]}}
    - {'HEADER': {'lsn': 8, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          289, 1, '_vindex', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'iid',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
            {'name': 'opts', 'type': 'array'}, {'name': 'parts', 'type': 'array'}]]}}
    - {'HEADER': {'lsn': 9, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          296, 1, '_func', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'setuid',
              'type': 'num'}]]}}
    - {'HEADER': {'lsn': 10, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          297, 1, '_vfunc', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'setuid',
              'type': 'num'}]]}}
    - {'HEADER': {'lsn': 11, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          304, 1, '_user', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
            {'name': 'auth', 'type': '*'}]]}}
    - {'HEADER': {'lsn': 12, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          305, 1, '_vuser', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
            {'name': 'auth', 'type': '*'}]]}}
    - {'HEADER': {'lsn': 13, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          312, 1, '_priv', 'memtx', 0, {}, [{'name': 'grantor', 'type': 'num'}, {
              'name': 'grantee', 'type': 'num'}, {'name': 'object_type', 'type': 'str'},
            {'name': 'object_id', 'type': 'num'}, {'name': 'privilege', 'type': 'num'}]]}}
    - {'HEADER': {'lsn': 14, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          313, 1, '_vpriv', 'sysview', 0, {}, [{'name': 'grantor', 'type': 'num'},
            {'name': 'grantee', 'type': 'num'}, {'name': 'object_type', 'type': 'str'},
            {'name': 'object_id', 'type': 'num'}, {'name': 'privilege', 'type': 'num'}]]}}
    - {'HEADER': {'lsn': 15, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          320, 1, '_cluster', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'uuid',
              'type': 'str'}]]}}
    - {'HEADER': {'lsn': 16, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          272, 0, 'primary', 'tree', {'unique': true}, [[0, 'str']]]}}
    - {'HEADER': {'lsn': 17, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          280, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
    - {'HEADER': {'lsn': 18, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          280, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
    - {'HEADER': {'lsn': 19, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          280, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
    - {'HEADER': {'lsn': 20, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          281, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
    - {'HEADER': {'lsn': 21, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          281, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
    - {'HEADER': {'lsn': 22, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          281, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
    - {'HEADER': {'lsn': 23, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          288, 0, 'primary', 'tree', {'unique': true}, [[0, 'num'], [1, 'num']]]}}
    - {'HEADER': {'lsn': 24, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          288, 2, 'name', 'tree', {'unique': true}, [[0, 'num'], [2, 'str']]]}}
    - {'HEADER': {'lsn': 25, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          289, 0, 'primary', 'tree', {'unique': true}, [[0, 'num'], [1, 'num']]]}}
    - {'HEADER': {'lsn': 26, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          289, 2, 'name', 'tree', {'unique': true}, [[0, 'num'], [2, 'str']]]}}
    - {'HEADER': {'lsn': 27, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          296, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
    - {'HEADER': {'lsn': 28, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          296, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
    - {'HEADER': {'lsn': 29, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          296, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
    - {'HEADER': {'lsn': 30, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          297, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
    - {'HEADER': {'lsn': 31, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          297, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
    - {'HEADER': {'lsn': 32, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          297, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
    - {'HEADER': {'lsn': 33, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          304, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
    - {'HEADER': {'lsn': 34, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          304, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
    - {'HEADER': {'lsn': 35, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          304, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
    - {'HEADER': {'lsn': 36, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          305, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
    - {'HEADER': {'lsn': 37, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          305, 1, 'owner', 'tree', {'unique': false}, [[1, 'num']]]}}
    - {'HEADER': {'lsn': 38, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          305, 2, 'name', 'tree', {'unique': true}, [[2, 'str']]]}}
    - {'HEADER': {'lsn': 39, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          312, 0, 'primary', 'tree', {'unique': true}, [[1, 'num'], [2, 'str'], [
              3, 'num']]]}}
    - {'HEADER': {'lsn': 40, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          312, 1, 'owner', 'tree', {'unique': false}, [[0, 'num']]]}}
    - {'HEADER': {'lsn': 41, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          312, 2, 'object', 'tree', {'unique': false}, [[2, 'str'], [3, 'num']]]}}
    - {'HEADER': {'lsn': 42, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          313, 0, 'primary', 'tree', {'unique': true}, [[1, 'num'], [2, 'str'], [
              3, 'num']]]}}
    - {'HEADER': {'lsn': 43, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          313, 1, 'owner', 'tree', {'unique': false}, [[0, 'num']]]}}
    - {'HEADER': {'lsn': 44, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          313, 2, 'object', 'tree', {'unique': false}, [[2, 'str'], [3, 'num']]]}}
    - {'HEADER': {'lsn': 45, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          320, 0, 'primary', 'tree', {'unique': true}, [[0, 'num']]]}}
    - {'HEADER': {'lsn': 46, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          320, 1, 'uuid', 'tree', {'unique': true}, [[1, 'str']]]}}
    - {'HEADER': {'lsn': 47, 'type': 'INSERT'}, 'BODY': {'space_id': 296, 'tuple': [
          1, 1, 'box.schema.user.info', 1, 'LUA']}}
    - {'HEADER': {'lsn': 48, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
          0, 1, 'guest', 'user']}}
    - {'HEADER': {'lsn': 49, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
          1, 1, 'admin', 'user']}}
    - {'HEADER': {'lsn': 50, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
          2, 1, 'public', 'role']}}
    - {'HEADER': {'lsn': 51, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
          3, 1, 'replication', 'role']}}
    - {'HEADER': {'lsn': 52, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 0, 'role', 2, 4]}}
    - {'HEADER': {'lsn': 53, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 1, 'universe', 0, 7]}}
    - {'HEADER': {'lsn': 54, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'function', 1, 4]}}
    - {'HEADER': {'lsn': 55, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 281, 1]}}
    - {'HEADER': {'lsn': 56, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 289, 1]}}
    - {'HEADER': {'lsn': 57, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 297, 1]}}
    - {'HEADER': {'lsn': 58, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 305, 1]}}
    - {'HEADER': {'lsn': 59, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 313, 1]}}
    - {'HEADER': {'lsn': 60, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 3, 'space', 320, 2]}}
    - {'HEADER': {'lsn': 61, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 3, 'universe', 0, 1]}}
    - {'HEADER': {'lsn': 62, 'type': 'INSERT'}, 'BODY': {'space_id': 320, 'tuple': [
          1, '65f1a623-9e99-47b3-92e5-0c9a63ff566c']}}
  - - {'HEADER': {'lsn': 1, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1476117049.224},
      'BODY': {'space_id': 272, 'index_base': 1, 'key': ['max_id'], 'tuple': [['+',
            2, 1]]}}
    - {'HEADER': {'lsn': 2, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1476117049.2246},
      'BODY': {'space_id': 280, 'tuple': [512, 1, 'test', 'memtx', 0, {}, []]}}
    - {'HEADER': {'lsn': 3, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1476117049.2247},
      'BODY': {'space_id': 288, 'tuple': [512, 0, 'primary', 'tree', {'unique': true},
          [[0, 'num']]]}}
    - {'HEADER': {'lsn': 4, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1476117049.2247},
      'BODY': {'space_id': 512, 'tuple': [1, 2, 3, 4]}}
    - {'HEADER': {'lsn': 5, 'replica_id': 1, 'type': 'REPLACE', 'timestamp': 1476117049.2248},
      'BODY': {'space_id': 512, 'tuple': [2, 2, 3, 4]}}
    - {'HEADER': {'lsn': 6, 'replica_id': 1, 'type': 'DELETE', 'timestamp': 1476117049.2248},
      'BODY': {'space_id': 512, 'key': [1]}}
    - {'HEADER': {'lsn': 7, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1476117049.2248},
      'BODY': {'space_id': 512, 'index_base': 1, 'key': [2], 'tuple': [['=', 3, 4]]}}
    - {'HEADER': {'lsn': 8, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1476117049.2248},
      'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
          3, 4, 5, 6]}}
    - {'HEADER': {'lsn': 9, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1476117049.2249},
      'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
          3, 4, 5, 6]}}
...
collectgarbage('collect');
---
- 0
...
fun.iter({
    fio.pathjoin(pattern_ok_v13, '00000000000000000000.ok.snap'),
    fio.pathjoin(pattern_ok_v13, '00000000000000000000.ok.xlog'),
}):map(collect_results):totable();
---
- - - {'HEADER': {'lsn': 1, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
          'cluster', '95166c09-cc9b-4b5b-96ef-9bcc3190abbb']}}
    - {'HEADER': {'lsn': 2, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
          'max_id', 511]}}
    - {'HEADER': {'lsn': 3, 'type': 'INSERT'}, 'BODY': {'space_id': 272, 'tuple': [
          'version', 1, 7, 2]}}
    - {'HEADER': {'lsn': 4, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          272, 1, '_schema', 'memtx', 0, {}, [{'type': 'str', 'name': 'key'}]]}}
    - {'HEADER': {'lsn': 5, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          280, 1, '_space', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'engine',
              'type': 'str'}, {'name': 'field_count', 'type': 'num'}, {'name': 'flags',
              'type': 'str'}, {'name': 'format', 'type': '*'}]]}}
    - {'HEADER': {'lsn': 6, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          281, 1, '_vspace', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'engine',
              'type': 'str'}, {'name': 'field_count', 'type': 'num'}, {'name': 'flags',
              'type': 'str'}, {'name': 'format', 'type': '*'}]]}}
    - {'HEADER': {'lsn': 7, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          288, 1, '_index', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'iid',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
            {'name': 'opts', 'type': 'array'}, {'name': 'parts', 'type': 'array'}]]}}
    - {'HEADER': {'lsn': 8, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          289, 1, '_vindex', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'iid',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
            {'name': 'opts', 'type': 'array'}, {'name': 'parts', 'type': 'array'}]]}}
    - {'HEADER': {'lsn': 9, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          296, 1, '_func', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'setuid',
              'type': 'num'}]]}}
    - {'HEADER': {'lsn': 10, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          297, 1, '_vfunc', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'setuid',
              'type': 'num'}]]}}
    - {'HEADER': {'lsn': 11, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          304, 1, '_user', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
            {'name': 'auth', 'type': '*'}]]}}
    - {'HEADER': {'lsn': 12, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          305, 1, '_vuser', 'sysview', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'owner',
              'type': 'num'}, {'name': 'name', 'type': 'str'}, {'name': 'type', 'type': 'str'},
            {'name': 'auth', 'type': '*'}]]}}
    - {'HEADER': {'lsn': 13, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          312, 1, '_priv', 'memtx', 0, {}, [{'name': 'grantor', 'type': 'num'}, {
              'name': 'grantee', 'type': 'num'}, {'name': 'object_type', 'type': 'str'},
            {'name': 'object_id', 'type': 'num'}, {'name': 'privilege', 'type': 'num'}]]}}
    - {'HEADER': {'lsn': 14, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          313, 1, '_vpriv', 'sysview', 0, {}, [{'name': 'grantor', 'type': 'num'},
            {'name': 'grantee', 'type': 'num'}, {'name': 'object_type', 'type': 'str'},
            {'name': 'object_id', 'type': 'num'}, {'name': 'privilege', 'type': 'num'}]]}}
    - {'HEADER': {'lsn': 15, 'type': 'INSERT'}, 'BODY': {'space_id': 280, 'tuple': [
          320, 1, '_cluster', 'memtx', 0, {}, [{'name': 'id', 'type': 'num'}, {'name': 'uuid',
              'type': 'str'}]]}}
    - {'HEADER': {'lsn': 16, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          272, 0, 'primary', 'tree', {'unique': true}, [[0, 'string']]]}}
    - {'HEADER': {'lsn': 17, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          280, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 18, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          280, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
    - {'HEADER': {'lsn': 19, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          280, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
    - {'HEADER': {'lsn': 20, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          281, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 21, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          281, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
    - {'HEADER': {'lsn': 22, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          281, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
    - {'HEADER': {'lsn': 23, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          288, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned'], [1, 'unsigned']]]}}
    - {'HEADER': {'lsn': 24, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          288, 2, 'name', 'tree', {'unique': true}, [[0, 'unsigned'], [2, 'string']]]}}
    - {'HEADER': {'lsn': 25, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          289, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned'], [1, 'unsigned']]]}}
    - {'HEADER': {'lsn': 26, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          289, 2, 'name', 'tree', {'unique': true}, [[0, 'unsigned'], [2, 'string']]]}}
    - {'HEADER': {'lsn': 27, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          296, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 28, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          296, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
    - {'HEADER': {'lsn': 29, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          296, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
    - {'HEADER': {'lsn': 30, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          297, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 31, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          297, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
    - {'HEADER': {'lsn': 32, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          297, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
    - {'HEADER': {'lsn': 33, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          304, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 34, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          304, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
    - {'HEADER': {'lsn': 35, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          304, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
    - {'HEADER': {'lsn': 36, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          305, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 37, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          305, 1, 'owner', 'tree', {'unique': false}, [[1, 'unsigned']]]}}
    - {'HEADER': {'lsn': 38, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          305, 2, 'name', 'tree', {'unique': true}, [[2, 'string']]]}}
    - {'HEADER': {'lsn': 39, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          312, 0, 'primary', 'tree', {'unique': true}, [[1, 'unsigned'], [2, 'string'],
            [3, 'unsigned']]]}}
    - {'HEADER': {'lsn': 40, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          312, 1, 'owner', 'tree', {'unique': false}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 41, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          312, 2, 'object', 'tree', {'unique': false}, [[2, 'string'], [3, 'unsigned']]]}}
    - {'HEADER': {'lsn': 42, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          313, 0, 'primary', 'tree', {'unique': true}, [[1, 'unsigned'], [2, 'string'],
            [3, 'unsigned']]]}}
    - {'HEADER': {'lsn': 43, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          313, 1, 'owner', 'tree', {'unique': false}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 44, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          313, 2, 'object', 'tree', {'unique': false}, [[2, 'string'], [3, 'unsigned']]]}}
    - {'HEADER': {'lsn': 45, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          320, 0, 'primary', 'tree', {'unique': true}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 46, 'type': 'INSERT'}, 'BODY': {'space_id': 288, 'tuple': [
          320, 1, 'uuid', 'tree', {'unique': true}, [[1, 'string']]]}}
    - {'HEADER': {'lsn': 47, 'type': 'INSERT'}, 'BODY': {'space_id': 296, 'tuple': [
          1, 1, 'box.schema.user.info', 1, 'LUA']}}
    - {'HEADER': {'lsn': 48, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
          0, 1, 'guest', 'user', {'chap-sha1': 'vhvewKp0tNyweZQ+cFKAlsyphfg='}]}}
    - {'HEADER': {'lsn': 49, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
          1, 1, 'admin', 'user']}}
    - {'HEADER': {'lsn': 50, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
          2, 1, 'public', 'role']}}
    - {'HEADER': {'lsn': 51, 'type': 'INSERT'}, 'BODY': {'space_id': 304, 'tuple': [
          3, 1, 'replication', 'role']}}
    - {'HEADER': {'lsn': 52, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 0, 'role', 2, 4]}}
    - {'HEADER': {'lsn': 53, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 1, 'universe', 0, 7]}}
    - {'HEADER': {'lsn': 54, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'function', 1, 4]}}
    - {'HEADER': {'lsn': 55, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 281, 1]}}
    - {'HEADER': {'lsn': 56, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 289, 1]}}
    - {'HEADER': {'lsn': 57, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 297, 1]}}
    - {'HEADER': {'lsn': 58, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 305, 1]}}
    - {'HEADER': {'lsn': 59, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 2, 'space', 313, 1]}}
    - {'HEADER': {'lsn': 60, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 3, 'space', 320, 2]}}
    - {'HEADER': {'lsn': 61, 'type': 'INSERT'}, 'BODY': {'space_id': 312, 'tuple': [
          1, 3, 'universe', 0, 1]}}
    - {'HEADER': {'lsn': 62, 'type': 'INSERT'}, 'BODY': {'space_id': 320, 'tuple': [
          1, '3083fa40-34fa-48da-8438-cf5d47f43f0a']}}
  - - {'HEADER': {'lsn': 1, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1475796386.2266},
      'BODY': {'space_id': 272, 'index_base': 1, 'key': ['max_id'], 'tuple': [['+',
            2, 1]]}}
    - {'HEADER': {'lsn': 2, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796386.2291},
      'BODY': {'space_id': 280, 'tuple': [512, 1, 'test', 'memtx', 0, {}, []]}}
    - {'HEADER': {'lsn': 3, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796409.4258},
      'BODY': {'space_id': 288, 'tuple': [512, 0, 'primary', 'tree', {'unique': true,
            'lsn': 2}, [[0, 'unsigned']]]}}
    - {'HEADER': {'lsn': 4, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796454.2693},
      'BODY': {'space_id': 512, 'tuple': [1, 2, 3, 4]}}
    - {'HEADER': {'lsn': 5, 'replica_id': 1, 'type': 'REPLACE', 'timestamp': 1475796459.9428},
      'BODY': {'space_id': 512, 'tuple': [2, 2, 3, 4]}}
    - {'HEADER': {'lsn': 6, 'replica_id': 1, 'type': 'DELETE', 'timestamp': 1475796470.6977},
      'BODY': {'space_id': 512, 'key': [1]}}
    - {'HEADER': {'lsn': 7, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1475796500.8061},
      'BODY': {'space_id': 512, 'index_base': 1, 'key': [2], 'tuple': [['=', 3, 4]]}}
    - {'HEADER': {'lsn': 8, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1475796514.5016},
      'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
          3, 4, 5, 6]}}
    - {'HEADER': {'lsn': 9, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1475796515.7168},
      'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
          3, 4, 5, 6]}}
...
collectgarbage('collect');
---
- 0
...
check_error = function(name, err)
    local path = fio.pathjoin(pattern_prefix, name)
    local stat, oerr = pcall(collect_results, path)
    if stat == true or not string.find(tostring(oerr), err) then
        return false, oerr
    end
    return true
end;
---
...
trun:cmd("setopt delimiter ''");
---
- true
...
check_error("version.bad.xlog", "file format version")
---
- true
...
check_error("format.bad.xlog", "not support 'SNOP' file type")
---
- true
...
collect_results(fio.pathjoin(pattern_prefix, "crc.bad.xlog"))
---
- - {'HEADER': {'lsn': 1, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1475796386.2266},
    'BODY': {'space_id': 272, 'index_base': 1, 'key': ['max_id'], 'tuple': [['+',
          2, 1]]}}
  - {'HEADER': {'lsn': 2, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796386.2291},
    'BODY': {'space_id': 280, 'tuple': [512, 1, 'test', 'memtx', 0, {}, []]}}
  - {'HEADER': {'lsn': 3, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796409.4258},
    'BODY': {'space_id': 288, 'tuple': [512, 0, 'primary', 'tree', {'unique': true,
          'lsn': 2}, [[0, 'unsigned']]]}}
  - {'HEADER': {'lsn': 4, 'replica_id': 1, 'type': 'INSERT', 'timestamp': 1475796454.2693},
    'BODY': {'space_id': 512, 'tuple': [1, 2, 3, 4]}}
  - {'HEADER': {'lsn': 6, 'replica_id': 1, 'type': 'DELETE', 'timestamp': 1475796470.6977},
    'BODY': {'space_id': 512, 'key': [1]}}
  - {'HEADER': {'lsn': 7, 'replica_id': 1, 'type': 'UPDATE', 'timestamp': 1475796500.8061},
    'BODY': {'space_id': 512, 'index_base': 1, 'key': [2], 'tuple': [['=', 3, 4]]}}
  - {'HEADER': {'lsn': 8, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1475796514.5016},
    'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
        3, 4, 5, 6]}}
  - {'HEADER': {'lsn': 9, 'replica_id': 1, 'type': 'UPSERT', 'timestamp': 1475796515.7168},
    'BODY': {'space_id': 512, 'operations': [['=', 3, 4]], 'index_base': 1, 'tuple': [
        3, 4, 5, 6]}}
...
collect_results(fio.pathjoin(pattern_prefix, "eof.bad.xlog"))
---
- - {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [0, {0: 8, 7: [[0, 'unsigned']],
          6: 513}]}}
  - {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [10, {0: 8, 9: 12}]}}
  - {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [5, {0: 8, 2: 1, 9: 12}]}}
  - {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [2, {0: 8}]}}
  - {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [8, {2: 1, 8: 2}]}}
  - {'HEADER': {'type': 'INSERT'}, 'BODY': {'tuple': [11, {}]}}
  - {'HEADER': {'timestamp': 1495526288.1972, 'type': 'INSERT'}, 'BODY': {'tuple': [
        4, {0: 8, 2: 3}]}}
  - {'HEADER': {'timestamp': 1495526288.2103, 'type': 'INSERT'}, 'BODY': {'tuple': [
        5, {0: 8, 2: 3, 9: 24}]}}
  - {'HEADER': {'timestamp': 1495526288.2103, 'type': 'INSERT'}, 'BODY': {'tuple': [
        8, {2: 3, 8: 4}]}}
  - {'HEADER': {'timestamp': 1495526288.2103, 'type': 'INSERT'}, 'BODY': {'tuple': [
        10, {0: 8, 9: 24}]}}
...
trun:cmd('clear filter')
---
- true
...