~ubuntu-branches/ubuntu/trusty/mysql-5.6/trusty

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-02-12 11:54:27 UTC
  • Revision ID: package-import@ubuntu.com-20140212115427-oq6tfsqxl1wuwehi
Tags: upstream-5.6.15
ImportĀ upstreamĀ versionĀ 5.6.15

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
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
6
BEGIN;
 
7
UPDATE t1 SET b = 2*a WHERE a > 1;
 
8
COMMIT;
 
9
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 
10
BEGIN;
 
11
UPDATE t1 SET b = a * a WHERE a > 3;
 
12
COMMIT;
 
13
SET BINLOG_FORMAT=STATEMENT;
 
14
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 
15
BEGIN;
 
16
UPDATE t1 SET b = 1*a WHERE a > 1;
 
17
ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
 
18
COMMIT;
 
19
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 
20
BEGIN;
 
21
UPDATE t1 SET b = 2*a WHERE a > 2;
 
22
ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
 
23
COMMIT;
 
24
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
25
BEGIN;
 
26
UPDATE t1 SET b = 3*a WHERE a > 3;
 
27
COMMIT;
 
28
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 
29
BEGIN;
 
30
UPDATE t1 SET b = 4*a WHERE a > 4;
 
31
COMMIT;
 
32
SET BINLOG_FORMAT=MIXED;
 
33
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 
34
BEGIN;
 
35
UPDATE t1 SET b = 1*a WHERE a > 1;
 
36
COMMIT;
 
37
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 
38
BEGIN;
 
39
UPDATE t1 SET b = 2*a WHERE a > 2;
 
40
COMMIT;
 
41
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
42
BEGIN;
 
43
UPDATE t1 SET b = 3*a WHERE a > 3;
 
44
COMMIT;
 
45
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 
46
BEGIN;
 
47
UPDATE t1 SET b = 4*a WHERE a > 4;
 
48
COMMIT;
 
49
SET BINLOG_FORMAT=ROW;
 
50
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 
51
BEGIN;
 
52
UPDATE t1 SET b = 1*a WHERE a > 1;
 
53
COMMIT;
 
54
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
 
55
BEGIN;
 
56
UPDATE t1 SET b = 2*a WHERE a > 2;
 
57
COMMIT;
 
58
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
 
59
BEGIN;
 
60
UPDATE t1 SET b = 3*a WHERE a > 3;
 
61
COMMIT;
 
62
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
 
63
BEGIN;
 
64
UPDATE t1 SET b = 4*a WHERE a > 4;
 
65
COMMIT;
 
66
include/show_binlog_events.inc
 
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   #       #       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   #       #       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   #       #       BEGIN
 
76
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
77
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
78
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
79
master-bin.000001       #       Query   #       #       BEGIN
 
80
master-bin.000001       #       Query   #       #       use `test`; UPDATE t1 SET b = 3*a WHERE a > 3
 
81
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
82
master-bin.000001       #       Query   #       #       BEGIN
 
83
master-bin.000001       #       Query   #       #       use `test`; UPDATE t1 SET b = 4*a WHERE a > 4
 
84
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
85
master-bin.000001       #       Query   #       #       BEGIN
 
86
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
87
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
88
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
89
master-bin.000001       #       Query   #       #       BEGIN
 
90
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
91
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
92
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
93
master-bin.000001       #       Query   #       #       BEGIN
 
94
master-bin.000001       #       Query   #       #       use `test`; UPDATE t1 SET b = 3*a WHERE a > 3
 
95
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
96
master-bin.000001       #       Query   #       #       BEGIN
 
97
master-bin.000001       #       Query   #       #       use `test`; UPDATE t1 SET b = 4*a WHERE a > 4
 
98
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
99
master-bin.000001       #       Query   #       #       BEGIN
 
100
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
101
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
102
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
103
master-bin.000001       #       Query   #       #       BEGIN
 
104
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
105
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
106
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
107
master-bin.000001       #       Query   #       #       BEGIN
 
108
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
109
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
110
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
111
master-bin.000001       #       Query   #       #       BEGIN
 
112
master-bin.000001       #       Table_map       #       #       table_id: # (test.t1)
 
113
master-bin.000001       #       Update_rows     #       #       table_id: # flags: STMT_END_F
 
114
master-bin.000001       #       Xid     #       #       COMMIT /* XID */
 
115
DROP TABLE t1;
 
116
flush status;
 
117
show status like "binlog_cache_use";
 
118
Variable_name   Value
 
119
Binlog_cache_use        0
 
120
show status like "binlog_cache_disk_use";
 
121
Variable_name   Value
 
122
Binlog_cache_disk_use   0
 
123
create table t1 (a int) engine=innodb;
 
124
show status like "binlog_cache_use";
 
125
Variable_name   Value
 
126
Binlog_cache_use        1
 
127
show status like "binlog_cache_disk_use";
 
128
Variable_name   Value
 
129
Binlog_cache_disk_use   1
 
130
begin;
 
131
delete from t1;
 
132
commit;
 
133
show status like "binlog_cache_use";
 
134
Variable_name   Value
 
135
Binlog_cache_use        2
 
136
show status like "binlog_cache_disk_use";
 
137
Variable_name   Value
 
138
Binlog_cache_disk_use   1
 
139
drop table t1;
 
140
CREATE TABLE `t1` (
 
141
`a` int(11) NOT NULL auto_increment,
 
142
`b` int(11) default NULL,
 
143
PRIMARY KEY  (`a`)
 
144
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
 
145
CREATE TABLE `t2` (
 
146
`a` int(11) NOT NULL auto_increment,
 
147
`b` int(11) default NULL,
 
148
PRIMARY KEY  (`a`)
 
149
) ENGINE=INNODB DEFAULT CHARSET=latin1 ;
 
150
insert into t1 values (1,1),(2,2);
 
151
insert into t2 values (1,1),(4,4);
 
152
reset master;
 
153
UPDATE t2,t1 SET t2.a=t1.a+2;
 
154
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
 
155
select * from t2 /* must be (3,1), (4,4) */;
 
156
a       b
 
157
1       1
 
158
4       4
 
159
# There must no UPDATE in binlog;
 
160
include/show_binlog_events.inc
 
161
delete from t1;
 
162
delete from t2;
 
163
insert into t1 values (1,2),(3,4),(4,4);
 
164
insert into t2 values (1,2),(3,4),(4,4);
 
165
reset master;
 
166
UPDATE t2,t1  SET t2.a=t2.b where t2.a=t1.a;
 
167
ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
 
168
# There must be no UPDATE query event;
 
169
include/show_binlog_events.inc
 
170
drop table t1, t2;
 
171
End of tests