You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: mysql-test/suite/rpl_ndb/r/rpl_ndb_binlog_format_errors.result
+39-3Lines changed: 39 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -37,27 +37,40 @@ CREATE TRIGGER trig_1 AFTER INSERT ON t_self_logging FOR EACH ROW BEGIN INSERT I
37
37
INSERT INTO t_self_logging VALUES (1);
38
38
ERROR HY000: Cannot execute statement: binlogging impossible since more than one engine is involved and at least one engine is self-logging.
39
39
DROP trigger trig_1;
40
+
SELECT * FROM t_self_logging /* Should be empty */;
41
+
a
42
+
SELECT * FROM t /* Should be empty */;
43
+
a
40
44
* Modify both row-only and stmt-only table
41
45
CREATE TRIGGER trig_2 AFTER INSERT ON t_stmt FOR EACH ROW BEGIN INSERT INTO t_row VALUES(1); END;
42
46
INSERT INTO t_stmt VALUES (1);
43
47
ERROR HY000: Cannot execute statement: binlogging impossible since both row-incapable engines and statement-incapable engines are involved.
48
+
SELECT * FROM t_stmt /* should be empty */;
49
+
a
44
50
DROP TRIGGER trig_2;
45
51
* Stmt-only table and binlog_format=row
46
52
INSERT INTO t_stmt VALUES (1);
47
53
ERROR HY000: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-logging.
54
+
SELECT * FROM t_stmt /* should be empty */;
55
+
a
48
56
* Row injection and stmt-only table: in slave sql thread
Last_SQL_Error = Error 'Cannot execute row injection: binlogging impossible since at least one table uses a storage engine limited to statement-logging.' on opening tables
53
61
set global sql_slave_skip_counter=1;
54
62
include/start_slave.inc
63
+
SELECT * FROM t_slave_stmt /* should be empty */;
64
+
a
65
+
[on master]
55
66
* Row injection and stmt-only table: use BINLOG statement
ERROR HY000: Cannot execute row injection: binlogging impossible since at least one table uses a storage engine limited to statement-logging.
72
+
SELECT * FROM t_stmt /* should be empty */;
73
+
a
61
74
---- binlog_format=mixed ----
62
75
[on slave]
63
76
include/stop_slave.inc
@@ -83,46 +96,69 @@ SET @@session.binlog_format = STATEMENT;
83
96
* Row-only engine and binlog_format=statement: innodb-specific message
84
97
INSERT INTO t_row VALUES (1);
85
98
ERROR HY000: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
99
+
SELECT * FROM t_row /* should be empty */;
100
+
a
86
101
* Row-only engine and binlog_format=statement: generic message
87
102
SET @@session.debug= '+d,no_innodb_binlog_errors';
88
103
INSERT INTO t_row VALUES (1);
89
104
ERROR HY000: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-logging.
105
+
SELECT * FROM t_row /* should be empty */;
106
+
a
90
107
* Same statement, but db filtered out - no error
91
108
USE other;
92
109
INSERT INTO test.t_row VALUES (1);
93
110
USE test;
94
111
SET @@session.debug= '';
112
+
SELECT * FROM t_row /* should contain the value 1 */;
113
+
a
114
+
1
95
115
* Row injection and binlog_format=statement: BINLOG statement
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a system function whose value may differ on slave.
138
+
SELECT * FROM t /* should contain the value 1 */;
139
+
a
140
+
1
141
+
DELETE FROM t;
112
142
* Same statement, but db filtered out - no message
0 commit comments