mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Merge next-mr -> next-4284.
Cherry-pick a fix Bug#37148 from next-mr, to preserve file ids of the added files, and ensure that all the necessary changes have been pulled. Since initially Bug#37148 was null-merged into 6.0, the changeset that is now being cherry-picked was likewise null merged into next-4284. Now that Bug#37148 has been reapplied to 6.0, try to make it work with next-4284. This is also necessary to be able to pull other changes from 5.1-rep into next-4284. To resolve the merge issues use this changeset applied to 6.0: revid:jperkin@sun.com-20091216103628-ylhqf7s6yegui2t9 revno: 3776.1.1 committer: He Zhenxing <zhenxing.he@sun.com> branch nick: 6.0-codebase-bugfixing timestamp: Thu 2009-12-17 17:02:50 +0800 message: Fix merge problem with Bug#37148
This commit is contained in:
22
mysql-test/include/binlog_inject_error.inc
Normal file
22
mysql-test/include/binlog_inject_error.inc
Normal file
@@ -0,0 +1,22 @@
|
||||
#
|
||||
# === Name
|
||||
#
|
||||
# binlog_inject_error.inc
|
||||
#
|
||||
# === Description
|
||||
#
|
||||
# Inject binlog write error when running the query, verifies that the
|
||||
# query is ended with the proper error (ER_ERROR_ON_WRITE).
|
||||
#
|
||||
# === Usage
|
||||
#
|
||||
# let query= 'CREATE TABLE t1 (a INT)';
|
||||
# source include/binlog_inject_error.inc;
|
||||
#
|
||||
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
--echo $query;
|
||||
--replace_regex /(errno: .*)/(errno: #)/
|
||||
--error ER_ERROR_ON_WRITE
|
||||
--eval $query
|
||||
SET GLOBAL debug='';
|
||||
108
mysql-test/suite/binlog/r/binlog_write_error.result
Normal file
108
mysql-test/suite/binlog/r/binlog_write_error.result
Normal file
@@ -0,0 +1,108 @@
|
||||
#
|
||||
# Initialization
|
||||
#
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
DROP FUNCTION IF EXISTS f2;
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
DROP PROCEDURE IF EXISTS p2;
|
||||
DROP TRIGGER IF EXISTS tr1;
|
||||
DROP TRIGGER IF EXISTS tr2;
|
||||
DROP VIEW IF EXISTS v1, v2;
|
||||
#
|
||||
# Test injecting binlog write error when executing queries
|
||||
#
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE TABLE t1 (a INT);
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
INSERT INTO t1 VALUES (1),(2),(3);
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
INSERT INTO t1 VALUES (4),(5),(6);
|
||||
INSERT INTO t1 VALUES (4),(5),(6);
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
UPDATE t1 set a=a+1;
|
||||
UPDATE t1 set a=a+1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
DELETE FROM t1;
|
||||
DELETE FROM t1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100);
|
||||
CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100);
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
DROP TRIGGER tr1;
|
||||
DROP TRIGGER tr1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
ALTER TABLE t1 ADD (b INT);
|
||||
ALTER TABLE t1 ADD (b INT);
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
CREATE VIEW v1 AS SELECT a FROM t1;
|
||||
CREATE VIEW v1 AS SELECT a FROM t1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
DROP VIEW v1;
|
||||
DROP VIEW v1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
CREATE PROCEDURE p1(OUT rows INT) SELECT count(*) INTO rows FROM t1;
|
||||
CREATE PROCEDURE p1(OUT rows INT) SELECT count(*) INTO rows FROM t1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
DROP PROCEDURE p1;
|
||||
DROP PROCEDURE p1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
CREATE FUNCTION f1() RETURNS INT return 1;
|
||||
CREATE FUNCTION f1() RETURNS INT return 1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
DROP FUNCTION f1;
|
||||
DROP FUNCTION f1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
CREATE USER user1;
|
||||
CREATE USER user1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1;
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
SET GLOBAL debug='d,injecting_fault_writing';
|
||||
DROP USER user1;
|
||||
DROP USER user1;
|
||||
ERROR HY000: Error writing file 'master-bin' ((errno: #)
|
||||
SET GLOBAL debug='';
|
||||
#
|
||||
# Cleanup
|
||||
#
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
DROP TRIGGER IF EXISTS tr1;
|
||||
DROP VIEW IF EXISTS v1, v2;
|
||||
101
mysql-test/suite/binlog/t/binlog_write_error.test
Normal file
101
mysql-test/suite/binlog/t/binlog_write_error.test
Normal file
@@ -0,0 +1,101 @@
|
||||
#
|
||||
# === Name ===
|
||||
#
|
||||
# binlog_write_error.test
|
||||
#
|
||||
# === Description ===
|
||||
#
|
||||
# This test case check if the error of writing binlog file is properly
|
||||
# reported and handled when executing statements.
|
||||
#
|
||||
# === Related Bugs ===
|
||||
#
|
||||
# BUG#37148
|
||||
#
|
||||
|
||||
source include/have_log_bin.inc;
|
||||
source include/have_debug.inc;
|
||||
|
||||
--echo #
|
||||
--echo # Initialization
|
||||
--echo #
|
||||
|
||||
disable_warnings;
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
DROP FUNCTION IF EXISTS f2;
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
DROP PROCEDURE IF EXISTS p2;
|
||||
DROP TRIGGER IF EXISTS tr1;
|
||||
DROP TRIGGER IF EXISTS tr2;
|
||||
DROP VIEW IF EXISTS v1, v2;
|
||||
enable_warnings;
|
||||
|
||||
--echo #
|
||||
--echo # Test injecting binlog write error when executing queries
|
||||
--echo #
|
||||
|
||||
let $query= CREATE TABLE t1 (a INT);
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
INSERT INTO t1 VALUES (1),(2),(3);
|
||||
|
||||
let $query= INSERT INTO t1 VALUES (4),(5),(6);
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= UPDATE t1 set a=a+1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= DELETE FROM t1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100);
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= DROP TRIGGER tr1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= ALTER TABLE t1 ADD (b INT);
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= CREATE VIEW v1 AS SELECT a FROM t1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= DROP VIEW v1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= CREATE PROCEDURE p1(OUT rows INT) SELECT count(*) INTO rows FROM t1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= DROP PROCEDURE p1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= DROP TABLE t1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= CREATE FUNCTION f1() RETURNS INT return 1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= DROP FUNCTION f1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= CREATE USER user1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
let $query= DROP USER user1;
|
||||
source include/binlog_inject_error.inc;
|
||||
|
||||
--echo #
|
||||
--echo # Cleanup
|
||||
--echo #
|
||||
|
||||
disable_warnings;
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
DROP TRIGGER IF EXISTS tr1;
|
||||
DROP VIEW IF EXISTS v1, v2;
|
||||
enable_warnings;
|
||||
Reference in New Issue
Block a user