1#
2# === Name ===
3#
4# binlog_write_error.test
5#
6# === Description ===
7#
8# This test case check if the error of writing binlog file is properly
9# reported and handled when executing statements.
10#
11# === Related Bugs ===
12#
13# BUG#37148
14#
15
16source include/have_log_bin.inc;
17source include/have_debug.inc;
18source include/have_binlog_format_mixed_or_statement.inc;
19
20--echo #
21--echo # Initialization
22--echo #
23
24disable_warnings;
25DROP TABLE IF EXISTS t1, t2;
26DROP FUNCTION IF EXISTS f1;
27DROP FUNCTION IF EXISTS f2;
28DROP PROCEDURE IF EXISTS p1;
29DROP PROCEDURE IF EXISTS p2;
30DROP TRIGGER IF EXISTS tr1;
31DROP TRIGGER IF EXISTS tr2;
32DROP VIEW IF EXISTS v1, v2;
33enable_warnings;
34
35--echo #
36--echo # Test injecting binlog write error when executing queries
37--echo #
38
39let $query= CREATE TABLE t1 (a INT);
40source include/binlog_inject_error.inc;
41
42INSERT INTO t1 VALUES (1),(2),(3);
43
44let $query= INSERT INTO t1 VALUES (4),(5),(6);
45source include/binlog_inject_error.inc;
46
47let $query= UPDATE t1 set a=a+1;
48source include/binlog_inject_error.inc;
49
50let $query= DELETE FROM t1;
51source include/binlog_inject_error.inc;
52
53let $query= CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100);
54source include/binlog_inject_error.inc;
55
56let $query= DROP TRIGGER tr1;
57source include/binlog_inject_error.inc;
58
59let $query= ALTER TABLE t1 ADD (b INT);
60source include/binlog_inject_error.inc;
61
62let $query= CREATE VIEW v1 AS SELECT a FROM t1;
63source include/binlog_inject_error.inc;
64
65let $query= DROP VIEW v1;
66source include/binlog_inject_error.inc;
67
68let $query= CREATE PROCEDURE p1(OUT rows INT) SELECT count(*) INTO rows FROM t1;
69source include/binlog_inject_error.inc;
70
71let $query= DROP PROCEDURE p1;
72source include/binlog_inject_error.inc;
73
74let $query= DROP TABLE t1;
75source include/binlog_inject_error.inc;
76
77let $query= CREATE FUNCTION f1() RETURNS INT return 1;
78source include/binlog_inject_error.inc;
79
80let $query= DROP FUNCTION f1;
81source include/binlog_inject_error.inc;
82
83let $query= CREATE USER user1;
84source include/binlog_inject_error.inc;
85
86let $query= REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1;
87source include/binlog_inject_error.inc;
88
89let $query= DROP USER user1;
90source include/binlog_inject_error.inc;
91
92--echo #
93--echo # Cleanup
94--echo #
95
96disable_warnings;
97DROP TABLE IF EXISTS t1, t2;
98DROP FUNCTION IF EXISTS f1;
99DROP PROCEDURE IF EXISTS p1;
100DROP TRIGGER IF EXISTS tr1;
101DROP VIEW IF EXISTS v1, v2;
102enable_warnings;
103