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