~ubuntu-branches/ubuntu/saucy/drizzle/saucy-proposed

« back to all changes in this revision

Viewing changes to .pc/debian-changes-2010.12.06-0ubuntu4/plugin/transaction_log/tests/r/transaction_log_data_type.result

  • Committer: Bazaar Package Importer
  • Author(s): Monty Taylor
  • Date: 2011-01-04 09:31:58 UTC
  • mfrom: (1.2.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20110104093158-smhgvkfdi2y9au3i
Tags: 2011.01.07-0ubuntu1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
DROP TABLE IF EXISTS t1;
2
 
++ Begin INT tests ++ 
3
 
DROP TABLE IF EXISTS t1;
4
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b INT, PRIMARY KEY(a));
5
 
Testing MIN INT
6
 
INSERT INTO t1 (b) VALUES(-2147483648);
7
 
Check transaction_log_entries
8
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
9
 
COUNT(*)
10
 
4
11
 
 
12
 
Check transaction_log_transactions
13
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
14
 
COUNT(*)
15
 
4
16
 
Check transaction log contents
17
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
18
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
19
 
transaction_context {
20
 
  server_id: 1
21
 
  TRANSACTION_ID
22
 
  START_TIMESTAMP
23
 
  END_TIMESTAMP
24
 
}
25
 
statement {
26
 
  type: INSERT
27
 
  START_TIMESTAMP
28
 
  END_TIMESTAMP
29
 
  insert_header {
30
 
    table_metadata {
31
 
      schema_name: "test"
32
 
      table_name: "t1"
33
 
    }
34
 
    field_metadata {
35
 
      type: INTEGER
36
 
      name: "a"
37
 
    }
38
 
    field_metadata {
39
 
      type: INTEGER
40
 
      name: "b"
41
 
    }
42
 
  }
43
 
  insert_data {
44
 
    segment_id: 1
45
 
    end_segment: true
46
 
    record {
47
 
      insert_value: "1"
48
 
      insert_value: "-2147483648"
49
 
      is_null: false
50
 
      is_null: false
51
 
    }
52
 
  }
53
 
}
54
 
 
55
 
 
56
 
 
57
 
Testing MAX INT
58
 
INSERT INTO t1 (b) VALUES(2147483647);
59
 
Check transaction_log_entries
60
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
61
 
COUNT(*)
62
 
5
63
 
 
64
 
Check transaction_log_transactions
65
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
66
 
COUNT(*)
67
 
5
68
 
Check transaction log contents
69
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
70
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
71
 
transaction_context {
72
 
  server_id: 1
73
 
  TRANSACTION_ID
74
 
  START_TIMESTAMP
75
 
  END_TIMESTAMP
76
 
}
77
 
statement {
78
 
  type: INSERT
79
 
  START_TIMESTAMP
80
 
  END_TIMESTAMP
81
 
  insert_header {
82
 
    table_metadata {
83
 
      schema_name: "test"
84
 
      table_name: "t1"
85
 
    }
86
 
    field_metadata {
87
 
      type: INTEGER
88
 
      name: "a"
89
 
    }
90
 
    field_metadata {
91
 
      type: INTEGER
92
 
      name: "b"
93
 
    }
94
 
  }
95
 
  insert_data {
96
 
    segment_id: 1
97
 
    end_segment: true
98
 
    record {
99
 
      insert_value: "2"
100
 
      insert_value: "2147483647"
101
 
      is_null: false
102
 
      is_null: false
103
 
    }
104
 
  }
105
 
}
106
 
 
107
 
 
108
 
 
109
 
Testing MIN-1 INT
110
 
INSERT INTO t1 (b) VALUES(-2147483649);
111
 
ERROR 22003: Out of range value for column 'b' at row 1
112
 
Check transaction_log_entries
113
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
114
 
COUNT(*)
115
 
5
116
 
 
117
 
Check transaction_log_transactions
118
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
119
 
COUNT(*)
120
 
5
121
 
Check transaction log contents
122
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
123
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
124
 
transaction_context {
125
 
  server_id: 1
126
 
  TRANSACTION_ID
127
 
  START_TIMESTAMP
128
 
  END_TIMESTAMP
129
 
}
130
 
statement {
131
 
  type: INSERT
132
 
  START_TIMESTAMP
133
 
  END_TIMESTAMP
134
 
  insert_header {
135
 
    table_metadata {
136
 
      schema_name: "test"
137
 
      table_name: "t1"
138
 
    }
139
 
    field_metadata {
140
 
      type: INTEGER
141
 
      name: "a"
142
 
    }
143
 
    field_metadata {
144
 
      type: INTEGER
145
 
      name: "b"
146
 
    }
147
 
  }
148
 
  insert_data {
149
 
    segment_id: 1
150
 
    end_segment: true
151
 
    record {
152
 
      insert_value: "2"
153
 
      insert_value: "2147483647"
154
 
      is_null: false
155
 
      is_null: false
156
 
    }
157
 
  }
158
 
}
159
 
 
160
 
 
161
 
 
162
 
Testing MAX+1 INT
163
 
INSERT INTO t1 (b) VALUES(2147483648);
164
 
ERROR 22003: Out of range value for column 'b' at row 1
165
 
Check transaction_log_entries
166
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
167
 
COUNT(*)
168
 
5
169
 
 
170
 
Check transaction_log_transactions
171
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
172
 
COUNT(*)
173
 
5
174
 
Check transaction log contents
175
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
176
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
177
 
transaction_context {
178
 
  server_id: 1
179
 
  TRANSACTION_ID
180
 
  START_TIMESTAMP
181
 
  END_TIMESTAMP
182
 
}
183
 
statement {
184
 
  type: INSERT
185
 
  START_TIMESTAMP
186
 
  END_TIMESTAMP
187
 
  insert_header {
188
 
    table_metadata {
189
 
      schema_name: "test"
190
 
      table_name: "t1"
191
 
    }
192
 
    field_metadata {
193
 
      type: INTEGER
194
 
      name: "a"
195
 
    }
196
 
    field_metadata {
197
 
      type: INTEGER
198
 
      name: "b"
199
 
    }
200
 
  }
201
 
  insert_data {
202
 
    segment_id: 1
203
 
    end_segment: true
204
 
    record {
205
 
      insert_value: "2"
206
 
      insert_value: "2147483647"
207
 
      is_null: false
208
 
      is_null: false
209
 
    }
210
 
  }
211
 
}
212
 
 
213
 
 
214
 
 
215
 
Testing NULL INT
216
 
INSERT INTO t1 (b) VALUES(NULL);
217
 
Check transaction_log_entries
218
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
219
 
COUNT(*)
220
 
6
221
 
 
222
 
Check transaction_log_transactions
223
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
224
 
COUNT(*)
225
 
6
226
 
Check transaction log contents
227
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
228
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
229
 
transaction_context {
230
 
  server_id: 1
231
 
  TRANSACTION_ID
232
 
  START_TIMESTAMP
233
 
  END_TIMESTAMP
234
 
}
235
 
statement {
236
 
  type: INSERT
237
 
  START_TIMESTAMP
238
 
  END_TIMESTAMP
239
 
  insert_header {
240
 
    table_metadata {
241
 
      schema_name: "test"
242
 
      table_name: "t1"
243
 
    }
244
 
    field_metadata {
245
 
      type: INTEGER
246
 
      name: "a"
247
 
    }
248
 
    field_metadata {
249
 
      type: INTEGER
250
 
      name: "b"
251
 
    }
252
 
  }
253
 
  insert_data {
254
 
    segment_id: 1
255
 
    end_segment: true
256
 
    record {
257
 
      insert_value: "3"
258
 
      insert_value: ""
259
 
      is_null: false
260
 
      is_null: true
261
 
    }
262
 
  }
263
 
}
264
 
 
265
 
 
266
 
 
267
 
Testing BAD INPUT INT1
268
 
INSERT INTO t1 (b) VALUES('abbazabba');
269
 
ERROR HY000: Incorrect integer value: 'abbazabba' for column 'b' at row 1
270
 
Check transaction_log_entries
271
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
272
 
COUNT(*)
273
 
6
274
 
 
275
 
Check transaction_log_transactions
276
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
277
 
COUNT(*)
278
 
6
279
 
Check transaction log contents
280
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
281
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
282
 
transaction_context {
283
 
  server_id: 1
284
 
  TRANSACTION_ID
285
 
  START_TIMESTAMP
286
 
  END_TIMESTAMP
287
 
}
288
 
statement {
289
 
  type: INSERT
290
 
  START_TIMESTAMP
291
 
  END_TIMESTAMP
292
 
  insert_header {
293
 
    table_metadata {
294
 
      schema_name: "test"
295
 
      table_name: "t1"
296
 
    }
297
 
    field_metadata {
298
 
      type: INTEGER
299
 
      name: "a"
300
 
    }
301
 
    field_metadata {
302
 
      type: INTEGER
303
 
      name: "b"
304
 
    }
305
 
  }
306
 
  insert_data {
307
 
    segment_id: 1
308
 
    end_segment: true
309
 
    record {
310
 
      insert_value: "3"
311
 
      insert_value: ""
312
 
      is_null: false
313
 
      is_null: true
314
 
    }
315
 
  }
316
 
}
317
 
 
318
 
 
319
 
 
320
 
Testing BAD INPUT INT2
321
 
INSERT INTO t1 (b) VALUES('a');
322
 
ERROR HY000: Incorrect integer value: 'a' for column 'b' at row 1
323
 
Check transaction_log_entries
324
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
325
 
COUNT(*)
326
 
6
327
 
 
328
 
Check transaction_log_transactions
329
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
330
 
COUNT(*)
331
 
6
332
 
Check transaction log contents
333
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
334
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
335
 
transaction_context {
336
 
  server_id: 1
337
 
  TRANSACTION_ID
338
 
  START_TIMESTAMP
339
 
  END_TIMESTAMP
340
 
}
341
 
statement {
342
 
  type: INSERT
343
 
  START_TIMESTAMP
344
 
  END_TIMESTAMP
345
 
  insert_header {
346
 
    table_metadata {
347
 
      schema_name: "test"
348
 
      table_name: "t1"
349
 
    }
350
 
    field_metadata {
351
 
      type: INTEGER
352
 
      name: "a"
353
 
    }
354
 
    field_metadata {
355
 
      type: INTEGER
356
 
      name: "b"
357
 
    }
358
 
  }
359
 
  insert_data {
360
 
    segment_id: 1
361
 
    end_segment: true
362
 
    record {
363
 
      insert_value: "3"
364
 
      insert_value: ""
365
 
      is_null: false
366
 
      is_null: true
367
 
    }
368
 
  }
369
 
}
370
 
 
371
 
 
372
 
 
373
 
Testing MULTI_INSERT INT
374
 
INSERT INTO t1 (b) VALUES(1),(1),(2),(3),(5);
375
 
Check transaction_log_entries
376
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
377
 
COUNT(*)
378
 
7
379
 
 
380
 
Check transaction_log_transactions
381
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
382
 
COUNT(*)
383
 
7
384
 
Check transaction log contents
385
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
386
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
387
 
transaction_context {
388
 
  server_id: 1
389
 
  TRANSACTION_ID
390
 
  START_TIMESTAMP
391
 
  END_TIMESTAMP
392
 
}
393
 
statement {
394
 
  type: INSERT
395
 
  START_TIMESTAMP
396
 
  END_TIMESTAMP
397
 
  insert_header {
398
 
    table_metadata {
399
 
      schema_name: "test"
400
 
      table_name: "t1"
401
 
    }
402
 
    field_metadata {
403
 
      type: INTEGER
404
 
      name: "a"
405
 
    }
406
 
    field_metadata {
407
 
      type: INTEGER
408
 
      name: "b"
409
 
    }
410
 
  }
411
 
  insert_data {
412
 
    segment_id: 1
413
 
    end_segment: true
414
 
    record {
415
 
      insert_value: "4"
416
 
      insert_value: "1"
417
 
      is_null: false
418
 
      is_null: false
419
 
    }
420
 
    record {
421
 
      insert_value: "5"
422
 
      insert_value: "1"
423
 
      is_null: false
424
 
      is_null: false
425
 
    }
426
 
    record {
427
 
      insert_value: "6"
428
 
      insert_value: "2"
429
 
      is_null: false
430
 
      is_null: false
431
 
    }
432
 
    record {
433
 
      insert_value: "7"
434
 
      insert_value: "3"
435
 
      is_null: false
436
 
      is_null: false
437
 
    }
438
 
    record {
439
 
      insert_value: "8"
440
 
      insert_value: "5"
441
 
      is_null: false
442
 
      is_null: false
443
 
    }
444
 
  }
445
 
}
446
 
 
447
 
 
448
 
 
449
 
DROP TABLE t1;
450
 
SET GLOBAL transaction_log_truncate_debug= true;
451
 
++ End INT tests ++
452
 
++ Begin BIGINT tests ++
453
 
DROP TABLE IF EXISTS t1;
454
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b BIGINT, PRIMARY KEY(a));
455
 
Testing MIN BIGINT
456
 
INSERT INTO t1 (b) VALUES(-9223372036854775808);
457
 
Check transaction_log_entries
458
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
459
 
COUNT(*)
460
 
3
461
 
 
462
 
Check transaction_log_transactions
463
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
464
 
COUNT(*)
465
 
3
466
 
Check transaction log contents
467
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
468
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
469
 
transaction_context {
470
 
  server_id: 1
471
 
  TRANSACTION_ID
472
 
  START_TIMESTAMP
473
 
  END_TIMESTAMP
474
 
}
475
 
statement {
476
 
  type: INSERT
477
 
  START_TIMESTAMP
478
 
  END_TIMESTAMP
479
 
  insert_header {
480
 
    table_metadata {
481
 
      schema_name: "test"
482
 
      table_name: "t1"
483
 
    }
484
 
    field_metadata {
485
 
      type: INTEGER
486
 
      name: "a"
487
 
    }
488
 
    field_metadata {
489
 
      type: BIGINT
490
 
      name: "b"
491
 
    }
492
 
  }
493
 
  insert_data {
494
 
    segment_id: 1
495
 
    end_segment: true
496
 
    record {
497
 
      insert_value: "1"
498
 
      insert_value: "-9223372036854775808"
499
 
      is_null: false
500
 
      is_null: false
501
 
    }
502
 
  }
503
 
}
504
 
 
505
 
 
506
 
 
507
 
Testing MAX BIGINT
508
 
INSERT INTO t1 (b) VALUES(9223372036854775807);
509
 
Check transaction_log_entries
510
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
511
 
COUNT(*)
512
 
4
513
 
 
514
 
Check transaction_log_transactions
515
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
516
 
COUNT(*)
517
 
4
518
 
Check transaction log contents
519
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
520
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
521
 
transaction_context {
522
 
  server_id: 1
523
 
  TRANSACTION_ID
524
 
  START_TIMESTAMP
525
 
  END_TIMESTAMP
526
 
}
527
 
statement {
528
 
  type: INSERT
529
 
  START_TIMESTAMP
530
 
  END_TIMESTAMP
531
 
  insert_header {
532
 
    table_metadata {
533
 
      schema_name: "test"
534
 
      table_name: "t1"
535
 
    }
536
 
    field_metadata {
537
 
      type: INTEGER
538
 
      name: "a"
539
 
    }
540
 
    field_metadata {
541
 
      type: BIGINT
542
 
      name: "b"
543
 
    }
544
 
  }
545
 
  insert_data {
546
 
    segment_id: 1
547
 
    end_segment: true
548
 
    record {
549
 
      insert_value: "2"
550
 
      insert_value: "9223372036854775807"
551
 
      is_null: false
552
 
      is_null: false
553
 
    }
554
 
  }
555
 
}
556
 
 
557
 
 
558
 
 
559
 
Testing MIN-1 BIGINT
560
 
INSERT INTO t1 (b) VALUES(-9223372036854775809);
561
 
ERROR 22003: Out of range value for column 'b' at row 1
562
 
Check transaction_log_entries
563
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
564
 
COUNT(*)
565
 
4
566
 
 
567
 
Check transaction_log_transactions
568
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
569
 
COUNT(*)
570
 
4
571
 
Check transaction log contents
572
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
573
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
574
 
transaction_context {
575
 
  server_id: 1
576
 
  TRANSACTION_ID
577
 
  START_TIMESTAMP
578
 
  END_TIMESTAMP
579
 
}
580
 
statement {
581
 
  type: INSERT
582
 
  START_TIMESTAMP
583
 
  END_TIMESTAMP
584
 
  insert_header {
585
 
    table_metadata {
586
 
      schema_name: "test"
587
 
      table_name: "t1"
588
 
    }
589
 
    field_metadata {
590
 
      type: INTEGER
591
 
      name: "a"
592
 
    }
593
 
    field_metadata {
594
 
      type: BIGINT
595
 
      name: "b"
596
 
    }
597
 
  }
598
 
  insert_data {
599
 
    segment_id: 1
600
 
    end_segment: true
601
 
    record {
602
 
      insert_value: "2"
603
 
      insert_value: "9223372036854775807"
604
 
      is_null: false
605
 
      is_null: false
606
 
    }
607
 
  }
608
 
}
609
 
 
610
 
 
611
 
 
612
 
Testing MAX+1 BIGINT
613
 
NOTE: Bug#316221 - 2**63 incorrectly inserted into bigint
614
 
INSERT INTO t1 (b) VALUES(9223372036854775808);
615
 
ERROR 22003: Out of range value for column 'b' at row 1
616
 
Check transaction_log_entries
617
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
618
 
COUNT(*)
619
 
4
620
 
 
621
 
Check transaction_log_transactions
622
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
623
 
COUNT(*)
624
 
4
625
 
Check transaction log contents
626
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
627
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
628
 
transaction_context {
629
 
  server_id: 1
630
 
  TRANSACTION_ID
631
 
  START_TIMESTAMP
632
 
  END_TIMESTAMP
633
 
}
634
 
statement {
635
 
  type: INSERT
636
 
  START_TIMESTAMP
637
 
  END_TIMESTAMP
638
 
  insert_header {
639
 
    table_metadata {
640
 
      schema_name: "test"
641
 
      table_name: "t1"
642
 
    }
643
 
    field_metadata {
644
 
      type: INTEGER
645
 
      name: "a"
646
 
    }
647
 
    field_metadata {
648
 
      type: BIGINT
649
 
      name: "b"
650
 
    }
651
 
  }
652
 
  insert_data {
653
 
    segment_id: 1
654
 
    end_segment: true
655
 
    record {
656
 
      insert_value: "2"
657
 
      insert_value: "9223372036854775807"
658
 
      is_null: false
659
 
      is_null: false
660
 
    }
661
 
  }
662
 
}
663
 
 
664
 
 
665
 
 
666
 
Testing NULL BIGINT
667
 
INSERT INTO t1 (b) VALUES(NULL);
668
 
Check transaction_log_entries
669
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
670
 
COUNT(*)
671
 
5
672
 
 
673
 
Check transaction_log_transactions
674
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
675
 
COUNT(*)
676
 
5
677
 
Check transaction log contents
678
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
679
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
680
 
transaction_context {
681
 
  server_id: 1
682
 
  TRANSACTION_ID
683
 
  START_TIMESTAMP
684
 
  END_TIMESTAMP
685
 
}
686
 
statement {
687
 
  type: INSERT
688
 
  START_TIMESTAMP
689
 
  END_TIMESTAMP
690
 
  insert_header {
691
 
    table_metadata {
692
 
      schema_name: "test"
693
 
      table_name: "t1"
694
 
    }
695
 
    field_metadata {
696
 
      type: INTEGER
697
 
      name: "a"
698
 
    }
699
 
    field_metadata {
700
 
      type: BIGINT
701
 
      name: "b"
702
 
    }
703
 
  }
704
 
  insert_data {
705
 
    segment_id: 1
706
 
    end_segment: true
707
 
    record {
708
 
      insert_value: "3"
709
 
      insert_value: ""
710
 
      is_null: false
711
 
      is_null: true
712
 
    }
713
 
  }
714
 
}
715
 
 
716
 
 
717
 
 
718
 
Testing BAD INPUT BIGINT1
719
 
INSERT INTO t1 (b) VALUES('abbazabba');
720
 
ERROR HY000: Incorrect integer value: 'abbazabba' for column 'b' at row 1
721
 
Check transaction_log_entries
722
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
723
 
COUNT(*)
724
 
5
725
 
 
726
 
Check transaction_log_transactions
727
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
728
 
COUNT(*)
729
 
5
730
 
Check transaction log contents
731
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
732
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
733
 
transaction_context {
734
 
  server_id: 1
735
 
  TRANSACTION_ID
736
 
  START_TIMESTAMP
737
 
  END_TIMESTAMP
738
 
}
739
 
statement {
740
 
  type: INSERT
741
 
  START_TIMESTAMP
742
 
  END_TIMESTAMP
743
 
  insert_header {
744
 
    table_metadata {
745
 
      schema_name: "test"
746
 
      table_name: "t1"
747
 
    }
748
 
    field_metadata {
749
 
      type: INTEGER
750
 
      name: "a"
751
 
    }
752
 
    field_metadata {
753
 
      type: BIGINT
754
 
      name: "b"
755
 
    }
756
 
  }
757
 
  insert_data {
758
 
    segment_id: 1
759
 
    end_segment: true
760
 
    record {
761
 
      insert_value: "3"
762
 
      insert_value: ""
763
 
      is_null: false
764
 
      is_null: true
765
 
    }
766
 
  }
767
 
}
768
 
 
769
 
 
770
 
 
771
 
Testing BAD INPUT BIGINT2
772
 
INSERT INTO t1 (b) VALUES('a');
773
 
ERROR HY000: Incorrect integer value: 'a' for column 'b' at row 1
774
 
Check transaction_log_entries
775
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
776
 
COUNT(*)
777
 
5
778
 
 
779
 
Check transaction_log_transactions
780
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
781
 
COUNT(*)
782
 
5
783
 
Check transaction log contents
784
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
785
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
786
 
transaction_context {
787
 
  server_id: 1
788
 
  TRANSACTION_ID
789
 
  START_TIMESTAMP
790
 
  END_TIMESTAMP
791
 
}
792
 
statement {
793
 
  type: INSERT
794
 
  START_TIMESTAMP
795
 
  END_TIMESTAMP
796
 
  insert_header {
797
 
    table_metadata {
798
 
      schema_name: "test"
799
 
      table_name: "t1"
800
 
    }
801
 
    field_metadata {
802
 
      type: INTEGER
803
 
      name: "a"
804
 
    }
805
 
    field_metadata {
806
 
      type: BIGINT
807
 
      name: "b"
808
 
    }
809
 
  }
810
 
  insert_data {
811
 
    segment_id: 1
812
 
    end_segment: true
813
 
    record {
814
 
      insert_value: "3"
815
 
      insert_value: ""
816
 
      is_null: false
817
 
      is_null: true
818
 
    }
819
 
  }
820
 
}
821
 
 
822
 
 
823
 
 
824
 
DROP TABLE t1;
825
 
SET GLOBAL transaction_log_truncate_debug= true;
826
 
 
827
 
++ End BIGINT tests ++
828
 
++ Begin DECIMAL simple tests ++
829
 
DROP TABLE IF EXISTS t1;
830
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b DECIMAL(5,2), PRIMARY KEY(a));
831
 
Testing MIN DECIMAL simple 
832
 
INSERT INTO t1 (b) VALUES(-999.99);
833
 
Check transaction_log_entries
834
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
835
 
COUNT(*)
836
 
3
837
 
 
838
 
Check transaction_log_transactions
839
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
840
 
COUNT(*)
841
 
3
842
 
Check transaction log contents
843
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
844
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
845
 
transaction_context {
846
 
  server_id: 1
847
 
  TRANSACTION_ID
848
 
  START_TIMESTAMP
849
 
  END_TIMESTAMP
850
 
}
851
 
statement {
852
 
  type: INSERT
853
 
  START_TIMESTAMP
854
 
  END_TIMESTAMP
855
 
  insert_header {
856
 
    table_metadata {
857
 
      schema_name: "test"
858
 
      table_name: "t1"
859
 
    }
860
 
    field_metadata {
861
 
      type: INTEGER
862
 
      name: "a"
863
 
    }
864
 
    field_metadata {
865
 
      type: DECIMAL
866
 
      name: "b"
867
 
    }
868
 
  }
869
 
  insert_data {
870
 
    segment_id: 1
871
 
    end_segment: true
872
 
    record {
873
 
      insert_value: "1"
874
 
      insert_value: "-999.99"
875
 
      is_null: false
876
 
      is_null: false
877
 
    }
878
 
  }
879
 
}
880
 
 
881
 
 
882
 
 
883
 
Testing MAX DECIMAL simple 
884
 
INSERT INTO t1 (b) VALUES(999.99);
885
 
Check transaction_log_entries
886
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
887
 
COUNT(*)
888
 
4
889
 
 
890
 
Check transaction_log_transactions
891
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
892
 
COUNT(*)
893
 
4
894
 
Check transaction log contents
895
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
896
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
897
 
transaction_context {
898
 
  server_id: 1
899
 
  TRANSACTION_ID
900
 
  START_TIMESTAMP
901
 
  END_TIMESTAMP
902
 
}
903
 
statement {
904
 
  type: INSERT
905
 
  START_TIMESTAMP
906
 
  END_TIMESTAMP
907
 
  insert_header {
908
 
    table_metadata {
909
 
      schema_name: "test"
910
 
      table_name: "t1"
911
 
    }
912
 
    field_metadata {
913
 
      type: INTEGER
914
 
      name: "a"
915
 
    }
916
 
    field_metadata {
917
 
      type: DECIMAL
918
 
      name: "b"
919
 
    }
920
 
  }
921
 
  insert_data {
922
 
    segment_id: 1
923
 
    end_segment: true
924
 
    record {
925
 
      insert_value: "2"
926
 
      insert_value: "999.99"
927
 
      is_null: false
928
 
      is_null: false
929
 
    }
930
 
  }
931
 
}
932
 
 
933
 
 
934
 
 
935
 
Testing MIN-1 DECIMAL simple 
936
 
INSERT INTO t1 (b) VALUES(-1000);
937
 
ERROR 22003: Out of range value for column 'b' at row 1
938
 
Check transaction_log_entries
939
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
940
 
COUNT(*)
941
 
4
942
 
 
943
 
Check transaction_log_transactions
944
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
945
 
COUNT(*)
946
 
4
947
 
Check transaction log contents
948
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
949
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
950
 
transaction_context {
951
 
  server_id: 1
952
 
  TRANSACTION_ID
953
 
  START_TIMESTAMP
954
 
  END_TIMESTAMP
955
 
}
956
 
statement {
957
 
  type: INSERT
958
 
  START_TIMESTAMP
959
 
  END_TIMESTAMP
960
 
  insert_header {
961
 
    table_metadata {
962
 
      schema_name: "test"
963
 
      table_name: "t1"
964
 
    }
965
 
    field_metadata {
966
 
      type: INTEGER
967
 
      name: "a"
968
 
    }
969
 
    field_metadata {
970
 
      type: DECIMAL
971
 
      name: "b"
972
 
    }
973
 
  }
974
 
  insert_data {
975
 
    segment_id: 1
976
 
    end_segment: true
977
 
    record {
978
 
      insert_value: "2"
979
 
      insert_value: "999.99"
980
 
      is_null: false
981
 
      is_null: false
982
 
    }
983
 
  }
984
 
}
985
 
 
986
 
 
987
 
 
988
 
Testing MAX+1 DECIMAL simple 
989
 
INSERT INTO t1 (b) VALUES(1000);
990
 
ERROR 22003: Out of range value for column 'b' at row 1
991
 
Check transaction_log_entries
992
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
993
 
COUNT(*)
994
 
4
995
 
 
996
 
Check transaction_log_transactions
997
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
998
 
COUNT(*)
999
 
4
1000
 
Check transaction log contents
1001
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1002
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1003
 
transaction_context {
1004
 
  server_id: 1
1005
 
  TRANSACTION_ID
1006
 
  START_TIMESTAMP
1007
 
  END_TIMESTAMP
1008
 
}
1009
 
statement {
1010
 
  type: INSERT
1011
 
  START_TIMESTAMP
1012
 
  END_TIMESTAMP
1013
 
  insert_header {
1014
 
    table_metadata {
1015
 
      schema_name: "test"
1016
 
      table_name: "t1"
1017
 
    }
1018
 
    field_metadata {
1019
 
      type: INTEGER
1020
 
      name: "a"
1021
 
    }
1022
 
    field_metadata {
1023
 
      type: DECIMAL
1024
 
      name: "b"
1025
 
    }
1026
 
  }
1027
 
  insert_data {
1028
 
    segment_id: 1
1029
 
    end_segment: true
1030
 
    record {
1031
 
      insert_value: "2"
1032
 
      insert_value: "999.99"
1033
 
      is_null: false
1034
 
      is_null: false
1035
 
    }
1036
 
  }
1037
 
}
1038
 
 
1039
 
 
1040
 
 
1041
 
Testing NULL DECIMAL simple 
1042
 
INSERT INTO t1 (b) VALUES(NULL);
1043
 
Check transaction_log_entries
1044
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1045
 
COUNT(*)
1046
 
5
1047
 
 
1048
 
Check transaction_log_transactions
1049
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1050
 
COUNT(*)
1051
 
5
1052
 
Check transaction log contents
1053
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1054
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1055
 
transaction_context {
1056
 
  server_id: 1
1057
 
  TRANSACTION_ID
1058
 
  START_TIMESTAMP
1059
 
  END_TIMESTAMP
1060
 
}
1061
 
statement {
1062
 
  type: INSERT
1063
 
  START_TIMESTAMP
1064
 
  END_TIMESTAMP
1065
 
  insert_header {
1066
 
    table_metadata {
1067
 
      schema_name: "test"
1068
 
      table_name: "t1"
1069
 
    }
1070
 
    field_metadata {
1071
 
      type: INTEGER
1072
 
      name: "a"
1073
 
    }
1074
 
    field_metadata {
1075
 
      type: DECIMAL
1076
 
      name: "b"
1077
 
    }
1078
 
  }
1079
 
  insert_data {
1080
 
    segment_id: 1
1081
 
    end_segment: true
1082
 
    record {
1083
 
      insert_value: "3"
1084
 
      insert_value: ""
1085
 
      is_null: false
1086
 
      is_null: true
1087
 
    }
1088
 
  }
1089
 
}
1090
 
 
1091
 
 
1092
 
 
1093
 
Testing BAD INPUT DECIMAL simple 
1094
 
INSERT INTO t1 (b) VALUES('abbazabba');
1095
 
ERROR HY000: Incorrect decimal value: 'abbazabba' for column 'b' at row 1
1096
 
Check transaction_log_entries
1097
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1098
 
COUNT(*)
1099
 
5
1100
 
 
1101
 
Check transaction_log_transactions
1102
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1103
 
COUNT(*)
1104
 
5
1105
 
Check transaction log contents
1106
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1107
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1108
 
transaction_context {
1109
 
  server_id: 1
1110
 
  TRANSACTION_ID
1111
 
  START_TIMESTAMP
1112
 
  END_TIMESTAMP
1113
 
}
1114
 
statement {
1115
 
  type: INSERT
1116
 
  START_TIMESTAMP
1117
 
  END_TIMESTAMP
1118
 
  insert_header {
1119
 
    table_metadata {
1120
 
      schema_name: "test"
1121
 
      table_name: "t1"
1122
 
    }
1123
 
    field_metadata {
1124
 
      type: INTEGER
1125
 
      name: "a"
1126
 
    }
1127
 
    field_metadata {
1128
 
      type: DECIMAL
1129
 
      name: "b"
1130
 
    }
1131
 
  }
1132
 
  insert_data {
1133
 
    segment_id: 1
1134
 
    end_segment: true
1135
 
    record {
1136
 
      insert_value: "3"
1137
 
      insert_value: ""
1138
 
      is_null: false
1139
 
      is_null: true
1140
 
    }
1141
 
  }
1142
 
}
1143
 
 
1144
 
 
1145
 
 
1146
 
Testing BAD INPUT DECIMAL simple2 
1147
 
INSERT INTO t1 (b) VALUES('a');
1148
 
ERROR HY000: Incorrect decimal value: 'a' for column 'b' at row 1
1149
 
Check transaction_log_entries
1150
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1151
 
COUNT(*)
1152
 
5
1153
 
 
1154
 
Check transaction_log_transactions
1155
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1156
 
COUNT(*)
1157
 
5
1158
 
Check transaction log contents
1159
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1160
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1161
 
transaction_context {
1162
 
  server_id: 1
1163
 
  TRANSACTION_ID
1164
 
  START_TIMESTAMP
1165
 
  END_TIMESTAMP
1166
 
}
1167
 
statement {
1168
 
  type: INSERT
1169
 
  START_TIMESTAMP
1170
 
  END_TIMESTAMP
1171
 
  insert_header {
1172
 
    table_metadata {
1173
 
      schema_name: "test"
1174
 
      table_name: "t1"
1175
 
    }
1176
 
    field_metadata {
1177
 
      type: INTEGER
1178
 
      name: "a"
1179
 
    }
1180
 
    field_metadata {
1181
 
      type: DECIMAL
1182
 
      name: "b"
1183
 
    }
1184
 
  }
1185
 
  insert_data {
1186
 
    segment_id: 1
1187
 
    end_segment: true
1188
 
    record {
1189
 
      insert_value: "3"
1190
 
      insert_value: ""
1191
 
      is_null: false
1192
 
      is_null: true
1193
 
    }
1194
 
  }
1195
 
}
1196
 
 
1197
 
 
1198
 
 
1199
 
Testing misc DECIMAL simple
1200
 
INSERT INTO t1 (b) VALUES(100);
1201
 
Check transaction_log_entries
1202
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1203
 
COUNT(*)
1204
 
6
1205
 
 
1206
 
Check transaction_log_transactions
1207
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1208
 
COUNT(*)
1209
 
6
1210
 
Check transaction log contents
1211
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1212
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1213
 
transaction_context {
1214
 
  server_id: 1
1215
 
  TRANSACTION_ID
1216
 
  START_TIMESTAMP
1217
 
  END_TIMESTAMP
1218
 
}
1219
 
statement {
1220
 
  type: INSERT
1221
 
  START_TIMESTAMP
1222
 
  END_TIMESTAMP
1223
 
  insert_header {
1224
 
    table_metadata {
1225
 
      schema_name: "test"
1226
 
      table_name: "t1"
1227
 
    }
1228
 
    field_metadata {
1229
 
      type: INTEGER
1230
 
      name: "a"
1231
 
    }
1232
 
    field_metadata {
1233
 
      type: DECIMAL
1234
 
      name: "b"
1235
 
    }
1236
 
  }
1237
 
  insert_data {
1238
 
    segment_id: 1
1239
 
    end_segment: true
1240
 
    record {
1241
 
      insert_value: "4"
1242
 
      insert_value: "100.00"
1243
 
      is_null: false
1244
 
      is_null: false
1245
 
    }
1246
 
  }
1247
 
}
1248
 
 
1249
 
 
1250
 
 
1251
 
Testing misc DECIMAL simple2
1252
 
INSERT INTO t1 (b) VALUES(.0898);
1253
 
ERROR 01000: Data truncated for column 'b' at row 1
1254
 
Check transaction_log_entries
1255
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1256
 
COUNT(*)
1257
 
6
1258
 
 
1259
 
Check transaction_log_transactions
1260
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1261
 
COUNT(*)
1262
 
6
1263
 
Check transaction log contents
1264
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1265
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1266
 
transaction_context {
1267
 
  server_id: 1
1268
 
  TRANSACTION_ID
1269
 
  START_TIMESTAMP
1270
 
  END_TIMESTAMP
1271
 
}
1272
 
statement {
1273
 
  type: INSERT
1274
 
  START_TIMESTAMP
1275
 
  END_TIMESTAMP
1276
 
  insert_header {
1277
 
    table_metadata {
1278
 
      schema_name: "test"
1279
 
      table_name: "t1"
1280
 
    }
1281
 
    field_metadata {
1282
 
      type: INTEGER
1283
 
      name: "a"
1284
 
    }
1285
 
    field_metadata {
1286
 
      type: DECIMAL
1287
 
      name: "b"
1288
 
    }
1289
 
  }
1290
 
  insert_data {
1291
 
    segment_id: 1
1292
 
    end_segment: true
1293
 
    record {
1294
 
      insert_value: "4"
1295
 
      insert_value: "100.00"
1296
 
      is_null: false
1297
 
      is_null: false
1298
 
    }
1299
 
  }
1300
 
}
1301
 
 
1302
 
 
1303
 
 
1304
 
Testing misc DECIMAL simple3
1305
 
INSERT INTO t1 (b) VALUES(.1);
1306
 
Check transaction_log_entries
1307
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1308
 
COUNT(*)
1309
 
7
1310
 
 
1311
 
Check transaction_log_transactions
1312
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1313
 
COUNT(*)
1314
 
7
1315
 
Check transaction log contents
1316
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1317
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1318
 
transaction_context {
1319
 
  server_id: 1
1320
 
  TRANSACTION_ID
1321
 
  START_TIMESTAMP
1322
 
  END_TIMESTAMP
1323
 
}
1324
 
statement {
1325
 
  type: INSERT
1326
 
  START_TIMESTAMP
1327
 
  END_TIMESTAMP
1328
 
  insert_header {
1329
 
    table_metadata {
1330
 
      schema_name: "test"
1331
 
      table_name: "t1"
1332
 
    }
1333
 
    field_metadata {
1334
 
      type: INTEGER
1335
 
      name: "a"
1336
 
    }
1337
 
    field_metadata {
1338
 
      type: DECIMAL
1339
 
      name: "b"
1340
 
    }
1341
 
  }
1342
 
  insert_data {
1343
 
    segment_id: 1
1344
 
    end_segment: true
1345
 
    record {
1346
 
      insert_value: "5"
1347
 
      insert_value: "0.10"
1348
 
      is_null: false
1349
 
      is_null: false
1350
 
    }
1351
 
  }
1352
 
}
1353
 
 
1354
 
 
1355
 
 
1356
 
DROP TABLE t1;
1357
 
SET GLOBAL transaction_log_truncate_debug= true;
1358
 
 
1359
 
++ End DECIMAL simple tests ++
1360
 
++ Begin FLOAT simple tests ++
1361
 
DROP TABLE IF EXISTS t1;
1362
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b FLOAT(5,2), PRIMARY KEY(a));
1363
 
Testing MIN FLOAT simple
1364
 
INSERT INTO t1 (b) VALUES(-999.99);
1365
 
Check transaction_log_entries
1366
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1367
 
COUNT(*)
1368
 
3
1369
 
 
1370
 
Check transaction_log_transactions
1371
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1372
 
COUNT(*)
1373
 
3
1374
 
Check transaction log contents
1375
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1376
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1377
 
transaction_context {
1378
 
  server_id: 1
1379
 
  TRANSACTION_ID
1380
 
  START_TIMESTAMP
1381
 
  END_TIMESTAMP
1382
 
}
1383
 
statement {
1384
 
  type: INSERT
1385
 
  START_TIMESTAMP
1386
 
  END_TIMESTAMP
1387
 
  insert_header {
1388
 
    table_metadata {
1389
 
      schema_name: "test"
1390
 
      table_name: "t1"
1391
 
    }
1392
 
    field_metadata {
1393
 
      type: INTEGER
1394
 
      name: "a"
1395
 
    }
1396
 
    field_metadata {
1397
 
      type: DOUBLE
1398
 
      name: "b"
1399
 
    }
1400
 
  }
1401
 
  insert_data {
1402
 
    segment_id: 1
1403
 
    end_segment: true
1404
 
    record {
1405
 
      insert_value: "1"
1406
 
      insert_value: "-999.99"
1407
 
      is_null: false
1408
 
      is_null: false
1409
 
    }
1410
 
  }
1411
 
}
1412
 
 
1413
 
 
1414
 
 
1415
 
Testing MAX FLOAT simple
1416
 
INSERT INTO t1 (b) VALUES(999.99);
1417
 
Check transaction_log_entries
1418
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1419
 
COUNT(*)
1420
 
4
1421
 
 
1422
 
Check transaction_log_transactions
1423
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1424
 
COUNT(*)
1425
 
4
1426
 
Check transaction log contents
1427
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1428
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1429
 
transaction_context {
1430
 
  server_id: 1
1431
 
  TRANSACTION_ID
1432
 
  START_TIMESTAMP
1433
 
  END_TIMESTAMP
1434
 
}
1435
 
statement {
1436
 
  type: INSERT
1437
 
  START_TIMESTAMP
1438
 
  END_TIMESTAMP
1439
 
  insert_header {
1440
 
    table_metadata {
1441
 
      schema_name: "test"
1442
 
      table_name: "t1"
1443
 
    }
1444
 
    field_metadata {
1445
 
      type: INTEGER
1446
 
      name: "a"
1447
 
    }
1448
 
    field_metadata {
1449
 
      type: DOUBLE
1450
 
      name: "b"
1451
 
    }
1452
 
  }
1453
 
  insert_data {
1454
 
    segment_id: 1
1455
 
    end_segment: true
1456
 
    record {
1457
 
      insert_value: "2"
1458
 
      insert_value: "999.99"
1459
 
      is_null: false
1460
 
      is_null: false
1461
 
    }
1462
 
  }
1463
 
}
1464
 
 
1465
 
 
1466
 
 
1467
 
Testing MIN-1 FLOAT simple
1468
 
INSERT INTO t1 (b) VALUES(-1000);
1469
 
ERROR 22003: Out of range value for column 'b' at row 1
1470
 
Check transaction_log_entries
1471
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1472
 
COUNT(*)
1473
 
4
1474
 
 
1475
 
Check transaction_log_transactions
1476
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1477
 
COUNT(*)
1478
 
4
1479
 
Check transaction log contents
1480
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1481
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1482
 
transaction_context {
1483
 
  server_id: 1
1484
 
  TRANSACTION_ID
1485
 
  START_TIMESTAMP
1486
 
  END_TIMESTAMP
1487
 
}
1488
 
statement {
1489
 
  type: INSERT
1490
 
  START_TIMESTAMP
1491
 
  END_TIMESTAMP
1492
 
  insert_header {
1493
 
    table_metadata {
1494
 
      schema_name: "test"
1495
 
      table_name: "t1"
1496
 
    }
1497
 
    field_metadata {
1498
 
      type: INTEGER
1499
 
      name: "a"
1500
 
    }
1501
 
    field_metadata {
1502
 
      type: DOUBLE
1503
 
      name: "b"
1504
 
    }
1505
 
  }
1506
 
  insert_data {
1507
 
    segment_id: 1
1508
 
    end_segment: true
1509
 
    record {
1510
 
      insert_value: "2"
1511
 
      insert_value: "999.99"
1512
 
      is_null: false
1513
 
      is_null: false
1514
 
    }
1515
 
  }
1516
 
}
1517
 
 
1518
 
 
1519
 
 
1520
 
Testing MAX+1 FLOAT simple
1521
 
INSERT INTO t1 (b) VALUES(1000);
1522
 
ERROR 22003: Out of range value for column 'b' at row 1
1523
 
Check transaction_log_entries
1524
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1525
 
COUNT(*)
1526
 
4
1527
 
 
1528
 
Check transaction_log_transactions
1529
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1530
 
COUNT(*)
1531
 
4
1532
 
Check transaction log contents
1533
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1534
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1535
 
transaction_context {
1536
 
  server_id: 1
1537
 
  TRANSACTION_ID
1538
 
  START_TIMESTAMP
1539
 
  END_TIMESTAMP
1540
 
}
1541
 
statement {
1542
 
  type: INSERT
1543
 
  START_TIMESTAMP
1544
 
  END_TIMESTAMP
1545
 
  insert_header {
1546
 
    table_metadata {
1547
 
      schema_name: "test"
1548
 
      table_name: "t1"
1549
 
    }
1550
 
    field_metadata {
1551
 
      type: INTEGER
1552
 
      name: "a"
1553
 
    }
1554
 
    field_metadata {
1555
 
      type: DOUBLE
1556
 
      name: "b"
1557
 
    }
1558
 
  }
1559
 
  insert_data {
1560
 
    segment_id: 1
1561
 
    end_segment: true
1562
 
    record {
1563
 
      insert_value: "2"
1564
 
      insert_value: "999.99"
1565
 
      is_null: false
1566
 
      is_null: false
1567
 
    }
1568
 
  }
1569
 
}
1570
 
 
1571
 
 
1572
 
 
1573
 
Testing NULL FLOAT simple
1574
 
INSERT INTO t1 (b) VALUES(NULL);
1575
 
Check transaction_log_entries
1576
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1577
 
COUNT(*)
1578
 
5
1579
 
 
1580
 
Check transaction_log_transactions
1581
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1582
 
COUNT(*)
1583
 
5
1584
 
Check transaction log contents
1585
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1586
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1587
 
transaction_context {
1588
 
  server_id: 1
1589
 
  TRANSACTION_ID
1590
 
  START_TIMESTAMP
1591
 
  END_TIMESTAMP
1592
 
}
1593
 
statement {
1594
 
  type: INSERT
1595
 
  START_TIMESTAMP
1596
 
  END_TIMESTAMP
1597
 
  insert_header {
1598
 
    table_metadata {
1599
 
      schema_name: "test"
1600
 
      table_name: "t1"
1601
 
    }
1602
 
    field_metadata {
1603
 
      type: INTEGER
1604
 
      name: "a"
1605
 
    }
1606
 
    field_metadata {
1607
 
      type: DOUBLE
1608
 
      name: "b"
1609
 
    }
1610
 
  }
1611
 
  insert_data {
1612
 
    segment_id: 1
1613
 
    end_segment: true
1614
 
    record {
1615
 
      insert_value: "3"
1616
 
      insert_value: ""
1617
 
      is_null: false
1618
 
      is_null: true
1619
 
    }
1620
 
  }
1621
 
}
1622
 
 
1623
 
 
1624
 
 
1625
 
Testing BAD INPUT FLOAT simple
1626
 
INSERT INTO t1 (b) VALUES('abbazabba');
1627
 
ERROR 01000: Data truncated for column 'b' at row 1
1628
 
Check transaction_log_entries
1629
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1630
 
COUNT(*)
1631
 
5
1632
 
 
1633
 
Check transaction_log_transactions
1634
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1635
 
COUNT(*)
1636
 
5
1637
 
Check transaction log contents
1638
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1639
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1640
 
transaction_context {
1641
 
  server_id: 1
1642
 
  TRANSACTION_ID
1643
 
  START_TIMESTAMP
1644
 
  END_TIMESTAMP
1645
 
}
1646
 
statement {
1647
 
  type: INSERT
1648
 
  START_TIMESTAMP
1649
 
  END_TIMESTAMP
1650
 
  insert_header {
1651
 
    table_metadata {
1652
 
      schema_name: "test"
1653
 
      table_name: "t1"
1654
 
    }
1655
 
    field_metadata {
1656
 
      type: INTEGER
1657
 
      name: "a"
1658
 
    }
1659
 
    field_metadata {
1660
 
      type: DOUBLE
1661
 
      name: "b"
1662
 
    }
1663
 
  }
1664
 
  insert_data {
1665
 
    segment_id: 1
1666
 
    end_segment: true
1667
 
    record {
1668
 
      insert_value: "3"
1669
 
      insert_value: ""
1670
 
      is_null: false
1671
 
      is_null: true
1672
 
    }
1673
 
  }
1674
 
}
1675
 
 
1676
 
 
1677
 
 
1678
 
DROP TABLE t1;
1679
 
SET GLOBAL transaction_log_truncate_debug= true;
1680
 
 
1681
 
++ End FLOAT simple tests ++
1682
 
++ Begin CHAR simple tests ++
1683
 
DROP TABLE IF EXISTS t1;
1684
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b CHAR(10), PRIMARY KEY(a));
1685
 
Testing MIN CHAR simple
1686
 
INSERT INTO t1 (b) VALUES("");
1687
 
Check transaction_log_entries
1688
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1689
 
COUNT(*)
1690
 
3
1691
 
 
1692
 
Check transaction_log_transactions
1693
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1694
 
COUNT(*)
1695
 
3
1696
 
Check transaction log contents
1697
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1698
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1699
 
transaction_context {
1700
 
  server_id: 1
1701
 
  TRANSACTION_ID
1702
 
  START_TIMESTAMP
1703
 
  END_TIMESTAMP
1704
 
}
1705
 
statement {
1706
 
  type: INSERT
1707
 
  START_TIMESTAMP
1708
 
  END_TIMESTAMP
1709
 
  insert_header {
1710
 
    table_metadata {
1711
 
      schema_name: "test"
1712
 
      table_name: "t1"
1713
 
    }
1714
 
    field_metadata {
1715
 
      type: INTEGER
1716
 
      name: "a"
1717
 
    }
1718
 
    field_metadata {
1719
 
      type: VARCHAR
1720
 
      name: "b"
1721
 
    }
1722
 
  }
1723
 
  insert_data {
1724
 
    segment_id: 1
1725
 
    end_segment: true
1726
 
    record {
1727
 
      insert_value: "1"
1728
 
      insert_value: ""
1729
 
      is_null: false
1730
 
      is_null: false
1731
 
    }
1732
 
  }
1733
 
}
1734
 
 
1735
 
 
1736
 
 
1737
 
Testing MAX CHAR simple
1738
 
INSERT INTO t1 (b) VALUES("zzzzzzzzzz");
1739
 
Check transaction_log_entries
1740
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1741
 
COUNT(*)
1742
 
4
1743
 
 
1744
 
Check transaction_log_transactions
1745
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1746
 
COUNT(*)
1747
 
4
1748
 
Check transaction log contents
1749
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1750
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1751
 
transaction_context {
1752
 
  server_id: 1
1753
 
  TRANSACTION_ID
1754
 
  START_TIMESTAMP
1755
 
  END_TIMESTAMP
1756
 
}
1757
 
statement {
1758
 
  type: INSERT
1759
 
  START_TIMESTAMP
1760
 
  END_TIMESTAMP
1761
 
  insert_header {
1762
 
    table_metadata {
1763
 
      schema_name: "test"
1764
 
      table_name: "t1"
1765
 
    }
1766
 
    field_metadata {
1767
 
      type: INTEGER
1768
 
      name: "a"
1769
 
    }
1770
 
    field_metadata {
1771
 
      type: VARCHAR
1772
 
      name: "b"
1773
 
    }
1774
 
  }
1775
 
  insert_data {
1776
 
    segment_id: 1
1777
 
    end_segment: true
1778
 
    record {
1779
 
      insert_value: "2"
1780
 
      insert_value: "zzzzzzzzzz"
1781
 
      is_null: false
1782
 
      is_null: false
1783
 
    }
1784
 
  }
1785
 
}
1786
 
 
1787
 
 
1788
 
 
1789
 
Testing MAX+1 CHAR simple
1790
 
INSERT INTO t1 (b) VALUES('zzzzzzzzzzz');
1791
 
ERROR 22001: Data too long for column 'b' at row 1
1792
 
Check transaction_log_entries
1793
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1794
 
COUNT(*)
1795
 
4
1796
 
 
1797
 
Check transaction_log_transactions
1798
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1799
 
COUNT(*)
1800
 
4
1801
 
Check transaction log contents
1802
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1803
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1804
 
transaction_context {
1805
 
  server_id: 1
1806
 
  TRANSACTION_ID
1807
 
  START_TIMESTAMP
1808
 
  END_TIMESTAMP
1809
 
}
1810
 
statement {
1811
 
  type: INSERT
1812
 
  START_TIMESTAMP
1813
 
  END_TIMESTAMP
1814
 
  insert_header {
1815
 
    table_metadata {
1816
 
      schema_name: "test"
1817
 
      table_name: "t1"
1818
 
    }
1819
 
    field_metadata {
1820
 
      type: INTEGER
1821
 
      name: "a"
1822
 
    }
1823
 
    field_metadata {
1824
 
      type: VARCHAR
1825
 
      name: "b"
1826
 
    }
1827
 
  }
1828
 
  insert_data {
1829
 
    segment_id: 1
1830
 
    end_segment: true
1831
 
    record {
1832
 
      insert_value: "2"
1833
 
      insert_value: "zzzzzzzzzz"
1834
 
      is_null: false
1835
 
      is_null: false
1836
 
    }
1837
 
  }
1838
 
}
1839
 
 
1840
 
 
1841
 
 
1842
 
Testing NULL CHAR simple
1843
 
INSERT INTO t1 (b) VALUES(NULL);
1844
 
Check transaction_log_entries
1845
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1846
 
COUNT(*)
1847
 
5
1848
 
 
1849
 
Check transaction_log_transactions
1850
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1851
 
COUNT(*)
1852
 
5
1853
 
Check transaction log contents
1854
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1855
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1856
 
transaction_context {
1857
 
  server_id: 1
1858
 
  TRANSACTION_ID
1859
 
  START_TIMESTAMP
1860
 
  END_TIMESTAMP
1861
 
}
1862
 
statement {
1863
 
  type: INSERT
1864
 
  START_TIMESTAMP
1865
 
  END_TIMESTAMP
1866
 
  insert_header {
1867
 
    table_metadata {
1868
 
      schema_name: "test"
1869
 
      table_name: "t1"
1870
 
    }
1871
 
    field_metadata {
1872
 
      type: INTEGER
1873
 
      name: "a"
1874
 
    }
1875
 
    field_metadata {
1876
 
      type: VARCHAR
1877
 
      name: "b"
1878
 
    }
1879
 
  }
1880
 
  insert_data {
1881
 
    segment_id: 1
1882
 
    end_segment: true
1883
 
    record {
1884
 
      insert_value: "3"
1885
 
      insert_value: ""
1886
 
      is_null: false
1887
 
      is_null: true
1888
 
    }
1889
 
  }
1890
 
}
1891
 
 
1892
 
 
1893
 
 
1894
 
Testing NUMERIC INPUT CHAR simple
1895
 
INSERT INTO t1 (b) VALUES(1000000);
1896
 
Check transaction_log_entries
1897
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1898
 
COUNT(*)
1899
 
6
1900
 
 
1901
 
Check transaction_log_transactions
1902
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1903
 
COUNT(*)
1904
 
6
1905
 
Check transaction log contents
1906
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1907
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1908
 
transaction_context {
1909
 
  server_id: 1
1910
 
  TRANSACTION_ID
1911
 
  START_TIMESTAMP
1912
 
  END_TIMESTAMP
1913
 
}
1914
 
statement {
1915
 
  type: INSERT
1916
 
  START_TIMESTAMP
1917
 
  END_TIMESTAMP
1918
 
  insert_header {
1919
 
    table_metadata {
1920
 
      schema_name: "test"
1921
 
      table_name: "t1"
1922
 
    }
1923
 
    field_metadata {
1924
 
      type: INTEGER
1925
 
      name: "a"
1926
 
    }
1927
 
    field_metadata {
1928
 
      type: VARCHAR
1929
 
      name: "b"
1930
 
    }
1931
 
  }
1932
 
  insert_data {
1933
 
    segment_id: 1
1934
 
    end_segment: true
1935
 
    record {
1936
 
      insert_value: "4"
1937
 
      insert_value: "1000000"
1938
 
      is_null: false
1939
 
      is_null: false
1940
 
    }
1941
 
  }
1942
 
}
1943
 
 
1944
 
 
1945
 
 
1946
 
DROP TABLE t1;
1947
 
SET GLOBAL transaction_log_truncate_debug= true;
1948
 
 
1949
 
++ End CHAR simple tests ++
1950
 
++ Begin ENUM simple tests ++
1951
 
DROP TABLE IF EXISTS t1;
1952
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b ENUM('1','2','3','4','5'), PRIMARY KEY(a));
1953
 
Testing MIN ENUM simple
1954
 
INSERT INTO t1 (b) VALUES(1);
1955
 
Check transaction_log_entries
1956
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
1957
 
COUNT(*)
1958
 
3
1959
 
 
1960
 
Check transaction_log_transactions
1961
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
1962
 
COUNT(*)
1963
 
3
1964
 
Check transaction log contents
1965
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
1966
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
1967
 
transaction_context {
1968
 
  server_id: 1
1969
 
  TRANSACTION_ID
1970
 
  START_TIMESTAMP
1971
 
  END_TIMESTAMP
1972
 
}
1973
 
statement {
1974
 
  type: INSERT
1975
 
  START_TIMESTAMP
1976
 
  END_TIMESTAMP
1977
 
  insert_header {
1978
 
    table_metadata {
1979
 
      schema_name: "test"
1980
 
      table_name: "t1"
1981
 
    }
1982
 
    field_metadata {
1983
 
      type: INTEGER
1984
 
      name: "a"
1985
 
    }
1986
 
    field_metadata {
1987
 
      type: ENUM
1988
 
      name: "b"
1989
 
    }
1990
 
  }
1991
 
  insert_data {
1992
 
    segment_id: 1
1993
 
    end_segment: true
1994
 
    record {
1995
 
      insert_value: "1"
1996
 
      insert_value: "1"
1997
 
      is_null: false
1998
 
      is_null: false
1999
 
    }
2000
 
  }
2001
 
}
2002
 
 
2003
 
 
2004
 
 
2005
 
Testing MAX ENUM simple
2006
 
INSERT INTO t1 (b) VALUES(5);
2007
 
Check transaction_log_entries
2008
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2009
 
COUNT(*)
2010
 
4
2011
 
 
2012
 
Check transaction_log_transactions
2013
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2014
 
COUNT(*)
2015
 
4
2016
 
Check transaction log contents
2017
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2018
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2019
 
transaction_context {
2020
 
  server_id: 1
2021
 
  TRANSACTION_ID
2022
 
  START_TIMESTAMP
2023
 
  END_TIMESTAMP
2024
 
}
2025
 
statement {
2026
 
  type: INSERT
2027
 
  START_TIMESTAMP
2028
 
  END_TIMESTAMP
2029
 
  insert_header {
2030
 
    table_metadata {
2031
 
      schema_name: "test"
2032
 
      table_name: "t1"
2033
 
    }
2034
 
    field_metadata {
2035
 
      type: INTEGER
2036
 
      name: "a"
2037
 
    }
2038
 
    field_metadata {
2039
 
      type: ENUM
2040
 
      name: "b"
2041
 
    }
2042
 
  }
2043
 
  insert_data {
2044
 
    segment_id: 1
2045
 
    end_segment: true
2046
 
    record {
2047
 
      insert_value: "2"
2048
 
      insert_value: "5"
2049
 
      is_null: false
2050
 
      is_null: false
2051
 
    }
2052
 
  }
2053
 
}
2054
 
 
2055
 
 
2056
 
 
2057
 
Testing BAD INPUT ENUM simple
2058
 
INSERT INTO t1 (b) VALUES(6);
2059
 
ERROR HY000: Received an invalid enum value '6'.
2060
 
Check transaction_log_entries
2061
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2062
 
COUNT(*)
2063
 
4
2064
 
 
2065
 
Check transaction_log_transactions
2066
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2067
 
COUNT(*)
2068
 
4
2069
 
Check transaction log contents
2070
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2071
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2072
 
transaction_context {
2073
 
  server_id: 1
2074
 
  TRANSACTION_ID
2075
 
  START_TIMESTAMP
2076
 
  END_TIMESTAMP
2077
 
}
2078
 
statement {
2079
 
  type: INSERT
2080
 
  START_TIMESTAMP
2081
 
  END_TIMESTAMP
2082
 
  insert_header {
2083
 
    table_metadata {
2084
 
      schema_name: "test"
2085
 
      table_name: "t1"
2086
 
    }
2087
 
    field_metadata {
2088
 
      type: INTEGER
2089
 
      name: "a"
2090
 
    }
2091
 
    field_metadata {
2092
 
      type: ENUM
2093
 
      name: "b"
2094
 
    }
2095
 
  }
2096
 
  insert_data {
2097
 
    segment_id: 1
2098
 
    end_segment: true
2099
 
    record {
2100
 
      insert_value: "2"
2101
 
      insert_value: "5"
2102
 
      is_null: false
2103
 
      is_null: false
2104
 
    }
2105
 
  }
2106
 
}
2107
 
 
2108
 
 
2109
 
 
2110
 
Testing NULL ENUM simple
2111
 
INSERT INTO t1 (b) VALUES(NULL);
2112
 
Check transaction_log_entries
2113
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2114
 
COUNT(*)
2115
 
5
2116
 
 
2117
 
Check transaction_log_transactions
2118
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2119
 
COUNT(*)
2120
 
5
2121
 
Check transaction log contents
2122
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2123
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2124
 
transaction_context {
2125
 
  server_id: 1
2126
 
  TRANSACTION_ID
2127
 
  START_TIMESTAMP
2128
 
  END_TIMESTAMP
2129
 
}
2130
 
statement {
2131
 
  type: INSERT
2132
 
  START_TIMESTAMP
2133
 
  END_TIMESTAMP
2134
 
  insert_header {
2135
 
    table_metadata {
2136
 
      schema_name: "test"
2137
 
      table_name: "t1"
2138
 
    }
2139
 
    field_metadata {
2140
 
      type: INTEGER
2141
 
      name: "a"
2142
 
    }
2143
 
    field_metadata {
2144
 
      type: ENUM
2145
 
      name: "b"
2146
 
    }
2147
 
  }
2148
 
  insert_data {
2149
 
    segment_id: 1
2150
 
    end_segment: true
2151
 
    record {
2152
 
      insert_value: "3"
2153
 
      insert_value: ""
2154
 
      is_null: false
2155
 
      is_null: true
2156
 
    }
2157
 
  }
2158
 
}
2159
 
 
2160
 
 
2161
 
 
2162
 
DROP TABLE t1;
2163
 
SET GLOBAL transaction_log_truncate_debug= true;
2164
 
 
2165
 
++ End ENUM simple tests ++
2166
 
++ Begin DATE tests ++
2167
 
DROP TABLE IF EXISTS t1;
2168
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b DATE, PRIMARY KEY(a));
2169
 
Testing MIN DATE
2170
 
INSERT INTO t1 (b) VALUES('0001-01-01');
2171
 
Check transaction_log_entries
2172
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2173
 
COUNT(*)
2174
 
3
2175
 
 
2176
 
Check transaction_log_transactions
2177
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2178
 
COUNT(*)
2179
 
3
2180
 
Check transaction log contents
2181
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2182
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2183
 
transaction_context {
2184
 
  server_id: 1
2185
 
  TRANSACTION_ID
2186
 
  START_TIMESTAMP
2187
 
  END_TIMESTAMP
2188
 
}
2189
 
statement {
2190
 
  type: INSERT
2191
 
  START_TIMESTAMP
2192
 
  END_TIMESTAMP
2193
 
  insert_header {
2194
 
    table_metadata {
2195
 
      schema_name: "test"
2196
 
      table_name: "t1"
2197
 
    }
2198
 
    field_metadata {
2199
 
      type: INTEGER
2200
 
      name: "a"
2201
 
    }
2202
 
    field_metadata {
2203
 
      type: DATE
2204
 
      name: "b"
2205
 
    }
2206
 
  }
2207
 
  insert_data {
2208
 
    segment_id: 1
2209
 
    end_segment: true
2210
 
    record {
2211
 
      insert_value: "1"
2212
 
      insert_value: "0001-01-01"
2213
 
      is_null: false
2214
 
      is_null: false
2215
 
    }
2216
 
  }
2217
 
}
2218
 
 
2219
 
 
2220
 
 
2221
 
Testing MAX DATE
2222
 
INSERT INTO t1 (b) VALUES('9999-12-31');
2223
 
Check transaction_log_entries
2224
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2225
 
COUNT(*)
2226
 
4
2227
 
 
2228
 
Check transaction_log_transactions
2229
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2230
 
COUNT(*)
2231
 
4
2232
 
Check transaction log contents
2233
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2234
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2235
 
transaction_context {
2236
 
  server_id: 1
2237
 
  TRANSACTION_ID
2238
 
  START_TIMESTAMP
2239
 
  END_TIMESTAMP
2240
 
}
2241
 
statement {
2242
 
  type: INSERT
2243
 
  START_TIMESTAMP
2244
 
  END_TIMESTAMP
2245
 
  insert_header {
2246
 
    table_metadata {
2247
 
      schema_name: "test"
2248
 
      table_name: "t1"
2249
 
    }
2250
 
    field_metadata {
2251
 
      type: INTEGER
2252
 
      name: "a"
2253
 
    }
2254
 
    field_metadata {
2255
 
      type: DATE
2256
 
      name: "b"
2257
 
    }
2258
 
  }
2259
 
  insert_data {
2260
 
    segment_id: 1
2261
 
    end_segment: true
2262
 
    record {
2263
 
      insert_value: "2"
2264
 
      insert_value: "9999-12-31"
2265
 
      is_null: false
2266
 
      is_null: false
2267
 
    }
2268
 
  }
2269
 
}
2270
 
 
2271
 
 
2272
 
 
2273
 
Testing MIN-1 DATE
2274
 
INSERT INTO t1 (b) VALUES('0000-12-31');
2275
 
ERROR HY000: Received an invalid datetime value '0000-12-31'.
2276
 
Check transaction_log_entries
2277
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2278
 
COUNT(*)
2279
 
4
2280
 
 
2281
 
Check transaction_log_transactions
2282
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2283
 
COUNT(*)
2284
 
4
2285
 
Check transaction log contents
2286
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2287
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2288
 
transaction_context {
2289
 
  server_id: 1
2290
 
  TRANSACTION_ID
2291
 
  START_TIMESTAMP
2292
 
  END_TIMESTAMP
2293
 
}
2294
 
statement {
2295
 
  type: INSERT
2296
 
  START_TIMESTAMP
2297
 
  END_TIMESTAMP
2298
 
  insert_header {
2299
 
    table_metadata {
2300
 
      schema_name: "test"
2301
 
      table_name: "t1"
2302
 
    }
2303
 
    field_metadata {
2304
 
      type: INTEGER
2305
 
      name: "a"
2306
 
    }
2307
 
    field_metadata {
2308
 
      type: DATE
2309
 
      name: "b"
2310
 
    }
2311
 
  }
2312
 
  insert_data {
2313
 
    segment_id: 1
2314
 
    end_segment: true
2315
 
    record {
2316
 
      insert_value: "2"
2317
 
      insert_value: "9999-12-31"
2318
 
      is_null: false
2319
 
      is_null: false
2320
 
    }
2321
 
  }
2322
 
}
2323
 
 
2324
 
 
2325
 
 
2326
 
Testing MAX+1 DATE
2327
 
INSERT INTO t1 (b) VALUES('10000-01-01');
2328
 
ERROR HY000: Received an invalid datetime value '10000-01-01'.
2329
 
Check transaction_log_entries
2330
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2331
 
COUNT(*)
2332
 
4
2333
 
 
2334
 
Check transaction_log_transactions
2335
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2336
 
COUNT(*)
2337
 
4
2338
 
Check transaction log contents
2339
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2340
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2341
 
transaction_context {
2342
 
  server_id: 1
2343
 
  TRANSACTION_ID
2344
 
  START_TIMESTAMP
2345
 
  END_TIMESTAMP
2346
 
}
2347
 
statement {
2348
 
  type: INSERT
2349
 
  START_TIMESTAMP
2350
 
  END_TIMESTAMP
2351
 
  insert_header {
2352
 
    table_metadata {
2353
 
      schema_name: "test"
2354
 
      table_name: "t1"
2355
 
    }
2356
 
    field_metadata {
2357
 
      type: INTEGER
2358
 
      name: "a"
2359
 
    }
2360
 
    field_metadata {
2361
 
      type: DATE
2362
 
      name: "b"
2363
 
    }
2364
 
  }
2365
 
  insert_data {
2366
 
    segment_id: 1
2367
 
    end_segment: true
2368
 
    record {
2369
 
      insert_value: "2"
2370
 
      insert_value: "9999-12-31"
2371
 
      is_null: false
2372
 
      is_null: false
2373
 
    }
2374
 
  }
2375
 
}
2376
 
 
2377
 
 
2378
 
 
2379
 
Testing Alternate input format DATE1
2380
 
INSERT INTO t1 (b) VALUES('20000101');
2381
 
Check transaction_log_entries
2382
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2383
 
COUNT(*)
2384
 
5
2385
 
 
2386
 
Check transaction_log_transactions
2387
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2388
 
COUNT(*)
2389
 
5
2390
 
Check transaction log contents
2391
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2392
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2393
 
transaction_context {
2394
 
  server_id: 1
2395
 
  TRANSACTION_ID
2396
 
  START_TIMESTAMP
2397
 
  END_TIMESTAMP
2398
 
}
2399
 
statement {
2400
 
  type: INSERT
2401
 
  START_TIMESTAMP
2402
 
  END_TIMESTAMP
2403
 
  insert_header {
2404
 
    table_metadata {
2405
 
      schema_name: "test"
2406
 
      table_name: "t1"
2407
 
    }
2408
 
    field_metadata {
2409
 
      type: INTEGER
2410
 
      name: "a"
2411
 
    }
2412
 
    field_metadata {
2413
 
      type: DATE
2414
 
      name: "b"
2415
 
    }
2416
 
  }
2417
 
  insert_data {
2418
 
    segment_id: 1
2419
 
    end_segment: true
2420
 
    record {
2421
 
      insert_value: "3"
2422
 
      insert_value: "2000-01-01"
2423
 
      is_null: false
2424
 
      is_null: false
2425
 
    }
2426
 
  }
2427
 
}
2428
 
 
2429
 
 
2430
 
 
2431
 
Testing Alternate input formate DATE2
2432
 
INSERT INTO t1 (b) VALUES('990601');
2433
 
Check transaction_log_entries
2434
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2435
 
COUNT(*)
2436
 
6
2437
 
 
2438
 
Check transaction_log_transactions
2439
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2440
 
COUNT(*)
2441
 
6
2442
 
Check transaction log contents
2443
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2444
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2445
 
transaction_context {
2446
 
  server_id: 1
2447
 
  TRANSACTION_ID
2448
 
  START_TIMESTAMP
2449
 
  END_TIMESTAMP
2450
 
}
2451
 
statement {
2452
 
  type: INSERT
2453
 
  START_TIMESTAMP
2454
 
  END_TIMESTAMP
2455
 
  insert_header {
2456
 
    table_metadata {
2457
 
      schema_name: "test"
2458
 
      table_name: "t1"
2459
 
    }
2460
 
    field_metadata {
2461
 
      type: INTEGER
2462
 
      name: "a"
2463
 
    }
2464
 
    field_metadata {
2465
 
      type: DATE
2466
 
      name: "b"
2467
 
    }
2468
 
  }
2469
 
  insert_data {
2470
 
    segment_id: 1
2471
 
    end_segment: true
2472
 
    record {
2473
 
      insert_value: "4"
2474
 
      insert_value: "1999-06-01"
2475
 
      is_null: false
2476
 
      is_null: false
2477
 
    }
2478
 
  }
2479
 
}
2480
 
 
2481
 
 
2482
 
 
2483
 
Testing NULL DATE
2484
 
INSERT INTO t1 (b) VALUES(NULL);
2485
 
Check transaction_log_entries
2486
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2487
 
COUNT(*)
2488
 
7
2489
 
 
2490
 
Check transaction_log_transactions
2491
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2492
 
COUNT(*)
2493
 
7
2494
 
Check transaction log contents
2495
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2496
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2497
 
transaction_context {
2498
 
  server_id: 1
2499
 
  TRANSACTION_ID
2500
 
  START_TIMESTAMP
2501
 
  END_TIMESTAMP
2502
 
}
2503
 
statement {
2504
 
  type: INSERT
2505
 
  START_TIMESTAMP
2506
 
  END_TIMESTAMP
2507
 
  insert_header {
2508
 
    table_metadata {
2509
 
      schema_name: "test"
2510
 
      table_name: "t1"
2511
 
    }
2512
 
    field_metadata {
2513
 
      type: INTEGER
2514
 
      name: "a"
2515
 
    }
2516
 
    field_metadata {
2517
 
      type: DATE
2518
 
      name: "b"
2519
 
    }
2520
 
  }
2521
 
  insert_data {
2522
 
    segment_id: 1
2523
 
    end_segment: true
2524
 
    record {
2525
 
      insert_value: "5"
2526
 
      insert_value: ""
2527
 
      is_null: false
2528
 
      is_null: true
2529
 
    }
2530
 
  }
2531
 
}
2532
 
 
2533
 
 
2534
 
 
2535
 
Testing BAD INPUT DATE1
2536
 
INSERT INTO t1 (b) VALUES('abbazabba');
2537
 
ERROR HY000: Received an invalid datetime value 'abbazabba'.
2538
 
Check transaction_log_entries
2539
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2540
 
COUNT(*)
2541
 
7
2542
 
 
2543
 
Check transaction_log_transactions
2544
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2545
 
COUNT(*)
2546
 
7
2547
 
Check transaction log contents
2548
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2549
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2550
 
transaction_context {
2551
 
  server_id: 1
2552
 
  TRANSACTION_ID
2553
 
  START_TIMESTAMP
2554
 
  END_TIMESTAMP
2555
 
}
2556
 
statement {
2557
 
  type: INSERT
2558
 
  START_TIMESTAMP
2559
 
  END_TIMESTAMP
2560
 
  insert_header {
2561
 
    table_metadata {
2562
 
      schema_name: "test"
2563
 
      table_name: "t1"
2564
 
    }
2565
 
    field_metadata {
2566
 
      type: INTEGER
2567
 
      name: "a"
2568
 
    }
2569
 
    field_metadata {
2570
 
      type: DATE
2571
 
      name: "b"
2572
 
    }
2573
 
  }
2574
 
  insert_data {
2575
 
    segment_id: 1
2576
 
    end_segment: true
2577
 
    record {
2578
 
      insert_value: "5"
2579
 
      insert_value: ""
2580
 
      is_null: false
2581
 
      is_null: true
2582
 
    }
2583
 
  }
2584
 
}
2585
 
 
2586
 
 
2587
 
 
2588
 
Testing BAD INPUT DATE2
2589
 
INSERT INTO t1 (b) VALUES('a');
2590
 
ERROR HY000: Received an invalid datetime value 'a'.
2591
 
Check transaction_log_entries
2592
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2593
 
COUNT(*)
2594
 
7
2595
 
 
2596
 
Check transaction_log_transactions
2597
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2598
 
COUNT(*)
2599
 
7
2600
 
Check transaction log contents
2601
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2602
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2603
 
transaction_context {
2604
 
  server_id: 1
2605
 
  TRANSACTION_ID
2606
 
  START_TIMESTAMP
2607
 
  END_TIMESTAMP
2608
 
}
2609
 
statement {
2610
 
  type: INSERT
2611
 
  START_TIMESTAMP
2612
 
  END_TIMESTAMP
2613
 
  insert_header {
2614
 
    table_metadata {
2615
 
      schema_name: "test"
2616
 
      table_name: "t1"
2617
 
    }
2618
 
    field_metadata {
2619
 
      type: INTEGER
2620
 
      name: "a"
2621
 
    }
2622
 
    field_metadata {
2623
 
      type: DATE
2624
 
      name: "b"
2625
 
    }
2626
 
  }
2627
 
  insert_data {
2628
 
    segment_id: 1
2629
 
    end_segment: true
2630
 
    record {
2631
 
      insert_value: "5"
2632
 
      insert_value: ""
2633
 
      is_null: false
2634
 
      is_null: true
2635
 
    }
2636
 
  }
2637
 
}
2638
 
 
2639
 
 
2640
 
 
2641
 
DROP TABLE t1;
2642
 
SET GLOBAL transaction_log_truncate_debug= true;
2643
 
 
2644
 
++ End DATE tests ++
2645
 
++ Begin DATETIME tests ++
2646
 
DROP TABLE IF EXISTS t1;
2647
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b DATETIME, PRIMARY KEY(a));
2648
 
Testing MIN DATETIME
2649
 
INSERT INTO t1 (b) VALUES('0001-01-01 00:00:00');
2650
 
Check transaction_log_entries
2651
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2652
 
COUNT(*)
2653
 
3
2654
 
 
2655
 
Check transaction_log_transactions
2656
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2657
 
COUNT(*)
2658
 
3
2659
 
Check transaction log contents
2660
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2661
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2662
 
transaction_context {
2663
 
  server_id: 1
2664
 
  TRANSACTION_ID
2665
 
  START_TIMESTAMP
2666
 
  END_TIMESTAMP
2667
 
}
2668
 
statement {
2669
 
  type: INSERT
2670
 
  START_TIMESTAMP
2671
 
  END_TIMESTAMP
2672
 
  insert_header {
2673
 
    table_metadata {
2674
 
      schema_name: "test"
2675
 
      table_name: "t1"
2676
 
    }
2677
 
    field_metadata {
2678
 
      type: INTEGER
2679
 
      name: "a"
2680
 
    }
2681
 
    field_metadata {
2682
 
      type: DATETIME
2683
 
      name: "b"
2684
 
    }
2685
 
  }
2686
 
  insert_data {
2687
 
    segment_id: 1
2688
 
    end_segment: true
2689
 
    record {
2690
 
      insert_value: "1"
2691
 
      insert_value: "0001-01-01 00:00:00"
2692
 
      is_null: false
2693
 
      is_null: false
2694
 
    }
2695
 
  }
2696
 
}
2697
 
 
2698
 
 
2699
 
 
2700
 
Testing MAX DATETIME
2701
 
INSERT INTO t1 (b) VALUES('9999-12-31 23:59:59');
2702
 
Check transaction_log_entries
2703
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2704
 
COUNT(*)
2705
 
4
2706
 
 
2707
 
Check transaction_log_transactions
2708
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2709
 
COUNT(*)
2710
 
4
2711
 
Check transaction log contents
2712
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2713
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2714
 
transaction_context {
2715
 
  server_id: 1
2716
 
  TRANSACTION_ID
2717
 
  START_TIMESTAMP
2718
 
  END_TIMESTAMP
2719
 
}
2720
 
statement {
2721
 
  type: INSERT
2722
 
  START_TIMESTAMP
2723
 
  END_TIMESTAMP
2724
 
  insert_header {
2725
 
    table_metadata {
2726
 
      schema_name: "test"
2727
 
      table_name: "t1"
2728
 
    }
2729
 
    field_metadata {
2730
 
      type: INTEGER
2731
 
      name: "a"
2732
 
    }
2733
 
    field_metadata {
2734
 
      type: DATETIME
2735
 
      name: "b"
2736
 
    }
2737
 
  }
2738
 
  insert_data {
2739
 
    segment_id: 1
2740
 
    end_segment: true
2741
 
    record {
2742
 
      insert_value: "2"
2743
 
      insert_value: "9999-12-31 23:59:59"
2744
 
      is_null: false
2745
 
      is_null: false
2746
 
    }
2747
 
  }
2748
 
}
2749
 
 
2750
 
 
2751
 
 
2752
 
Testing MIN-1 DATETIME
2753
 
INSERT INTO t1 (b) VALUES('0000-01-01');
2754
 
ERROR HY000: Received an invalid datetime value '0000-01-01'.
2755
 
Check transaction_log_entries
2756
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2757
 
COUNT(*)
2758
 
4
2759
 
 
2760
 
Check transaction_log_transactions
2761
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2762
 
COUNT(*)
2763
 
4
2764
 
Check transaction log contents
2765
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2766
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2767
 
transaction_context {
2768
 
  server_id: 1
2769
 
  TRANSACTION_ID
2770
 
  START_TIMESTAMP
2771
 
  END_TIMESTAMP
2772
 
}
2773
 
statement {
2774
 
  type: INSERT
2775
 
  START_TIMESTAMP
2776
 
  END_TIMESTAMP
2777
 
  insert_header {
2778
 
    table_metadata {
2779
 
      schema_name: "test"
2780
 
      table_name: "t1"
2781
 
    }
2782
 
    field_metadata {
2783
 
      type: INTEGER
2784
 
      name: "a"
2785
 
    }
2786
 
    field_metadata {
2787
 
      type: DATETIME
2788
 
      name: "b"
2789
 
    }
2790
 
  }
2791
 
  insert_data {
2792
 
    segment_id: 1
2793
 
    end_segment: true
2794
 
    record {
2795
 
      insert_value: "2"
2796
 
      insert_value: "9999-12-31 23:59:59"
2797
 
      is_null: false
2798
 
      is_null: false
2799
 
    }
2800
 
  }
2801
 
}
2802
 
 
2803
 
 
2804
 
 
2805
 
Testing MAX+1 DATETIME
2806
 
INSERT INTO t1 (b) VALUES('10000-01-01');
2807
 
ERROR HY000: Received an invalid datetime value '10000-01-01'.
2808
 
Check transaction_log_entries
2809
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2810
 
COUNT(*)
2811
 
4
2812
 
 
2813
 
Check transaction_log_transactions
2814
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2815
 
COUNT(*)
2816
 
4
2817
 
Check transaction log contents
2818
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2819
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2820
 
transaction_context {
2821
 
  server_id: 1
2822
 
  TRANSACTION_ID
2823
 
  START_TIMESTAMP
2824
 
  END_TIMESTAMP
2825
 
}
2826
 
statement {
2827
 
  type: INSERT
2828
 
  START_TIMESTAMP
2829
 
  END_TIMESTAMP
2830
 
  insert_header {
2831
 
    table_metadata {
2832
 
      schema_name: "test"
2833
 
      table_name: "t1"
2834
 
    }
2835
 
    field_metadata {
2836
 
      type: INTEGER
2837
 
      name: "a"
2838
 
    }
2839
 
    field_metadata {
2840
 
      type: DATETIME
2841
 
      name: "b"
2842
 
    }
2843
 
  }
2844
 
  insert_data {
2845
 
    segment_id: 1
2846
 
    end_segment: true
2847
 
    record {
2848
 
      insert_value: "2"
2849
 
      insert_value: "9999-12-31 23:59:59"
2850
 
      is_null: false
2851
 
      is_null: false
2852
 
    }
2853
 
  }
2854
 
}
2855
 
 
2856
 
 
2857
 
 
2858
 
Testing Alternate input format DATETIME1
2859
 
INSERT INTO t1 (b) VALUES(20000101121559);
2860
 
Check transaction_log_entries
2861
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2862
 
COUNT(*)
2863
 
5
2864
 
 
2865
 
Check transaction_log_transactions
2866
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2867
 
COUNT(*)
2868
 
5
2869
 
Check transaction log contents
2870
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2871
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2872
 
transaction_context {
2873
 
  server_id: 1
2874
 
  TRANSACTION_ID
2875
 
  START_TIMESTAMP
2876
 
  END_TIMESTAMP
2877
 
}
2878
 
statement {
2879
 
  type: INSERT
2880
 
  START_TIMESTAMP
2881
 
  END_TIMESTAMP
2882
 
  insert_header {
2883
 
    table_metadata {
2884
 
      schema_name: "test"
2885
 
      table_name: "t1"
2886
 
    }
2887
 
    field_metadata {
2888
 
      type: INTEGER
2889
 
      name: "a"
2890
 
    }
2891
 
    field_metadata {
2892
 
      type: DATETIME
2893
 
      name: "b"
2894
 
    }
2895
 
  }
2896
 
  insert_data {
2897
 
    segment_id: 1
2898
 
    end_segment: true
2899
 
    record {
2900
 
      insert_value: "3"
2901
 
      insert_value: "2000-01-01 12:15:59"
2902
 
      is_null: false
2903
 
      is_null: false
2904
 
    }
2905
 
  }
2906
 
}
2907
 
 
2908
 
 
2909
 
 
2910
 
Testing Alternate input formate DATETIME2
2911
 
INSERT INTO t1 (b) VALUES('19990601121547');
2912
 
Check transaction_log_entries
2913
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2914
 
COUNT(*)
2915
 
6
2916
 
 
2917
 
Check transaction_log_transactions
2918
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2919
 
COUNT(*)
2920
 
6
2921
 
Check transaction log contents
2922
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2923
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2924
 
transaction_context {
2925
 
  server_id: 1
2926
 
  TRANSACTION_ID
2927
 
  START_TIMESTAMP
2928
 
  END_TIMESTAMP
2929
 
}
2930
 
statement {
2931
 
  type: INSERT
2932
 
  START_TIMESTAMP
2933
 
  END_TIMESTAMP
2934
 
  insert_header {
2935
 
    table_metadata {
2936
 
      schema_name: "test"
2937
 
      table_name: "t1"
2938
 
    }
2939
 
    field_metadata {
2940
 
      type: INTEGER
2941
 
      name: "a"
2942
 
    }
2943
 
    field_metadata {
2944
 
      type: DATETIME
2945
 
      name: "b"
2946
 
    }
2947
 
  }
2948
 
  insert_data {
2949
 
    segment_id: 1
2950
 
    end_segment: true
2951
 
    record {
2952
 
      insert_value: "4"
2953
 
      insert_value: "1999-06-01 12:15:47"
2954
 
      is_null: false
2955
 
      is_null: false
2956
 
    }
2957
 
  }
2958
 
}
2959
 
 
2960
 
 
2961
 
 
2962
 
Testing NULL DATETIME
2963
 
INSERT INTO t1 (b) VALUES(NULL);
2964
 
Check transaction_log_entries
2965
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
2966
 
COUNT(*)
2967
 
7
2968
 
 
2969
 
Check transaction_log_transactions
2970
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
2971
 
COUNT(*)
2972
 
7
2973
 
Check transaction log contents
2974
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
2975
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
2976
 
transaction_context {
2977
 
  server_id: 1
2978
 
  TRANSACTION_ID
2979
 
  START_TIMESTAMP
2980
 
  END_TIMESTAMP
2981
 
}
2982
 
statement {
2983
 
  type: INSERT
2984
 
  START_TIMESTAMP
2985
 
  END_TIMESTAMP
2986
 
  insert_header {
2987
 
    table_metadata {
2988
 
      schema_name: "test"
2989
 
      table_name: "t1"
2990
 
    }
2991
 
    field_metadata {
2992
 
      type: INTEGER
2993
 
      name: "a"
2994
 
    }
2995
 
    field_metadata {
2996
 
      type: DATETIME
2997
 
      name: "b"
2998
 
    }
2999
 
  }
3000
 
  insert_data {
3001
 
    segment_id: 1
3002
 
    end_segment: true
3003
 
    record {
3004
 
      insert_value: "5"
3005
 
      insert_value: ""
3006
 
      is_null: false
3007
 
      is_null: true
3008
 
    }
3009
 
  }
3010
 
}
3011
 
 
3012
 
 
3013
 
 
3014
 
Testing BAD INPUT DATETIME1
3015
 
INSERT INTO t1 (b) VALUES('2000-01-01 25:00:00');
3016
 
ERROR HY000: Received an invalid datetime value '2000-01-01 25:00:00'.
3017
 
Check transaction_log_entries
3018
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3019
 
COUNT(*)
3020
 
7
3021
 
 
3022
 
Check transaction_log_transactions
3023
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3024
 
COUNT(*)
3025
 
7
3026
 
Check transaction log contents
3027
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3028
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3029
 
transaction_context {
3030
 
  server_id: 1
3031
 
  TRANSACTION_ID
3032
 
  START_TIMESTAMP
3033
 
  END_TIMESTAMP
3034
 
}
3035
 
statement {
3036
 
  type: INSERT
3037
 
  START_TIMESTAMP
3038
 
  END_TIMESTAMP
3039
 
  insert_header {
3040
 
    table_metadata {
3041
 
      schema_name: "test"
3042
 
      table_name: "t1"
3043
 
    }
3044
 
    field_metadata {
3045
 
      type: INTEGER
3046
 
      name: "a"
3047
 
    }
3048
 
    field_metadata {
3049
 
      type: DATETIME
3050
 
      name: "b"
3051
 
    }
3052
 
  }
3053
 
  insert_data {
3054
 
    segment_id: 1
3055
 
    end_segment: true
3056
 
    record {
3057
 
      insert_value: "5"
3058
 
      insert_value: ""
3059
 
      is_null: false
3060
 
      is_null: true
3061
 
    }
3062
 
  }
3063
 
}
3064
 
 
3065
 
 
3066
 
 
3067
 
Testing BAD INPUT DATETIME2
3068
 
INSERT INTO t1 (b) VALUES('2000-01-01 12:60:00');
3069
 
ERROR HY000: Received an invalid datetime value '2000-01-01 12:60:00'.
3070
 
Check transaction_log_entries
3071
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3072
 
COUNT(*)
3073
 
7
3074
 
 
3075
 
Check transaction_log_transactions
3076
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3077
 
COUNT(*)
3078
 
7
3079
 
Check transaction log contents
3080
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3081
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3082
 
transaction_context {
3083
 
  server_id: 1
3084
 
  TRANSACTION_ID
3085
 
  START_TIMESTAMP
3086
 
  END_TIMESTAMP
3087
 
}
3088
 
statement {
3089
 
  type: INSERT
3090
 
  START_TIMESTAMP
3091
 
  END_TIMESTAMP
3092
 
  insert_header {
3093
 
    table_metadata {
3094
 
      schema_name: "test"
3095
 
      table_name: "t1"
3096
 
    }
3097
 
    field_metadata {
3098
 
      type: INTEGER
3099
 
      name: "a"
3100
 
    }
3101
 
    field_metadata {
3102
 
      type: DATETIME
3103
 
      name: "b"
3104
 
    }
3105
 
  }
3106
 
  insert_data {
3107
 
    segment_id: 1
3108
 
    end_segment: true
3109
 
    record {
3110
 
      insert_value: "5"
3111
 
      insert_value: ""
3112
 
      is_null: false
3113
 
      is_null: true
3114
 
    }
3115
 
  }
3116
 
}
3117
 
 
3118
 
 
3119
 
 
3120
 
Testing BAD INPUT DATETIME3
3121
 
INSERT INTO t1 (b) VALUES('2000-01-01 12:00:70');
3122
 
ERROR HY000: Received an invalid datetime value '2000-01-01 12:00:70'.
3123
 
Check transaction_log_entries
3124
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3125
 
COUNT(*)
3126
 
7
3127
 
 
3128
 
Check transaction_log_transactions
3129
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3130
 
COUNT(*)
3131
 
7
3132
 
Check transaction log contents
3133
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3134
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3135
 
transaction_context {
3136
 
  server_id: 1
3137
 
  TRANSACTION_ID
3138
 
  START_TIMESTAMP
3139
 
  END_TIMESTAMP
3140
 
}
3141
 
statement {
3142
 
  type: INSERT
3143
 
  START_TIMESTAMP
3144
 
  END_TIMESTAMP
3145
 
  insert_header {
3146
 
    table_metadata {
3147
 
      schema_name: "test"
3148
 
      table_name: "t1"
3149
 
    }
3150
 
    field_metadata {
3151
 
      type: INTEGER
3152
 
      name: "a"
3153
 
    }
3154
 
    field_metadata {
3155
 
      type: DATETIME
3156
 
      name: "b"
3157
 
    }
3158
 
  }
3159
 
  insert_data {
3160
 
    segment_id: 1
3161
 
    end_segment: true
3162
 
    record {
3163
 
      insert_value: "5"
3164
 
      insert_value: ""
3165
 
      is_null: false
3166
 
      is_null: true
3167
 
    }
3168
 
  }
3169
 
}
3170
 
 
3171
 
 
3172
 
 
3173
 
DROP TABLE t1;
3174
 
SET GLOBAL transaction_log_truncate_debug= true;
3175
 
 
3176
 
++ End DATETIME tests ++
3177
 
++ Begin TIMESTAMP tests ++
3178
 
DROP TABLE IF EXISTS t1;
3179
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b TIMESTAMP, PRIMARY KEY(a));
3180
 
Testing MIN TIMESTAMP
3181
 
INSERT INTO t1 (b) VALUES('1970-01-01 00:00:00');
3182
 
Check transaction_log_entries
3183
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3184
 
COUNT(*)
3185
 
3
3186
 
 
3187
 
Check transaction_log_transactions
3188
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3189
 
COUNT(*)
3190
 
3
3191
 
Check transaction log contents
3192
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3193
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3194
 
transaction_context {
3195
 
  server_id: 1
3196
 
  TRANSACTION_ID
3197
 
  START_TIMESTAMP
3198
 
  END_TIMESTAMP
3199
 
}
3200
 
statement {
3201
 
  type: INSERT
3202
 
  START_TIMESTAMP
3203
 
  END_TIMESTAMP
3204
 
  insert_header {
3205
 
    table_metadata {
3206
 
      schema_name: "test"
3207
 
      table_name: "t1"
3208
 
    }
3209
 
    field_metadata {
3210
 
      type: INTEGER
3211
 
      name: "a"
3212
 
    }
3213
 
    field_metadata {
3214
 
      type: TIMESTAMP
3215
 
      name: "b"
3216
 
    }
3217
 
  }
3218
 
  insert_data {
3219
 
    segment_id: 1
3220
 
    end_segment: true
3221
 
    record {
3222
 
      insert_value: "1"
3223
 
      insert_value: "1970-01-01 00:00:00"
3224
 
      is_null: false
3225
 
      is_null: false
3226
 
    }
3227
 
  }
3228
 
}
3229
 
 
3230
 
 
3231
 
 
3232
 
Testing MAX TIMESTAMP
3233
 
INSERT INTO t1 (b) VALUES('2038-01-19 03:14:07');
3234
 
Check transaction_log_entries
3235
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3236
 
COUNT(*)
3237
 
4
3238
 
 
3239
 
Check transaction_log_transactions
3240
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3241
 
COUNT(*)
3242
 
4
3243
 
Check transaction log contents
3244
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3245
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3246
 
transaction_context {
3247
 
  server_id: 1
3248
 
  TRANSACTION_ID
3249
 
  START_TIMESTAMP
3250
 
  END_TIMESTAMP
3251
 
}
3252
 
statement {
3253
 
  type: INSERT
3254
 
  START_TIMESTAMP
3255
 
  END_TIMESTAMP
3256
 
  insert_header {
3257
 
    table_metadata {
3258
 
      schema_name: "test"
3259
 
      table_name: "t1"
3260
 
    }
3261
 
    field_metadata {
3262
 
      type: INTEGER
3263
 
      name: "a"
3264
 
    }
3265
 
    field_metadata {
3266
 
      type: TIMESTAMP
3267
 
      name: "b"
3268
 
    }
3269
 
  }
3270
 
  insert_data {
3271
 
    segment_id: 1
3272
 
    end_segment: true
3273
 
    record {
3274
 
      insert_value: "2"
3275
 
      insert_value: "2038-01-19 03:14:07"
3276
 
      is_null: false
3277
 
      is_null: false
3278
 
    }
3279
 
  }
3280
 
}
3281
 
 
3282
 
 
3283
 
 
3284
 
Testing MIN-1 TIMESTAMP
3285
 
INSERT INTO t1 (b) VALUES('1969-12-31 23:59:59');
3286
 
ERROR HY000: Received an invalid value '1969-12-31 23:59:59' for a UNIX timestamp.
3287
 
Check transaction_log_entries
3288
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3289
 
COUNT(*)
3290
 
4
3291
 
 
3292
 
Check transaction_log_transactions
3293
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3294
 
COUNT(*)
3295
 
4
3296
 
Check transaction log contents
3297
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3298
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3299
 
transaction_context {
3300
 
  server_id: 1
3301
 
  TRANSACTION_ID
3302
 
  START_TIMESTAMP
3303
 
  END_TIMESTAMP
3304
 
}
3305
 
statement {
3306
 
  type: INSERT
3307
 
  START_TIMESTAMP
3308
 
  END_TIMESTAMP
3309
 
  insert_header {
3310
 
    table_metadata {
3311
 
      schema_name: "test"
3312
 
      table_name: "t1"
3313
 
    }
3314
 
    field_metadata {
3315
 
      type: INTEGER
3316
 
      name: "a"
3317
 
    }
3318
 
    field_metadata {
3319
 
      type: TIMESTAMP
3320
 
      name: "b"
3321
 
    }
3322
 
  }
3323
 
  insert_data {
3324
 
    segment_id: 1
3325
 
    end_segment: true
3326
 
    record {
3327
 
      insert_value: "2"
3328
 
      insert_value: "2038-01-19 03:14:07"
3329
 
      is_null: false
3330
 
      is_null: false
3331
 
    }
3332
 
  }
3333
 
}
3334
 
 
3335
 
 
3336
 
 
3337
 
Testing MAX+1 TIMESTAMP
3338
 
INSERT INTO t1 (b) VALUES('2038-01-19 03:14:08');
3339
 
ERROR HY000: Received an invalid value '2038-01-19 03:14:08' for a UNIX timestamp.
3340
 
Check transaction_log_entries
3341
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3342
 
COUNT(*)
3343
 
4
3344
 
 
3345
 
Check transaction_log_transactions
3346
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3347
 
COUNT(*)
3348
 
4
3349
 
Check transaction log contents
3350
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3351
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3352
 
transaction_context {
3353
 
  server_id: 1
3354
 
  TRANSACTION_ID
3355
 
  START_TIMESTAMP
3356
 
  END_TIMESTAMP
3357
 
}
3358
 
statement {
3359
 
  type: INSERT
3360
 
  START_TIMESTAMP
3361
 
  END_TIMESTAMP
3362
 
  insert_header {
3363
 
    table_metadata {
3364
 
      schema_name: "test"
3365
 
      table_name: "t1"
3366
 
    }
3367
 
    field_metadata {
3368
 
      type: INTEGER
3369
 
      name: "a"
3370
 
    }
3371
 
    field_metadata {
3372
 
      type: TIMESTAMP
3373
 
      name: "b"
3374
 
    }
3375
 
  }
3376
 
  insert_data {
3377
 
    segment_id: 1
3378
 
    end_segment: true
3379
 
    record {
3380
 
      insert_value: "2"
3381
 
      insert_value: "2038-01-19 03:14:07"
3382
 
      is_null: false
3383
 
      is_null: false
3384
 
    }
3385
 
  }
3386
 
}
3387
 
 
3388
 
 
3389
 
 
3390
 
Testing Alternate input format TIMESTAMP1
3391
 
INSERT INTO t1 (b) VALUES(20000101121559);
3392
 
Check transaction_log_entries
3393
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3394
 
COUNT(*)
3395
 
5
3396
 
 
3397
 
Check transaction_log_transactions
3398
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3399
 
COUNT(*)
3400
 
5
3401
 
Check transaction log contents
3402
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3403
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3404
 
transaction_context {
3405
 
  server_id: 1
3406
 
  TRANSACTION_ID
3407
 
  START_TIMESTAMP
3408
 
  END_TIMESTAMP
3409
 
}
3410
 
statement {
3411
 
  type: INSERT
3412
 
  START_TIMESTAMP
3413
 
  END_TIMESTAMP
3414
 
  insert_header {
3415
 
    table_metadata {
3416
 
      schema_name: "test"
3417
 
      table_name: "t1"
3418
 
    }
3419
 
    field_metadata {
3420
 
      type: INTEGER
3421
 
      name: "a"
3422
 
    }
3423
 
    field_metadata {
3424
 
      type: TIMESTAMP
3425
 
      name: "b"
3426
 
    }
3427
 
  }
3428
 
  insert_data {
3429
 
    segment_id: 1
3430
 
    end_segment: true
3431
 
    record {
3432
 
      insert_value: "3"
3433
 
      insert_value: "2000-01-01 12:15:59"
3434
 
      is_null: false
3435
 
      is_null: false
3436
 
    }
3437
 
  }
3438
 
}
3439
 
 
3440
 
 
3441
 
 
3442
 
Testing Alternate input formate TIMESTAMP2
3443
 
INSERT INTO t1 (b) VALUES(19990601121547);
3444
 
Check transaction_log_entries
3445
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3446
 
COUNT(*)
3447
 
6
3448
 
 
3449
 
Check transaction_log_transactions
3450
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3451
 
COUNT(*)
3452
 
6
3453
 
Check transaction log contents
3454
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3455
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3456
 
transaction_context {
3457
 
  server_id: 1
3458
 
  TRANSACTION_ID
3459
 
  START_TIMESTAMP
3460
 
  END_TIMESTAMP
3461
 
}
3462
 
statement {
3463
 
  type: INSERT
3464
 
  START_TIMESTAMP
3465
 
  END_TIMESTAMP
3466
 
  insert_header {
3467
 
    table_metadata {
3468
 
      schema_name: "test"
3469
 
      table_name: "t1"
3470
 
    }
3471
 
    field_metadata {
3472
 
      type: INTEGER
3473
 
      name: "a"
3474
 
    }
3475
 
    field_metadata {
3476
 
      type: TIMESTAMP
3477
 
      name: "b"
3478
 
    }
3479
 
  }
3480
 
  insert_data {
3481
 
    segment_id: 1
3482
 
    end_segment: true
3483
 
    record {
3484
 
      insert_value: "4"
3485
 
      insert_value: "1999-06-01 12:15:47"
3486
 
      is_null: false
3487
 
      is_null: false
3488
 
    }
3489
 
  }
3490
 
}
3491
 
 
3492
 
 
3493
 
 
3494
 
Testing NULL TIMESTAMP
3495
 
INSERT INTO t1 (b) VALUES(NULL);
3496
 
Check transaction_log_entries
3497
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3498
 
COUNT(*)
3499
 
7
3500
 
 
3501
 
Check transaction_log_transactions
3502
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3503
 
COUNT(*)
3504
 
7
3505
 
Check transaction log contents
3506
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3507
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3508
 
transaction_context {
3509
 
  server_id: 1
3510
 
  TRANSACTION_ID
3511
 
  START_TIMESTAMP
3512
 
  END_TIMESTAMP
3513
 
}
3514
 
statement {
3515
 
  type: INSERT
3516
 
  START_TIMESTAMP
3517
 
  END_TIMESTAMP
3518
 
  insert_header {
3519
 
    table_metadata {
3520
 
      schema_name: "test"
3521
 
      table_name: "t1"
3522
 
    }
3523
 
    field_metadata {
3524
 
      type: INTEGER
3525
 
      name: "a"
3526
 
    }
3527
 
    field_metadata {
3528
 
      type: TIMESTAMP
3529
 
      name: "b"
3530
 
    }
3531
 
  }
3532
 
  insert_data {
3533
 
    segment_id: 1
3534
 
    end_segment: true
3535
 
    record {
3536
 
      insert_value: "5"
3537
 
      insert_value: ""
3538
 
      is_null: false
3539
 
      is_null: true
3540
 
    }
3541
 
  }
3542
 
}
3543
 
 
3544
 
 
3545
 
 
3546
 
Testing BAD INPUT TIMESTAMP1
3547
 
INSERT INTO t1 (b) VALUES('2000-01-01 25:00:00');
3548
 
ERROR HY000: Received an invalid value '2000-01-01 25:00:00' for a UNIX timestamp.
3549
 
Check transaction_log_entries
3550
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3551
 
COUNT(*)
3552
 
7
3553
 
 
3554
 
Check transaction_log_transactions
3555
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3556
 
COUNT(*)
3557
 
7
3558
 
Check transaction log contents
3559
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3560
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3561
 
transaction_context {
3562
 
  server_id: 1
3563
 
  TRANSACTION_ID
3564
 
  START_TIMESTAMP
3565
 
  END_TIMESTAMP
3566
 
}
3567
 
statement {
3568
 
  type: INSERT
3569
 
  START_TIMESTAMP
3570
 
  END_TIMESTAMP
3571
 
  insert_header {
3572
 
    table_metadata {
3573
 
      schema_name: "test"
3574
 
      table_name: "t1"
3575
 
    }
3576
 
    field_metadata {
3577
 
      type: INTEGER
3578
 
      name: "a"
3579
 
    }
3580
 
    field_metadata {
3581
 
      type: TIMESTAMP
3582
 
      name: "b"
3583
 
    }
3584
 
  }
3585
 
  insert_data {
3586
 
    segment_id: 1
3587
 
    end_segment: true
3588
 
    record {
3589
 
      insert_value: "5"
3590
 
      insert_value: ""
3591
 
      is_null: false
3592
 
      is_null: true
3593
 
    }
3594
 
  }
3595
 
}
3596
 
 
3597
 
 
3598
 
 
3599
 
Testing BAD INPUT TIMESTAMP2
3600
 
INSERT INTO t1 (b) VALUES('2000-01-01 12:60:00');
3601
 
ERROR HY000: Received an invalid value '2000-01-01 12:60:00' for a UNIX timestamp.
3602
 
Check transaction_log_entries
3603
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3604
 
COUNT(*)
3605
 
7
3606
 
 
3607
 
Check transaction_log_transactions
3608
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3609
 
COUNT(*)
3610
 
7
3611
 
Check transaction log contents
3612
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3613
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3614
 
transaction_context {
3615
 
  server_id: 1
3616
 
  TRANSACTION_ID
3617
 
  START_TIMESTAMP
3618
 
  END_TIMESTAMP
3619
 
}
3620
 
statement {
3621
 
  type: INSERT
3622
 
  START_TIMESTAMP
3623
 
  END_TIMESTAMP
3624
 
  insert_header {
3625
 
    table_metadata {
3626
 
      schema_name: "test"
3627
 
      table_name: "t1"
3628
 
    }
3629
 
    field_metadata {
3630
 
      type: INTEGER
3631
 
      name: "a"
3632
 
    }
3633
 
    field_metadata {
3634
 
      type: TIMESTAMP
3635
 
      name: "b"
3636
 
    }
3637
 
  }
3638
 
  insert_data {
3639
 
    segment_id: 1
3640
 
    end_segment: true
3641
 
    record {
3642
 
      insert_value: "5"
3643
 
      insert_value: ""
3644
 
      is_null: false
3645
 
      is_null: true
3646
 
    }
3647
 
  }
3648
 
}
3649
 
 
3650
 
 
3651
 
 
3652
 
Testing BAD INPUT TIMESTAMP3
3653
 
INSERT INTO t1 (b) VALUES('2000-01-01 12:00:65');
3654
 
ERROR HY000: Received an invalid value '2000-01-01 12:00:65' for a UNIX timestamp.
3655
 
Check transaction_log_entries
3656
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3657
 
COUNT(*)
3658
 
7
3659
 
 
3660
 
Check transaction_log_transactions
3661
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3662
 
COUNT(*)
3663
 
7
3664
 
Check transaction log contents
3665
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3666
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3667
 
transaction_context {
3668
 
  server_id: 1
3669
 
  TRANSACTION_ID
3670
 
  START_TIMESTAMP
3671
 
  END_TIMESTAMP
3672
 
}
3673
 
statement {
3674
 
  type: INSERT
3675
 
  START_TIMESTAMP
3676
 
  END_TIMESTAMP
3677
 
  insert_header {
3678
 
    table_metadata {
3679
 
      schema_name: "test"
3680
 
      table_name: "t1"
3681
 
    }
3682
 
    field_metadata {
3683
 
      type: INTEGER
3684
 
      name: "a"
3685
 
    }
3686
 
    field_metadata {
3687
 
      type: TIMESTAMP
3688
 
      name: "b"
3689
 
    }
3690
 
  }
3691
 
  insert_data {
3692
 
    segment_id: 1
3693
 
    end_segment: true
3694
 
    record {
3695
 
      insert_value: "5"
3696
 
      insert_value: ""
3697
 
      is_null: false
3698
 
      is_null: true
3699
 
    }
3700
 
  }
3701
 
}
3702
 
 
3703
 
 
3704
 
 
3705
 
DROP TABLE t1;
3706
 
SET GLOBAL transaction_log_truncate_debug= true;
3707
 
 
3708
 
++ End TIMESTAMP tests ++
3709
 
++ Begin BLOB simple tests ++
3710
 
DROP TABLE IF EXISTS t1;
3711
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b BLOB, PRIMARY KEY(a));
3712
 
Testing BLOB simple1
3713
 
INSERT INTO t1 (b) VALUES("This is a string that will go into a BLOB column.  Let's see how it works");
3714
 
Check transaction_log_entries
3715
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3716
 
COUNT(*)
3717
 
3
3718
 
 
3719
 
Check transaction_log_transactions
3720
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3721
 
COUNT(*)
3722
 
3
3723
 
Check transaction log contents
3724
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3725
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3726
 
transaction_context {
3727
 
  server_id: 1
3728
 
  TRANSACTION_ID
3729
 
  START_TIMESTAMP
3730
 
  END_TIMESTAMP
3731
 
}
3732
 
statement {
3733
 
  type: INSERT
3734
 
  START_TIMESTAMP
3735
 
  END_TIMESTAMP
3736
 
  insert_header {
3737
 
    table_metadata {
3738
 
      schema_name: "test"
3739
 
      table_name: "t1"
3740
 
    }
3741
 
    field_metadata {
3742
 
      type: INTEGER
3743
 
      name: "a"
3744
 
    }
3745
 
    field_metadata {
3746
 
      type: BLOB
3747
 
      name: "b"
3748
 
    }
3749
 
  }
3750
 
  insert_data {
3751
 
    segment_id: 1
3752
 
    end_segment: true
3753
 
    record {
3754
 
      insert_value: "1"
3755
 
      insert_value: "This is a string that will go into a BLOB column.  Let\'s see how it works"
3756
 
      is_null: false
3757
 
      is_null: false
3758
 
    }
3759
 
  }
3760
 
}
3761
 
 
3762
 
 
3763
 
 
3764
 
Testing BLOB simple2
3765
 
INSERT INTO t1 (b) VALUES("this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string");
3766
 
Check transaction_log_entries
3767
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3768
 
COUNT(*)
3769
 
4
3770
 
 
3771
 
Check transaction_log_transactions
3772
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3773
 
COUNT(*)
3774
 
4
3775
 
Check transaction log contents
3776
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3777
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3778
 
transaction_context {
3779
 
  server_id: 1
3780
 
  TRANSACTION_ID
3781
 
  START_TIMESTAMP
3782
 
  END_TIMESTAMP
3783
 
}
3784
 
statement {
3785
 
  type: INSERT
3786
 
  START_TIMESTAMP
3787
 
  END_TIMESTAMP
3788
 
  insert_header {
3789
 
    table_metadata {
3790
 
      schema_name: "test"
3791
 
      table_name: "t1"
3792
 
    }
3793
 
    field_metadata {
3794
 
      type: INTEGER
3795
 
      name: "a"
3796
 
    }
3797
 
    field_metadata {
3798
 
      type: BLOB
3799
 
      name: "b"
3800
 
    }
3801
 
  }
3802
 
  insert_data {
3803
 
    segment_id: 1
3804
 
    end_segment: true
3805
 
    record {
3806
 
      insert_value: "2"
3807
 
      insert_value: "this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string this_is_a_longish_string"
3808
 
      is_null: false
3809
 
      is_null: false
3810
 
    }
3811
 
  }
3812
 
}
3813
 
 
3814
 
 
3815
 
 
3816
 
Testing NULL BLOB simple
3817
 
INSERT INTO t1 (b) VALUES(NULL);
3818
 
Check transaction_log_entries
3819
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3820
 
COUNT(*)
3821
 
5
3822
 
 
3823
 
Check transaction_log_transactions
3824
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3825
 
COUNT(*)
3826
 
5
3827
 
Check transaction log contents
3828
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3829
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3830
 
transaction_context {
3831
 
  server_id: 1
3832
 
  TRANSACTION_ID
3833
 
  START_TIMESTAMP
3834
 
  END_TIMESTAMP
3835
 
}
3836
 
statement {
3837
 
  type: INSERT
3838
 
  START_TIMESTAMP
3839
 
  END_TIMESTAMP
3840
 
  insert_header {
3841
 
    table_metadata {
3842
 
      schema_name: "test"
3843
 
      table_name: "t1"
3844
 
    }
3845
 
    field_metadata {
3846
 
      type: INTEGER
3847
 
      name: "a"
3848
 
    }
3849
 
    field_metadata {
3850
 
      type: BLOB
3851
 
      name: "b"
3852
 
    }
3853
 
  }
3854
 
  insert_data {
3855
 
    segment_id: 1
3856
 
    end_segment: true
3857
 
    record {
3858
 
      insert_value: "3"
3859
 
      insert_value: ""
3860
 
      is_null: false
3861
 
      is_null: true
3862
 
    }
3863
 
  }
3864
 
}
3865
 
 
3866
 
 
3867
 
 
3868
 
Testing INPUT BLOB simple1
3869
 
INSERT INTO t1 (b) VALUES(100);
3870
 
Check transaction_log_entries
3871
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3872
 
COUNT(*)
3873
 
6
3874
 
 
3875
 
Check transaction_log_transactions
3876
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3877
 
COUNT(*)
3878
 
6
3879
 
Check transaction log contents
3880
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3881
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3882
 
transaction_context {
3883
 
  server_id: 1
3884
 
  TRANSACTION_ID
3885
 
  START_TIMESTAMP
3886
 
  END_TIMESTAMP
3887
 
}
3888
 
statement {
3889
 
  type: INSERT
3890
 
  START_TIMESTAMP
3891
 
  END_TIMESTAMP
3892
 
  insert_header {
3893
 
    table_metadata {
3894
 
      schema_name: "test"
3895
 
      table_name: "t1"
3896
 
    }
3897
 
    field_metadata {
3898
 
      type: INTEGER
3899
 
      name: "a"
3900
 
    }
3901
 
    field_metadata {
3902
 
      type: BLOB
3903
 
      name: "b"
3904
 
    }
3905
 
  }
3906
 
  insert_data {
3907
 
    segment_id: 1
3908
 
    end_segment: true
3909
 
    record {
3910
 
      insert_value: "4"
3911
 
      insert_value: "100"
3912
 
      is_null: false
3913
 
      is_null: false
3914
 
    }
3915
 
  }
3916
 
}
3917
 
 
3918
 
 
3919
 
 
3920
 
Testing INPUT BLOB simple2
3921
 
INSERT INTO t1 (b) VALUES("");
3922
 
Check transaction_log_entries
3923
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3924
 
COUNT(*)
3925
 
7
3926
 
 
3927
 
Check transaction_log_transactions
3928
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3929
 
COUNT(*)
3930
 
7
3931
 
Check transaction log contents
3932
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3933
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3934
 
transaction_context {
3935
 
  server_id: 1
3936
 
  TRANSACTION_ID
3937
 
  START_TIMESTAMP
3938
 
  END_TIMESTAMP
3939
 
}
3940
 
statement {
3941
 
  type: INSERT
3942
 
  START_TIMESTAMP
3943
 
  END_TIMESTAMP
3944
 
  insert_header {
3945
 
    table_metadata {
3946
 
      schema_name: "test"
3947
 
      table_name: "t1"
3948
 
    }
3949
 
    field_metadata {
3950
 
      type: INTEGER
3951
 
      name: "a"
3952
 
    }
3953
 
    field_metadata {
3954
 
      type: BLOB
3955
 
      name: "b"
3956
 
    }
3957
 
  }
3958
 
  insert_data {
3959
 
    segment_id: 1
3960
 
    end_segment: true
3961
 
    record {
3962
 
      insert_value: "5"
3963
 
      insert_value: ""
3964
 
      is_null: false
3965
 
      is_null: false
3966
 
    }
3967
 
  }
3968
 
}
3969
 
 
3970
 
 
3971
 
 
3972
 
Testing INPUT BLOB simple3
3973
 
INSERT INTO t1 (b) VALUES('2000-01-01 12:00:70');
3974
 
Check transaction_log_entries
3975
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
3976
 
COUNT(*)
3977
 
8
3978
 
 
3979
 
Check transaction_log_transactions
3980
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
3981
 
COUNT(*)
3982
 
8
3983
 
Check transaction log contents
3984
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
3985
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
3986
 
transaction_context {
3987
 
  server_id: 1
3988
 
  TRANSACTION_ID
3989
 
  START_TIMESTAMP
3990
 
  END_TIMESTAMP
3991
 
}
3992
 
statement {
3993
 
  type: INSERT
3994
 
  START_TIMESTAMP
3995
 
  END_TIMESTAMP
3996
 
  insert_header {
3997
 
    table_metadata {
3998
 
      schema_name: "test"
3999
 
      table_name: "t1"
4000
 
    }
4001
 
    field_metadata {
4002
 
      type: INTEGER
4003
 
      name: "a"
4004
 
    }
4005
 
    field_metadata {
4006
 
      type: BLOB
4007
 
      name: "b"
4008
 
    }
4009
 
  }
4010
 
  insert_data {
4011
 
    segment_id: 1
4012
 
    end_segment: true
4013
 
    record {
4014
 
      insert_value: "6"
4015
 
      insert_value: "2000-01-01 12:00:70"
4016
 
      is_null: false
4017
 
      is_null: false
4018
 
    }
4019
 
  }
4020
 
}
4021
 
 
4022
 
 
4023
 
 
4024
 
DROP TABLE t1;
4025
 
SET GLOBAL transaction_log_truncate_debug= true;
4026
 
 
4027
 
# Bug#594873 - transaction log incorrectly records NULL INSERT into an ENUM as the first permissible value
4028
 
DROP TABLE IF EXISTS t1;
4029
 
CREATE TABLE t1 (a INT NOT NULL, b ENUM ('1','2'), PRIMARY KEY(a));
4030
 
INSERT INTO t1 VALUES (1,NULL);
4031
 
We check how the NULL was recorded
4032
 
Check transaction_log_entries
4033
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4034
 
COUNT(*)
4035
 
3
4036
 
 
4037
 
Check transaction_log_transactions
4038
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4039
 
COUNT(*)
4040
 
3
4041
 
Check transaction log contents
4042
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4043
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4044
 
transaction_context {
4045
 
  server_id: 1
4046
 
  TRANSACTION_ID
4047
 
  START_TIMESTAMP
4048
 
  END_TIMESTAMP
4049
 
}
4050
 
statement {
4051
 
  type: INSERT
4052
 
  START_TIMESTAMP
4053
 
  END_TIMESTAMP
4054
 
  insert_header {
4055
 
    table_metadata {
4056
 
      schema_name: "test"
4057
 
      table_name: "t1"
4058
 
    }
4059
 
    field_metadata {
4060
 
      type: INTEGER
4061
 
      name: "a"
4062
 
    }
4063
 
    field_metadata {
4064
 
      type: ENUM
4065
 
      name: "b"
4066
 
    }
4067
 
  }
4068
 
  insert_data {
4069
 
    segment_id: 1
4070
 
    end_segment: true
4071
 
    record {
4072
 
      insert_value: "1"
4073
 
      insert_value: ""
4074
 
      is_null: false
4075
 
      is_null: true
4076
 
    }
4077
 
  }
4078
 
}
4079
 
 
4080
 
 
4081
 
DROP TABLE t1;
4082
 
SET GLOBAL transaction_log_truncate_debug= true;
4083
 
#Bug#594876 - transaction log not diffentiating NULL values and empty string for char columns
4084
 
DROP TABLE IF EXISTS t1;
4085
 
CREATE TABLE t1 (a INT NOT NULL, b CHAR(1000), PRIMARY KEY (a));
4086
 
INSERT INTO t1 VALUES (1,NULL);
4087
 
We check how the NULL was recorded in the log 
4088
 
Check transaction_log_entries
4089
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4090
 
COUNT(*)
4091
 
3
4092
 
 
4093
 
Check transaction_log_transactions
4094
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4095
 
COUNT(*)
4096
 
3
4097
 
Check transaction log contents
4098
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4099
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4100
 
transaction_context {
4101
 
  server_id: 1
4102
 
  TRANSACTION_ID
4103
 
  START_TIMESTAMP
4104
 
  END_TIMESTAMP
4105
 
}
4106
 
statement {
4107
 
  type: INSERT
4108
 
  START_TIMESTAMP
4109
 
  END_TIMESTAMP
4110
 
  insert_header {
4111
 
    table_metadata {
4112
 
      schema_name: "test"
4113
 
      table_name: "t1"
4114
 
    }
4115
 
    field_metadata {
4116
 
      type: INTEGER
4117
 
      name: "a"
4118
 
    }
4119
 
    field_metadata {
4120
 
      type: VARCHAR
4121
 
      name: "b"
4122
 
    }
4123
 
  }
4124
 
  insert_data {
4125
 
    segment_id: 1
4126
 
    end_segment: true
4127
 
    record {
4128
 
      insert_value: "1"
4129
 
      insert_value: ""
4130
 
      is_null: false
4131
 
      is_null: true
4132
 
    }
4133
 
  }
4134
 
}
4135
 
 
4136
 
 
4137
 
INSERT INTO t1 VALUES (2,"");
4138
 
We check how the empty string was recorded in the log 
4139
 
Check transaction_log_entries
4140
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4141
 
COUNT(*)
4142
 
4
4143
 
 
4144
 
Check transaction_log_transactions
4145
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4146
 
COUNT(*)
4147
 
4
4148
 
Check transaction log contents
4149
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4150
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4151
 
transaction_context {
4152
 
  server_id: 1
4153
 
  TRANSACTION_ID
4154
 
  START_TIMESTAMP
4155
 
  END_TIMESTAMP
4156
 
}
4157
 
statement {
4158
 
  type: INSERT
4159
 
  START_TIMESTAMP
4160
 
  END_TIMESTAMP
4161
 
  insert_header {
4162
 
    table_metadata {
4163
 
      schema_name: "test"
4164
 
      table_name: "t1"
4165
 
    }
4166
 
    field_metadata {
4167
 
      type: INTEGER
4168
 
      name: "a"
4169
 
    }
4170
 
    field_metadata {
4171
 
      type: VARCHAR
4172
 
      name: "b"
4173
 
    }
4174
 
  }
4175
 
  insert_data {
4176
 
    segment_id: 1
4177
 
    end_segment: true
4178
 
    record {
4179
 
      insert_value: "2"
4180
 
      insert_value: ""
4181
 
      is_null: false
4182
 
      is_null: false
4183
 
    }
4184
 
  }
4185
 
}
4186
 
 
4187
 
 
4188
 
DROP TABLE t1;
4189
 
SET GLOBAL transaction_log_truncate_debug= true;
4190
 
**** BEGIN LARGE DATA TYPE TESTS ****
4191
 
Testing Large DECIMAL1 
4192
 
DROP TABLE IF EXISTS t1;
4193
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b DECIMAL(65,00), PRIMARY KEY(a));
4194
 
INSERT INTO t1 (b) VALUES (99999999999999999999999999999999999999999999999999999999999999999);
4195
 
Check transaction_log_entries
4196
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4197
 
COUNT(*)
4198
 
3
4199
 
 
4200
 
Check transaction_log_transactions
4201
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4202
 
COUNT(*)
4203
 
3
4204
 
Check transaction log contents
4205
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4206
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4207
 
transaction_context {
4208
 
  server_id: 1
4209
 
  TRANSACTION_ID
4210
 
  START_TIMESTAMP
4211
 
  END_TIMESTAMP
4212
 
}
4213
 
statement {
4214
 
  type: INSERT
4215
 
  START_TIMESTAMP
4216
 
  END_TIMESTAMP
4217
 
  insert_header {
4218
 
    table_metadata {
4219
 
      schema_name: "test"
4220
 
      table_name: "t1"
4221
 
    }
4222
 
    field_metadata {
4223
 
      type: INTEGER
4224
 
      name: "a"
4225
 
    }
4226
 
    field_metadata {
4227
 
      type: DECIMAL
4228
 
      name: "b"
4229
 
    }
4230
 
  }
4231
 
  insert_data {
4232
 
    segment_id: 1
4233
 
    end_segment: true
4234
 
    record {
4235
 
      insert_value: "1"
4236
 
      insert_value: "99999999999999999999999999999999999999999999999999999999999999999"
4237
 
      is_null: false
4238
 
      is_null: false
4239
 
    }
4240
 
  }
4241
 
}
4242
 
 
4243
 
 
4244
 
 
4245
 
Testing MAX DECIMAL + 1
4246
 
INSERT INTO t1 (b) VALUES (999999999999999999999999999999999999999999999999999999999999999990);
4247
 
ERROR 22003: Out of range value for column 'b' at row 1
4248
 
Check transaction_log_entries
4249
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4250
 
COUNT(*)
4251
 
3
4252
 
 
4253
 
Check transaction_log_transactions
4254
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4255
 
COUNT(*)
4256
 
3
4257
 
Check transaction log contents
4258
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4259
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4260
 
transaction_context {
4261
 
  server_id: 1
4262
 
  TRANSACTION_ID
4263
 
  START_TIMESTAMP
4264
 
  END_TIMESTAMP
4265
 
}
4266
 
statement {
4267
 
  type: INSERT
4268
 
  START_TIMESTAMP
4269
 
  END_TIMESTAMP
4270
 
  insert_header {
4271
 
    table_metadata {
4272
 
      schema_name: "test"
4273
 
      table_name: "t1"
4274
 
    }
4275
 
    field_metadata {
4276
 
      type: INTEGER
4277
 
      name: "a"
4278
 
    }
4279
 
    field_metadata {
4280
 
      type: DECIMAL
4281
 
      name: "b"
4282
 
    }
4283
 
  }
4284
 
  insert_data {
4285
 
    segment_id: 1
4286
 
    end_segment: true
4287
 
    record {
4288
 
      insert_value: "1"
4289
 
      insert_value: "99999999999999999999999999999999999999999999999999999999999999999"
4290
 
      is_null: false
4291
 
      is_null: false
4292
 
    }
4293
 
  }
4294
 
}
4295
 
 
4296
 
 
4297
 
 
4298
 
SELECT * FROM t1;
4299
 
a       b
4300
 
1       99999999999999999999999999999999999999999999999999999999999999999
4301
 
DROP TABLE t1;
4302
 
SET GLOBAL transaction_log_truncate_debug= true;
4303
 
Testing Large DECIMAL2 
4304
 
DROP TABLE IF EXISTS t1;
4305
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b DECIMAL(65,30), PRIMARY KEY(a));
4306
 
INSERT INTO t1 (b) VALUES (999999999999999);
4307
 
Check transaction_log_entries
4308
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4309
 
COUNT(*)
4310
 
3
4311
 
 
4312
 
Check transaction_log_transactions
4313
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4314
 
COUNT(*)
4315
 
3
4316
 
Check transaction log contents
4317
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4318
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4319
 
transaction_context {
4320
 
  server_id: 1
4321
 
  TRANSACTION_ID
4322
 
  START_TIMESTAMP
4323
 
  END_TIMESTAMP
4324
 
}
4325
 
statement {
4326
 
  type: INSERT
4327
 
  START_TIMESTAMP
4328
 
  END_TIMESTAMP
4329
 
  insert_header {
4330
 
    table_metadata {
4331
 
      schema_name: "test"
4332
 
      table_name: "t1"
4333
 
    }
4334
 
    field_metadata {
4335
 
      type: INTEGER
4336
 
      name: "a"
4337
 
    }
4338
 
    field_metadata {
4339
 
      type: DECIMAL
4340
 
      name: "b"
4341
 
    }
4342
 
  }
4343
 
  insert_data {
4344
 
    segment_id: 1
4345
 
    end_segment: true
4346
 
    record {
4347
 
      insert_value: "1"
4348
 
      insert_value: "999999999999999.000000000000000000000000000000"
4349
 
      is_null: false
4350
 
      is_null: false
4351
 
    }
4352
 
  }
4353
 
}
4354
 
 
4355
 
 
4356
 
 
4357
 
INSERT INTO t1 (b) VALUES (99999999999999999999999999999999999.999999999999999999999999999999);
4358
 
Check transaction_log_entries
4359
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4360
 
COUNT(*)
4361
 
4
4362
 
 
4363
 
Check transaction_log_transactions
4364
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4365
 
COUNT(*)
4366
 
4
4367
 
Check transaction log contents
4368
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4369
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4370
 
transaction_context {
4371
 
  server_id: 1
4372
 
  TRANSACTION_ID
4373
 
  START_TIMESTAMP
4374
 
  END_TIMESTAMP
4375
 
}
4376
 
statement {
4377
 
  type: INSERT
4378
 
  START_TIMESTAMP
4379
 
  END_TIMESTAMP
4380
 
  insert_header {
4381
 
    table_metadata {
4382
 
      schema_name: "test"
4383
 
      table_name: "t1"
4384
 
    }
4385
 
    field_metadata {
4386
 
      type: INTEGER
4387
 
      name: "a"
4388
 
    }
4389
 
    field_metadata {
4390
 
      type: DECIMAL
4391
 
      name: "b"
4392
 
    }
4393
 
  }
4394
 
  insert_data {
4395
 
    segment_id: 1
4396
 
    end_segment: true
4397
 
    record {
4398
 
      insert_value: "2"
4399
 
      insert_value: "99999999999999999999999999999999999.999999999999999999999999999999"
4400
 
      is_null: false
4401
 
      is_null: false
4402
 
    }
4403
 
  }
4404
 
}
4405
 
 
4406
 
 
4407
 
 
4408
 
Too long value
4409
 
INSERT INTO t1 (b) VALUES (99999999999999999999999999999999999.9999999999999999999999999999991);
4410
 
ERROR 01000: Data truncated for column 'b' at row 1
4411
 
Check transaction_log_entries
4412
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4413
 
COUNT(*)
4414
 
4
4415
 
 
4416
 
Check transaction_log_transactions
4417
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4418
 
COUNT(*)
4419
 
4
4420
 
Check transaction log contents
4421
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4422
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4423
 
transaction_context {
4424
 
  server_id: 1
4425
 
  TRANSACTION_ID
4426
 
  START_TIMESTAMP
4427
 
  END_TIMESTAMP
4428
 
}
4429
 
statement {
4430
 
  type: INSERT
4431
 
  START_TIMESTAMP
4432
 
  END_TIMESTAMP
4433
 
  insert_header {
4434
 
    table_metadata {
4435
 
      schema_name: "test"
4436
 
      table_name: "t1"
4437
 
    }
4438
 
    field_metadata {
4439
 
      type: INTEGER
4440
 
      name: "a"
4441
 
    }
4442
 
    field_metadata {
4443
 
      type: DECIMAL
4444
 
      name: "b"
4445
 
    }
4446
 
  }
4447
 
  insert_data {
4448
 
    segment_id: 1
4449
 
    end_segment: true
4450
 
    record {
4451
 
      insert_value: "2"
4452
 
      insert_value: "99999999999999999999999999999999999.999999999999999999999999999999"
4453
 
      is_null: false
4454
 
      is_null: false
4455
 
    }
4456
 
  }
4457
 
}
4458
 
 
4459
 
 
4460
 
 
4461
 
SELECT * FROM t1;
4462
 
a       b
4463
 
1       999999999999999.000000000000000000000000000000
4464
 
2       99999999999999999999999999999999999.999999999999999999999999999999
4465
 
DROP TABLE t1;
4466
 
SET GLOBAL transaction_log_truncate_debug= true;
4467
 
Testing Large VARCHAR1 
4468
 
DROP TABLE IF EXISTS t1;
4469
 
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(1024), PRIMARY KEY(a));
4470
 
INSERT INTO t1 (b) VALUES (999999999999999);
4471
 
Check transaction_log_entries
4472
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4473
 
COUNT(*)
4474
 
3
4475
 
 
4476
 
Check transaction_log_transactions
4477
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4478
 
COUNT(*)
4479
 
3
4480
 
Check transaction log contents
4481
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4482
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4483
 
transaction_context {
4484
 
  server_id: 1
4485
 
  TRANSACTION_ID
4486
 
  START_TIMESTAMP
4487
 
  END_TIMESTAMP
4488
 
}
4489
 
statement {
4490
 
  type: INSERT
4491
 
  START_TIMESTAMP
4492
 
  END_TIMESTAMP
4493
 
  insert_header {
4494
 
    table_metadata {
4495
 
      schema_name: "test"
4496
 
      table_name: "t1"
4497
 
    }
4498
 
    field_metadata {
4499
 
      type: INTEGER
4500
 
      name: "a"
4501
 
    }
4502
 
    field_metadata {
4503
 
      type: VARCHAR
4504
 
      name: "b"
4505
 
    }
4506
 
  }
4507
 
  insert_data {
4508
 
    segment_id: 1
4509
 
    end_segment: true
4510
 
    record {
4511
 
      insert_value: "1"
4512
 
      insert_value: "999999999999999"
4513
 
      is_null: false
4514
 
      is_null: false
4515
 
    }
4516
 
  }
4517
 
}
4518
 
 
4519
 
 
4520
 
 
4521
 
INSERT INTO t1 (b) VALUES ("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz");
4522
 
Check transaction_log_entries
4523
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4524
 
COUNT(*)
4525
 
4
4526
 
 
4527
 
Check transaction_log_transactions
4528
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4529
 
COUNT(*)
4530
 
4
4531
 
Check transaction log contents
4532
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4533
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4534
 
transaction_context {
4535
 
  server_id: 1
4536
 
  TRANSACTION_ID
4537
 
  START_TIMESTAMP
4538
 
  END_TIMESTAMP
4539
 
}
4540
 
statement {
4541
 
  type: INSERT
4542
 
  START_TIMESTAMP
4543
 
  END_TIMESTAMP
4544
 
  insert_header {
4545
 
    table_metadata {
4546
 
      schema_name: "test"
4547
 
      table_name: "t1"
4548
 
    }
4549
 
    field_metadata {
4550
 
      type: INTEGER
4551
 
      name: "a"
4552
 
    }
4553
 
    field_metadata {
4554
 
      type: VARCHAR
4555
 
      name: "b"
4556
 
    }
4557
 
  }
4558
 
  insert_data {
4559
 
    segment_id: 1
4560
 
    end_segment: true
4561
 
    record {
4562
 
      insert_value: "2"
4563
 
      insert_value: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
4564
 
      is_null: false
4565
 
      is_null: false
4566
 
    }
4567
 
  }
4568
 
}
4569
 
 
4570
 
 
4571
 
 
4572
 
INSERT INTO t1 (b) VALUES ("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"),("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"),("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"),("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"),("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz");
4573
 
Check transaction_log_entries
4574
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_ENTRIES;
4575
 
COUNT(*)
4576
 
5
4577
 
 
4578
 
Check transaction_log_transactions
4579
 
SELECT COUNT(*) FROM DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS;
4580
 
COUNT(*)
4581
 
5
4582
 
Check transaction log contents
4583
 
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
4584
 
PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS))
4585
 
transaction_context {
4586
 
  server_id: 1
4587
 
  TRANSACTION_ID
4588
 
  START_TIMESTAMP
4589
 
  END_TIMESTAMP
4590
 
}
4591
 
statement {
4592
 
  type: INSERT
4593
 
  START_TIMESTAMP
4594
 
  END_TIMESTAMP
4595
 
  insert_header {
4596
 
    table_metadata {
4597
 
      schema_name: "test"
4598
 
      table_name: "t1"
4599
 
    }
4600
 
    field_metadata {
4601
 
      type: INTEGER
4602
 
      name: "a"
4603
 
    }
4604
 
    field_metadata {
4605
 
      type: VARCHAR
4606
 
      name: "b"
4607
 
    }
4608
 
  }
4609
 
  insert_data {
4610
 
    segment_id: 1
4611
 
    end_segment: true
4612
 
    record {
4613
 
      insert_value: "3"
4614
 
      insert_value: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
4615
 
      is_null: false
4616
 
      is_null: false
4617
 
    }
4618
 
    record {
4619
 
      insert_value: "4"
4620
 
      insert_value: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
4621
 
      is_null: false
4622
 
      is_null: false
4623
 
    }
4624
 
    record {
4625
 
      insert_value: "5"
4626
 
      insert_value: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
4627
 
      is_null: false
4628
 
      is_null: false
4629
 
    }
4630
 
    record {
4631
 
      insert_value: "6"
4632
 
      insert_value: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
4633
 
      is_null: false
4634
 
      is_null: false
4635
 
    }
4636
 
    record {
4637
 
      insert_value: "7"
4638
 
      insert_value: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
4639
 
      is_null: false
4640
 
      is_null: false
4641
 
    }
4642
 
  }
4643
 
}
4644
 
 
4645
 
 
4646
 
 
4647
 
DROP TABLE t1;
4648
 
SET GLOBAL transaction_log_truncate_debug= true;