~linuxjedi/drizzle/trunk-bug-667053

« back to all changes in this revision

Viewing changes to mysql-test/suite/binlog/r/binlog_innodb.result

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
SET BINLOG_FORMAT=MIXED;
 
2
RESET MASTER;
 
3
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=INNODB;
 
4
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6);
 
5
BEGIN;
 
6
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
7
UPDATE t1 SET b = 2*a WHERE a > 1;
 
8
COMMIT;
 
9
BEGIN;
 
10
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 
11
UPDATE t1 SET b = a * a WHERE a > 3;
 
12
COMMIT;
 
13
SET BINLOG_FORMAT=STATEMENT;
 
14
BEGIN;
 
15
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 
16
UPDATE t1 SET b = 1*a WHERE a > 1;
 
17
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-UNCOMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
 
18
COMMIT;
 
19
BEGIN;
 
20
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 
21
UPDATE t1 SET b = 2*a WHERE a > 2;
 
22
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
 
23
COMMIT;
 
24
BEGIN;
 
25
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
26
UPDATE t1 SET b = 3*a WHERE a > 3;
 
27
COMMIT;
 
28
BEGIN;
 
29
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 
30
UPDATE t1 SET b = 4*a WHERE a > 4;
 
31
COMMIT;
 
32
SET BINLOG_FORMAT=MIXED;
 
33
BEGIN;
 
34
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 
35
UPDATE t1 SET b = 1*a WHERE a > 1;
 
36
COMMIT;
 
37
BEGIN;
 
38
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 
39
UPDATE t1 SET b = 2*a WHERE a > 2;
 
40
COMMIT;
 
41
BEGIN;
 
42
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
43
UPDATE t1 SET b = 3*a WHERE a > 3;
 
44
COMMIT;
 
45
BEGIN;
 
46
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 
47
UPDATE t1 SET b = 4*a WHERE a > 4;
 
48
COMMIT;
 
49
SET BINLOG_FORMAT=ROW;
 
50
BEGIN;
 
51
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 
52
UPDATE t1 SET b = 1*a WHERE a > 1;
 
53
COMMIT;
 
54
BEGIN;
 
55
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 
56
UPDATE t1 SET b = 2*a WHERE a > 2;
 
57
COMMIT;
 
58
BEGIN;
 
59
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
60
UPDATE t1 SET b = 3*a WHERE a > 3;
 
61
COMMIT;
 
62
BEGIN;
 
63
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 
64
UPDATE t1 SET b = 4*a WHERE a > 4;
 
65
COMMIT;
 
66
show binlog events from <binlog_start>;
 
67
Log_name        Pos     Event_type      Server_id       End_log_pos     Info
 
68
master-bin.000001       #       Query   #       #       use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=INNODB
 
69
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
70
master-bin.000001       #       Query   #       #       use `test`; INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6)
 
71
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
72
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
73
master-bin.000001       #       Query   #       #       use `test`; UPDATE t1 SET b = 2*a WHERE a > 1
 
74
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
75
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
76
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
77
master-bin.000001       #       Update_rows     #       #       table_id: #
 
78
master-bin.000001       #       Update_rows     #       #       table_id: #
 
79
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
80
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
81
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
82
master-bin.000001       #       Query   #       #       use `test`; UPDATE t1 SET b = 3*a WHERE a > 3
 
83
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
84
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
85
master-bin.000001       #       Query   #       #       use `test`; UPDATE t1 SET b = 4*a WHERE a > 4
 
86
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
87
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
88
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
89
master-bin.000001       #       Update_rows     #       #       table_id: #
 
90
master-bin.000001       #       Update_rows     #       #       table_id: #
 
91
master-bin.000001       #       Update_rows     #       #       table_id: #
 
92
master-bin.000001       #       Update_rows     #       #       table_id: #
 
93
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
94
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
95
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
96
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
97
master-bin.000001       #       Update_rows     #       #       table_id: #
 
98
master-bin.000001       #       Update_rows     #       #       table_id: #
 
99
master-bin.000001       #       Update_rows     #       #       table_id: #
 
100
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
101
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
102
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
103
master-bin.000001       #       Query   #       #       use `test`; UPDATE t1 SET b = 3*a WHERE a > 3
 
104
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
105
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
106
master-bin.000001       #       Query   #       #       use `test`; UPDATE t1 SET b = 4*a WHERE a > 4
 
107
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
108
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
109
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
110
master-bin.000001       #       Update_rows     #       #       table_id: #
 
111
master-bin.000001       #       Update_rows     #       #       table_id: #
 
112
master-bin.000001       #       Update_rows     #       #       table_id: #
 
113
master-bin.000001       #       Update_rows     #       #       table_id: #
 
114
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
115
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
116
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
117
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
118
master-bin.000001       #       Update_rows     #       #       table_id: #
 
119
master-bin.000001       #       Update_rows     #       #       table_id: #
 
120
master-bin.000001       #       Update_rows     #       #       table_id: #
 
121
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
122
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
123
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
124
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
125
master-bin.000001       #       Update_rows     #       #       table_id: #
 
126
master-bin.000001       #       Update_rows     #       #       table_id: #
 
127
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
128
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
129
master-bin.000001       #       Query   #       #       use `test`; BEGIN
 
130
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
131
master-bin.000001       #       Update_rows     #       #       table_id: #
 
132
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
133
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
134
DROP TABLE t1;
 
135
show status like "binlog_cache_use";
 
136
Variable_name   Value
 
137
Binlog_cache_use        13
 
138
show status like "binlog_cache_disk_use";
 
139
Variable_name   Value
 
140
Binlog_cache_disk_use   0
 
141
create table t1 (a int) engine=innodb;
 
142
show status like "binlog_cache_use";
 
143
Variable_name   Value
 
144
Binlog_cache_use        14
 
145
show status like "binlog_cache_disk_use";
 
146
Variable_name   Value
 
147
Binlog_cache_disk_use   1
 
148
begin;
 
149
delete from t1;
 
150
commit;
 
151
show status like "binlog_cache_use";
 
152
Variable_name   Value
 
153
Binlog_cache_use        15
 
154
show status like "binlog_cache_disk_use";
 
155
Variable_name   Value
 
156
Binlog_cache_disk_use   1
 
157
drop table t1;
 
158
CREATE TABLE `t1` (
 
159
`a` int(11) NOT NULL auto_increment,
 
160
`b` int(11) default NULL,
 
161
PRIMARY KEY  (`a`)
 
162
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
 
163
CREATE TABLE `t2` (
 
164
`a` int(11) NOT NULL auto_increment,
 
165
`b` int(11) default NULL,
 
166
PRIMARY KEY  (`a`)
 
167
) ENGINE=INNODB DEFAULT CHARSET=latin1 ;
 
168
insert into t1 values (1,1),(2,2);
 
169
insert into t2 values (1,1),(4,4);
 
170
reset master;
 
171
UPDATE t2,t1 SET t2.a=t1.a+2;
 
172
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
 
173
select * from t2 /* must be (3,1), (4,4) */;
 
174
a       b
 
175
1       1
 
176
4       4
 
177
there must no UPDATE in binlog
 
178
show master status;
 
179
File    Position        Binlog_Do_DB    Binlog_Ignore_DB
 
180
master-bin.000001       #       <Binlog_Do_DB>  <Binlog_Ignore_DB>
 
181
delete from t1;
 
182
delete from t2;
 
183
insert into t1 values (1,2),(3,4),(4,4);
 
184
insert into t2 values (1,2),(3,4),(4,4);
 
185
reset master;
 
186
UPDATE t2,t1  SET t2.a=t2.b where t2.a=t1.a;
 
187
ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
 
188
there must no UPDATE in binlog
 
189
show master status;
 
190
File    Position        Binlog_Do_DB    Binlog_Ignore_DB
 
191
master-bin.000001       #       <Binlog_Do_DB>  <Binlog_Ignore_DB>
 
192
drop table t1, t2;
 
193
End of tests