~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/transaction_log/tests/t/bug660779.test

  • Committer: Lee Bieber
  • Date: 2010-10-27 02:00:05 UTC
  • mfrom: (1882.1.2 build)
  • Revision ID: kalebral@gmail.com-20101027020005-jqiq89je9lhpidux
Merge Shrews - add options to the transaction_reader utility program
Merge Shrews - fix bug 660779: Transaction log retaining partial information from an aborted transaction

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
CREATE TABLE t1 (
 
2
  pk INT NOT NULL AUTO_INCREMENT,
 
3
  col_int1 INT,
 
4
  col_int2 INT,
 
5
  col_int_not_null INT NOT NULL,
 
6
  PRIMARY KEY (pk));
 
7
 
 
8
INSERT INTO t1 (col_int1, col_int2, col_int_not_null) VALUES (1,1,1);
 
9
INSERT INTO t1 (col_int1, col_int2, col_int_not_null) VALUES (NULL,1,1);
 
10
INSERT INTO t1 (col_int1, col_int2, col_int_not_null) VALUES (2,1,3);
 
11
 
 
12
SET GLOBAL transaction_log_truncate_debug= true;
 
13
 
 
14
--test with no previous Statement message
 
15
BEGIN;
 
16
--ERROR ER_BAD_NULL_ERROR
 
17
UPDATE t1 SET col_int_not_null = col_int1 WHERE col_int2 = 1;
 
18
INSERT INTO t1 (col_int1, col_int2, col_int_not_null) VALUES (5,5,5);
 
19
COMMIT;
 
20
 
 
21
--echo
 
22
--echo We should have a Transaction with a single insert Statement
 
23
--replace_regex /start_timestamp: [0-9]+/START_TIMESTAMP/g /end_timestamp: [0-9]+/END_TIMESTAMP/g /creation_timestamp: [0-9]+/CREATE_TIMESTAMP/ /update_timestamp: [0-9]+/UPDATE_TIMESTAMP/
 
24
 
 
25
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
 
26
 
 
27
BEGIN;
 
28
UPDATE t1 SET col_int1 = (col_int1 + 1) WHERE col_int2 = 1;
 
29
--ERROR ER_BAD_NULL_ERROR
 
30
UPDATE t1 SET col_int_not_null = col_int1 WHERE col_int2 = 1;
 
31
INSERT INTO t1 (col_int1, col_int2, col_int_not_null) VALUES (6,6,6);
 
32
COMMIT;
 
33
 
 
34
--echo
 
35
--echo We should have a Transaction with 1 update and 1 insert Statement
 
36
--replace_regex /start_timestamp: [0-9]+/START_TIMESTAMP/g /end_timestamp: [0-9]+/END_TIMESTAMP/g /creation_timestamp: [0-9]+/CREATE_TIMESTAMP/ /update_timestamp: [0-9]+/UPDATE_TIMESTAMP/
 
37
 
 
38
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
 
39
 
 
40
CREATE TABLE t2 (pk INT NOT NULL AUTO_INCREMENT PRIMARY KEY, a INT);
 
41
INSERT INTO t2 (a) VALUES (1),(2), (NULL);
 
42
 
 
43
BEGIN;
 
44
--ERROR ER_BAD_NULL_ERROR
 
45
INSERT INTO t1 (col_int_not_null) SELECT a FROM t2;
 
46
INSERT INTO t1 (col_int1, col_int2, col_int_not_null) VALUES (7,7,7);
 
47
COMMIT;
 
48
 
 
49
--echo
 
50
--echo We should have a Transaction with 1 insert Statement
 
51
--replace_regex /start_timestamp: [0-9]+/START_TIMESTAMP/g /end_timestamp: [0-9]+/END_TIMESTAMP/g /creation_timestamp: [0-9]+/CREATE_TIMESTAMP/ /update_timestamp: [0-9]+/UPDATE_TIMESTAMP/
 
52
 
 
53
SELECT PRINT_TRANSACTION_MESSAGE('transaction.log',(select max(entry_offset) from DATA_DICTIONARY.TRANSACTION_LOG_TRANSACTIONS));
 
54
 
 
55
 
 
56
DROP TABLE t1;
 
57
DROP TABLE t2;
 
58
SET GLOBAL transaction_log_truncate_debug= true;