mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
76f0b94bb0
sql/sql_insert.cc: CREATE ... IF NOT EXISTS may do nothing, but it is still not a failure. don't forget to my_ok it. ****** CREATE ... IF NOT EXISTS may do nothing, but it is still not a failure. don't forget to my_ok it. sql/sql_table.cc: small cleanup ****** small cleanup
269 lines
6.3 KiB
Text
269 lines
6.3 KiB
Text
include/master-slave.inc
|
|
[connection master]
|
|
call mtr.add_suppression("Can't find record in 't.'");
|
|
CREATE DATABASE test_ignore;
|
|
**** On Master ****
|
|
SHOW DATABASES;
|
|
Database
|
|
information_schema
|
|
mtr
|
|
mysql
|
|
performance_schema
|
|
test
|
|
test_ignore
|
|
USE test;
|
|
CREATE TABLE t1 (a INT, b INT);
|
|
SHOW TABLES;
|
|
Tables_in_test
|
|
t1
|
|
INSERT INTO t1 VALUES (1,1), (2,2);
|
|
USE test_ignore;
|
|
CREATE TABLE t2 (a INT, b INT);
|
|
SHOW TABLES;
|
|
Tables_in_test_ignore
|
|
t2
|
|
INSERT INTO t2 VALUES (3,3), (4,4);
|
|
show binlog events from <binlog_start>;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Table_map # # table_id: # (mtr.test_suppressions)
|
|
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query # # COMMIT
|
|
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT, b INT)
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query # # COMMIT
|
|
**** On Slave ****
|
|
SHOW DATABASES;
|
|
Database
|
|
information_schema
|
|
mtr
|
|
mysql
|
|
performance_schema
|
|
test
|
|
USE test;
|
|
SHOW TABLES;
|
|
Tables_in_test
|
|
t1
|
|
USE test_ignore;
|
|
ERROR 42000: Unknown database 'test_ignore'
|
|
DROP DATABASE test_ignore;
|
|
USE test;
|
|
DROP TABLE t1;
|
|
USE test;
|
|
include/rpl_reset.inc
|
|
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;
|
|
show binlog events from <binlog_start>;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
|
master-bin.000001 # Query # # BEGIN
|
|
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query # # COMMIT
|
|
DROP TABLE t1;
|
|
================ Test for BUG#17620 ================
|
|
include/rpl_reset.inc
|
|
**** On Slave ****
|
|
SET GLOBAL QUERY_CACHE_SIZE=0;
|
|
call mtr.add_suppression("Slave SQL.*Could not execute Update_rows event on table test.t1.* Error_code: 1032");
|
|
**** On Master ****
|
|
CREATE TABLE t1 (a INT);
|
|
INSERT INTO t1 VALUES (1),(2),(3);
|
|
**** On Slave ****
|
|
SET GLOBAL QUERY_CACHE_SIZE=16*1024*1024;
|
|
**** On Master ****
|
|
INSERT INTO t1 VALUES (4),(5),(6);
|
|
**** On Slave ****
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
**** On Master ****
|
|
INSERT INTO t1 VALUES (7),(8),(9);
|
|
**** On Slave ****
|
|
SELECT * FROM t1;
|
|
a
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
SET GLOBAL QUERY_CACHE_SIZE=0;
|
|
DROP TABLE t1;
|
|
================ Test for BUG#22550 ================
|
|
include/rpl_reset.inc
|
|
CREATE TABLE t1 (a BIT(1), b INT) ENGINE=MYISAM;
|
|
INSERT INTO t1 VALUES(1,2);
|
|
SELECT HEX(a),b FROM t1;
|
|
HEX(a) b
|
|
1 2
|
|
SELECT HEX(a),b FROM t1;
|
|
HEX(a) b
|
|
1 2
|
|
UPDATE t1 SET a=0 WHERE b=2;
|
|
SELECT HEX(a),b FROM t1;
|
|
HEX(a) b
|
|
0 2
|
|
SELECT HEX(a),b FROM t1;
|
|
HEX(a) b
|
|
0 2
|
|
DROP TABLE IF EXISTS t1;
|
|
================ Test for BUG#22583 ================
|
|
include/rpl_reset.inc
|
|
**** On 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;
|
|
**** On Slave ****
|
|
ALTER TABLE t1_myisam ENGINE=INNODB;
|
|
ALTER TABLE t1_innodb ENGINE=MYISAM;
|
|
ALTER TABLE t2_myisam ENGINE=INNODB;
|
|
ALTER TABLE t2_innodb ENGINE=MYISAM;
|
|
**** On 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;
|
|
k HEX(a) HEX(b)
|
|
1 0 101
|
|
2 1 100
|
|
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
|
k HEX(a) HEX(b)
|
|
1 0 101
|
|
2 1 100
|
|
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;
|
|
k HEX(a) HEX(b)
|
|
1 0 9
|
|
2 1 8
|
|
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
|
k HEX(a) HEX(b)
|
|
1 0 9
|
|
2 1 8
|
|
**** On Slave ****
|
|
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
|
k HEX(a) HEX(b)
|
|
1 0 101
|
|
2 1 100
|
|
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
|
k HEX(a) HEX(b)
|
|
1 0 101
|
|
2 1 100
|
|
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
|
k HEX(a) HEX(b)
|
|
1 0 9
|
|
2 1 8
|
|
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
|
k HEX(a) HEX(b)
|
|
1 0 9
|
|
2 1 8
|
|
**** On Master ****
|
|
UPDATE t1_myisam SET a=0 WHERE k=2;
|
|
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
|
k HEX(a) HEX(b)
|
|
1 0 101
|
|
2 0 100
|
|
UPDATE t1_innodb SET a=0 WHERE k=2;
|
|
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
|
k HEX(a) HEX(b)
|
|
1 0 101
|
|
2 0 100
|
|
UPDATE t2_myisam SET a=0 WHERE k=2;
|
|
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
|
k HEX(a) HEX(b)
|
|
1 0 9
|
|
2 0 8
|
|
UPDATE t2_innodb SET a=0 WHERE k=2;
|
|
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
|
k HEX(a) HEX(b)
|
|
1 0 9
|
|
2 0 8
|
|
**** On Slave ****
|
|
SELECT k, HEX(a),HEX(b) FROM t1_myisam;
|
|
k HEX(a) HEX(b)
|
|
1 0 101
|
|
2 0 100
|
|
SELECT k, HEX(a),HEX(b) FROM t1_innodb;
|
|
k HEX(a) HEX(b)
|
|
1 0 101
|
|
2 0 100
|
|
SELECT k, HEX(a),HEX(b) FROM t2_myisam;
|
|
k HEX(a) HEX(b)
|
|
1 0 9
|
|
2 0 8
|
|
SELECT k, HEX(a),HEX(b) FROM t2_innodb;
|
|
k HEX(a) HEX(b)
|
|
1 0 9
|
|
2 0 8
|
|
**** On Master ****
|
|
DROP TABLE IF EXISTS t1_myisam, t1_innodb, t2_myisam, t2_innodb;
|
|
drop table if exists t1, t2;
|
|
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 ;
|
|
insert into t1 values (1,1),(2,2);
|
|
insert into t2 values (1,1),(4,4);
|
|
UPDATE t2,t1 SET t2.a=t1.a+2;
|
|
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
|
|
select * from t2 /* must be (3,1), (4,4) */;
|
|
a b
|
|
3 1
|
|
4 4
|
|
select * from t2 /* must be (3,1), (4,4) */;
|
|
a b
|
|
3 1
|
|
4 4
|
|
drop table t1,t2;
|
|
include/rpl_reset.inc
|
|
**** On Master ****
|
|
CREATE TABLE t1 (a INT PRIMARY KEY, b SET('master','slave'));
|
|
INSERT INTO t1 VALUES (1,'master,slave'), (2,'master,slave');
|
|
**** On Slave ****
|
|
UPDATE t1 SET a = 5, b = 'slave' WHERE a = 1;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
2 master,slave
|
|
5 slave
|
|
set @@global.slave_exec_mode= 'IDEMPOTENT';
|
|
**** On Master ****
|
|
UPDATE t1 SET a = 5, b = 'master' WHERE a = 1;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
2 master,slave
|
|
5 master
|
|
**** On Slave ****
|
|
set @@global.slave_exec_mode= default;
|
|
Last_SQL_Error
|
|
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
2 master,slave
|
|
5 slave
|
|
**** On Master ****
|
|
DROP TABLE t1;
|
|
include/rpl_end.inc
|