mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 19:07:15 +02:00
mysql-test/extra/rpl_tests/rpl_tmp_table_and_DDL.test: Added missing sync_slave_with_master; Fixes random failures mysql-test/include/default_mysqld.cnf: default-character-set -> character-set-server (removes warning in error files for usage of deprecated options) mysql-test/lib/My/SafeProcess/safe_process.cc: Fixed compiler warning mysql-test/lib/v1/mysql-test-run.pl: default-character-set -> character-set-server (removes warning in error files for usage of deprecated options) mysql-test/suite/rpl/r/rpl_do_grant.result: Updated test results mysql-test/suite/rpl/t/rpl_do_grant.test: Added missing sync_slave_with_master; Fixes random failures Had to explictely do stop slave before DROP USER to avoid failure on slave as the user is already dropped on slave. mysql-test/suite/rpl/t/rpl_name_const.test: Added missing sync_slave_with_master; Fixes random failures mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test: Added missing sync_slave_with_master; Fixes random failures mysql-test/t/bug47671-master.opt: default-character-set -> character-set-server (removes warning in error files for usage of deprecated options) mysql-test/t/ctype_latin1_de-master.opt: default-character-set -> character-set-server (removes warning in error files for usage of deprecated options) mysql-test/t/ctype_ucs2_def-master.opt: default-character-set -> character-set-server (removes warning in error files for usage of deprecated options) sql-common/client.c: Fixed compiler warning sql/item.cc: Renamed function to remove compiler warnings (with gcc) sql/item.h: Renamed function to remove compiler warnings (with gcc) sql/item_cmpfunc.cc: Renamed function to remove compiler warnings (with gcc) sql/item_create.cc: Renamed function to remove compiler warnings (with gcc) sql/item_create.h: Renamed function to remove compiler warnings (with gcc) sql/item_sum.cc: Renamed function to remove compiler warnings (with gcc) sql/item_sum.h: Renamed function to remove compiler warnings (with gcc) sql/set_var.cc: Don't use bit_do_set() / bot_is_set() / bit_do_clear() as this generates compiler warnings (They are also of no use as we know the value can hold the bits) sql/sql_yacc.yy: Renamed function to remove compiler warnings (with gcc) storage/example/ha_example.h: Fixed old read_time() prototype storage/maria/ma_search.c: Added extra variables to remove compiler warnings storage/maria/maria_def.h: Added extra variables to remove compiler warnings storage/myisam/ft_stopwords.c: Added cast to get rid of compiler warning storage/xtradb/fil/fil0fil.c: Added cast to get rid of compiler warning storage/xtradb/include/page0page.h: Added const to get rid of compiler warning storage/xtradb/include/page0page.ic: Added const to get rid of compiler warning support-files/compiler_warnings.supp: Added suppression of strict-aliasing
266 lines
7 KiB
Text
266 lines
7 KiB
Text
--source include/have_binlog_format_row.inc
|
|
|
|
let $SERVER_VERSION=`select version()`;
|
|
|
|
#This test case is not written for NDB, the result files
|
|
#will not match when NDB is the default engine
|
|
-- source include/not_ndb_default.inc
|
|
|
|
--source include/master-slave.inc
|
|
|
|
# Bug#15942 (RBR ignores --binlog_ignore_db and tries to map to table
|
|
# on slave for writes)
|
|
|
|
CREATE DATABASE test_ignore; # --binlog_ignore_db=mysqltest_ignore
|
|
|
|
--echo **** On Master ****
|
|
SHOW DATABASES;
|
|
USE test;
|
|
CREATE TABLE t1 (a INT, b INT);
|
|
SHOW TABLES;
|
|
INSERT INTO t1 VALUES (1,1), (2,2);
|
|
USE test_ignore;
|
|
CREATE TABLE t2 (a INT, b INT);
|
|
SHOW TABLES;
|
|
INSERT INTO t2 VALUES (3,3), (4,4);
|
|
source include/show_binlog_events.inc;
|
|
sync_slave_with_master;
|
|
--echo **** On Slave ****
|
|
SHOW DATABASES;
|
|
USE test;
|
|
SHOW TABLES;
|
|
--error 1049
|
|
USE test_ignore;
|
|
|
|
connection master;
|
|
DROP DATABASE test_ignore;
|
|
sync_slave_with_master;
|
|
|
|
# Bug#19995: Extreneous table maps generated for statements that does
|
|
# not generate rows
|
|
--disable_query_log
|
|
--source include/master-slave-reset.inc
|
|
--enable_query_log
|
|
|
|
connection master;
|
|
CREATE TABLE t1 (a INT);
|
|
DELETE FROM t1;
|
|
INSERT INTO t1 VALUES (1),(2);
|
|
DELETE FROM t1 WHERE a = 0;
|
|
UPDATE t1 SET a=99 WHERE a = 0;
|
|
--replace_result $SERVER_VERSION SERVER_VERSION
|
|
--replace_regex /table_id: [0-9]+/table_id: #/
|
|
SHOW BINLOG EVENTS;
|
|
|
|
DROP TABLE t1;
|
|
--sync_slave_with_master
|
|
|
|
# BUG#17620: Replicate (Row Based) Fails when Query Cache enabled on
|
|
# slave
|
|
--echo ================ Test for BUG#17620 ================
|
|
--disable_query_log
|
|
--source include/master-slave-reset.inc
|
|
--enable_query_log
|
|
|
|
--echo **** On Slave ****
|
|
connection slave;
|
|
SET GLOBAL QUERY_CACHE_SIZE=0;
|
|
|
|
--echo **** On Master ****
|
|
connection master;
|
|
CREATE TABLE t1 (a INT);
|
|
INSERT INTO t1 VALUES (1),(2),(3);
|
|
|
|
--echo **** On Slave ****
|
|
sync_slave_with_master;
|
|
SET GLOBAL QUERY_CACHE_SIZE=16*1024*1024;
|
|
|
|
--echo **** On Master ****
|
|
connection master;
|
|
INSERT INTO t1 VALUES (4),(5),(6);
|
|
|
|
--echo **** On Slave ****
|
|
sync_slave_with_master;
|
|
SELECT * FROM t1;
|
|
|
|
--echo **** On Master ****
|
|
connection master;
|
|
INSERT INTO t1 VALUES (7),(8),(9);
|
|
|
|
--echo **** On Slave ****
|
|
sync_slave_with_master;
|
|
SELECT * FROM t1;
|
|
|
|
SET GLOBAL QUERY_CACHE_SIZE=0;
|
|
|
|
# Bug#22550: Replication of BIT columns failing
|
|
--echo ================ Test for BUG#22550 ================
|
|
--disable_query_log
|
|
--source include/master-slave-reset.inc
|
|
--enable_query_log
|
|
|
|
connection master;
|
|
CREATE TABLE t1 (a BIT(1), b INT) ENGINE=MYISAM;
|
|
sync_slave_with_master;
|
|
|
|
connection master;
|
|
INSERT INTO t1 VALUES(1,2);
|
|
SELECT HEX(a),b FROM t1;
|
|
sync_slave_with_master;
|
|
SELECT HEX(a),b FROM t1;
|
|
|
|
connection master;
|
|
UPDATE t1 SET a=0 WHERE b=2;
|
|
SELECT HEX(a),b FROM t1;
|
|
sync_slave_with_master;
|
|
SELECT HEX(a),b FROM t1;
|
|
|
|
connection master;
|
|
DROP TABLE IF EXISTS t1;
|
|
sync_slave_with_master;
|
|
|
|
# BUG#22583: RBR between MyISAM and non-MyISAM tables containing a BIT
|
|
# field does not work
|
|
|
|
--echo ================ Test for BUG#22583 ================
|
|
--disable_query_log
|
|
--source include/master-slave-reset.inc
|
|
--enable_query_log
|
|
|
|
# disabling warnings temporarily for ENGINE=INNODB to work without InnoDB
|
|
--disable_warnings
|
|
--echo **** On Master ****
|
|
connection master;
|
|
CREATE TABLE t1_myisam (k INT, a BIT(1), b BIT(9)) ENGINE=MYISAM;
|
|
CREATE TABLE t1_innodb (k INT, a BIT(1), b BIT(9)) ENGINE=INNODB;
|
|
CREATE TABLE t2_myisam (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=MYISAM;
|
|
CREATE TABLE t2_innodb (k INT, a BIT(1) NOT NULL, b BIT(4) NOT NULL) ENGINE=INNODB;
|
|
--echo **** On Slave ****
|
|
sync_slave_with_master;
|
|
ALTER TABLE t1_myisam ENGINE=INNODB;
|
|
ALTER TABLE t1_innodb ENGINE=MYISAM;
|
|
ALTER TABLE t2_myisam ENGINE=INNODB;
|
|
ALTER TABLE t2_innodb ENGINE=MYISAM;
|
|
--enable_warnings
|
|
|
|
--echo **** On Master ****
|
|
connection master;
|
|
INSERT INTO t1_myisam VALUES(1, b'0', 257);
|
|
INSERT INTO t1_myisam VALUES(2, b'1', 256);
|
|
INSERT INTO t1_innodb VALUES(1, b'0', 257);
|
|
INSERT INTO t1_innodb VALUES(2, b'1', 256);
|
|
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
|
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
|
INSERT INTO t2_myisam VALUES(1, b'0', 9);
|
|
INSERT INTO t2_myisam VALUES(2, b'1', 8);
|
|
INSERT INTO t2_innodb VALUES(1, b'0', 9);
|
|
INSERT INTO t2_innodb VALUES(2, b'1', 8);
|
|
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
|
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
|
--echo **** On Slave ****
|
|
sync_slave_with_master;
|
|
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
|
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
|
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
|
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
|
|
|
--echo **** On Master ****
|
|
connection master;
|
|
UPDATE t1_myisam SET a=0 WHERE k=2;
|
|
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
|
UPDATE t1_innodb SET a=0 WHERE k=2;
|
|
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
|
UPDATE t2_myisam SET a=0 WHERE k=2;
|
|
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
|
UPDATE t2_innodb SET a=0 WHERE k=2;
|
|
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
|
--echo **** On Slave ****
|
|
sync_slave_with_master;
|
|
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
|
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
|
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
|
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
|
|
|
--echo **** On Master ****
|
|
connection master;
|
|
DROP TABLE IF EXISTS t1_myisam, t1_innodb, t2_myisam, t2_innodb;
|
|
sync_slave_with_master;
|
|
|
|
#
|
|
# Bug#27716 multi-update did partially and has not binlogged
|
|
#
|
|
|
|
connection master;
|
|
|
|
--disable_warnings
|
|
drop table if exists t1, t2;
|
|
--enable_warnings
|
|
CREATE TABLE `t1` (
|
|
`a` int(11) NOT NULL auto_increment,
|
|
`b` int(11) default NULL,
|
|
PRIMARY KEY (`a`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
|
|
|
|
CREATE TABLE `t2` (
|
|
`a` int(11) NOT NULL auto_increment,
|
|
`b` int(11) default NULL,
|
|
PRIMARY KEY (`a`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
|
|
|
|
# testing multi_update::send_error() effective update
|
|
insert into t1 values (1,1),(2,2);
|
|
insert into t2 values (1,1),(4,4);
|
|
|
|
connection master;
|
|
error ER_DUP_ENTRY;
|
|
UPDATE t2,t1 SET t2.a=t1.a+2;
|
|
select * from t2 /* must be (3,1), (4,4) */;
|
|
sync_slave_with_master;
|
|
|
|
connection slave;
|
|
select * from t2 /* must be (3,1), (4,4) */;
|
|
|
|
connection master;
|
|
drop table t1,t2;
|
|
|
|
sync_slave_with_master;
|
|
|
|
#
|
|
# BUG#31702: Missing row on slave causes assertion failure under
|
|
# row-based replication
|
|
#
|
|
|
|
disable_query_log;
|
|
source include/master-slave-reset.inc;
|
|
enable_query_log;
|
|
|
|
--echo **** On Master ****
|
|
connection master;
|
|
SET SESSION BINLOG_FORMAT=ROW;
|
|
CREATE TABLE t1 (a INT PRIMARY KEY, b SET('master','slave'));
|
|
INSERT INTO t1 VALUES (1,'master,slave'), (2,'master,slave');
|
|
--echo **** On Slave ****
|
|
sync_slave_with_master;
|
|
UPDATE t1 SET a = 5, b = 'slave' WHERE a = 1;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
# since bug#31552/31609 idempotency is not default any longer. In
|
|
# order the preceeding test UPDATE t1 to pass the mode is switched
|
|
# temprorarily
|
|
set @@global.slave_exec_mode= 'IDEMPOTENT';
|
|
--echo **** On Master ****
|
|
connection master;
|
|
UPDATE t1 SET a = 5, b = 'master' WHERE a = 1;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
--echo **** On Slave ****
|
|
sync_slave_with_master;
|
|
set @@global.slave_exec_mode= default;
|
|
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1);
|
|
disable_query_log;
|
|
eval SELECT "$last_error" AS Last_SQL_Error;
|
|
enable_query_log;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
DROP TABLE t1;
|
|
|
|
--echo **** On Master ****
|
|
connection master;
|
|
DROP TABLE t1;
|