mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
fbb5920399
The idea is to add DEFINER-clause in CREATE PROCEDURE and CREATE FUNCTION statements. Almost all support of definer in stored routines had been already done before this patch. NOTE: this patch changes behaviour of dumping stored routines in mysqldump. Before this patch, mysqldump did not dump DEFINER-clause for stored routines and this was documented behaviour. In order to get full information about stored routines, one should have dumped mysql.proc table. This patch changes this behaviour, so that DEFINER-clause is dumped. Since DEFINER-clause is not supported in CREATE PROCEDURE | FUNCTION statements before this patch, the clause is covered by additional version-specific comments.
1693 lines
31 KiB
Text
1693 lines
31 KiB
Text
stop slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
reset master;
|
|
reset slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
start slave;
|
|
SET AUTOCOMMIT = 1;
|
|
DROP DATABASE IF EXISTS mysqltest1;
|
|
DROP DATABASE IF EXISTS mysqltest2;
|
|
DROP DATABASE IF EXISTS mysqltest3;
|
|
CREATE DATABASE mysqltest1;
|
|
CREATE DATABASE mysqltest2;
|
|
CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE= "InnoDB";
|
|
INSERT INTO mysqltest1.t1 SET f1= 0;
|
|
CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE INDEX my_idx6 ON mysqltest1.t6(f1);
|
|
CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE= "InnoDB";
|
|
INSERT INTO mysqltest1.t7 SET f1= 0;
|
|
CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE= "InnoDB";
|
|
CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT);
|
|
SET AUTOCOMMIT = 0;
|
|
use mysqltest1;
|
|
|
|
-------- switch to slave --------
|
|
SET AUTOCOMMIT = 0;
|
|
use mysqltest1;
|
|
|
|
-------- switch to master -------
|
|
|
|
######## COMMIT ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 0 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
|
|
-------- switch to master -------
|
|
COMMIT;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
|
|
######## ROLLBACK ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 1 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
TEST-INFO: SLAVE: The INSERT is not committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
|
|
######## SET AUTOCOMMIT=1 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 1 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
-------- switch to master -------
|
|
SET AUTOCOMMIT=1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SET AUTOCOMMIT=0;
|
|
|
|
######## START TRANSACTION ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 2 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
|
|
-------- switch to master -------
|
|
START TRANSACTION;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
|
|
######## BEGIN ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 3 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
|
|
-------- switch to master -------
|
|
BEGIN;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
|
|
######## DROP TABLE mysqltest1.t2 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 4 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
|
|
-------- switch to master -------
|
|
DROP TABLE mysqltest1.t2;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW TABLES LIKE 't2';
|
|
Tables_in_mysqltest1 (t2)
|
|
|
|
-------- switch to slave --------
|
|
SHOW TABLES LIKE 't2';
|
|
Tables_in_mysqltest1 (t2)
|
|
|
|
-------- switch to master -------
|
|
|
|
######## DROP TEMPORARY TABLE mysqltest1.t23 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 5 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
-------- switch to master -------
|
|
DROP TEMPORARY TABLE mysqltest1.t23;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
Warnings:
|
|
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW TABLES LIKE 't23';
|
|
Tables_in_mysqltest1 (t23)
|
|
|
|
-------- switch to slave --------
|
|
SHOW TABLES LIKE 't23';
|
|
Tables_in_mysqltest1 (t23)
|
|
|
|
-------- switch to master -------
|
|
|
|
######## RENAME TABLE mysqltest1.t3 to mysqltest1.t20 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 5 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
-------- switch to master -------
|
|
RENAME TABLE mysqltest1.t3 to mysqltest1.t20;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW TABLES LIKE 't20';
|
|
Tables_in_mysqltest1 (t20)
|
|
t20
|
|
|
|
-------- switch to slave --------
|
|
SHOW TABLES LIKE 't20';
|
|
Tables_in_mysqltest1 (t20)
|
|
t20
|
|
|
|
-------- switch to master -------
|
|
|
|
######## ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 6 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
-------- switch to master -------
|
|
ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
describe mysqltest1.t4;
|
|
Field Type Null Key Default Extra
|
|
f1 bigint(20) YES NULL
|
|
f2 bigint(20) YES NULL
|
|
|
|
-------- switch to slave --------
|
|
describe mysqltest1.t4;
|
|
Field Type Null Key Default Extra
|
|
f1 bigint(20) YES NULL
|
|
f2 bigint(20) YES NULL
|
|
|
|
-------- switch to master -------
|
|
|
|
######## CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB" ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 7 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
|
|
-------- switch to master -------
|
|
CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB";
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
|
|
######## CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT) ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 8 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
-------- switch to master -------
|
|
CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT);
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
Warnings:
|
|
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
|
|
######## TRUNCATE TABLE mysqltest1.t7 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 8 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
-------- switch to master -------
|
|
TRUNCATE TABLE mysqltest1.t7;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SELECT * FROM mysqltest1.t7;
|
|
f1
|
|
|
|
-------- switch to slave --------
|
|
SELECT * FROM mysqltest1.t7;
|
|
f1
|
|
|
|
-------- switch to master -------
|
|
|
|
######## LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 9 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
-------- switch to master -------
|
|
LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
UNLOCK TABLES;
|
|
|
|
######## UNLOCK TABLES ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 10 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to master -------
|
|
UNLOCK TABLES;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: SLAVE: The INSERT is not committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
LOCK TABLES mysqltest1.t1 READ;
|
|
|
|
######## UNLOCK TABLES ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 10 + 1;
|
|
ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to master -------
|
|
UNLOCK TABLES;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: SLAVE: The INSERT is not committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ;
|
|
|
|
######## UNLOCK TABLES ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 10 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
-------- switch to master -------
|
|
UNLOCK TABLES;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
|
|
######## DROP INDEX my_idx6 ON mysqltest1.t6 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 11 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
-------- switch to master -------
|
|
DROP INDEX my_idx6 ON mysqltest1.t6;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW INDEX FROM mysqltest1.t6;
|
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
|
|
|
-------- switch to slave --------
|
|
SHOW INDEX FROM mysqltest1.t6;
|
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
|
|
|
-------- switch to master -------
|
|
|
|
######## CREATE INDEX my_idx5 ON mysqltest1.t5(f1) ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 12 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
|
|
-------- switch to master -------
|
|
CREATE INDEX my_idx5 ON mysqltest1.t5(f1);
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW INDEX FROM mysqltest1.t5;
|
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
|
t5 1 my_idx5 1 f1 A 0 NULL NULL YES BTREE
|
|
|
|
-------- switch to slave --------
|
|
SHOW INDEX FROM mysqltest1.t5;
|
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
|
t5 1 my_idx5 1 f1 A NULL NULL NULL YES BTREE
|
|
|
|
-------- switch to master -------
|
|
|
|
######## DROP DATABASE mysqltest2 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 13 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
|
|
-------- switch to master -------
|
|
DROP DATABASE mysqltest2;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW DATABASES LIKE "mysqltest2";
|
|
Database (mysqltest2)
|
|
|
|
-------- switch to slave --------
|
|
SHOW DATABASES LIKE "mysqltest2";
|
|
Database (mysqltest2)
|
|
|
|
-------- switch to master -------
|
|
|
|
######## CREATE DATABASE mysqltest3 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 14 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
|
|
-------- switch to master -------
|
|
CREATE DATABASE mysqltest3;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW DATABASES LIKE "mysqltest3";
|
|
Database (mysqltest3)
|
|
mysqltest3
|
|
|
|
-------- switch to slave --------
|
|
SHOW DATABASES LIKE "mysqltest3";
|
|
Database (mysqltest3)
|
|
mysqltest3
|
|
|
|
-------- switch to master -------
|
|
|
|
######## CREATE PROCEDURE p1() READS SQL DATA SELECT "this is p1" ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 15 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
|
|
-------- switch to master -------
|
|
CREATE PROCEDURE p1() READS SQL DATA SELECT "this is p1";
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
Db mysqltest1
|
|
Name p1
|
|
Type PROCEDURE
|
|
Definer root@localhost
|
|
Modified #
|
|
Created #
|
|
Security_type DEFINER
|
|
Comment
|
|
-------- switch to slave -------
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
Db mysqltest1
|
|
Name p1
|
|
Type PROCEDURE
|
|
Definer root@localhost
|
|
Modified #
|
|
Created #
|
|
Security_type DEFINER
|
|
Comment
|
|
|
|
######## ALTER PROCEDURE p1 COMMENT "I have been altered" ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 16 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
|
|
-------- switch to master -------
|
|
ALTER PROCEDURE p1 COMMENT "I have been altered";
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
Db mysqltest1
|
|
Name p1
|
|
Type PROCEDURE
|
|
Definer root@localhost
|
|
Modified #
|
|
Created #
|
|
Security_type DEFINER
|
|
Comment I have been altered
|
|
-------- switch to slave -------
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
Db mysqltest1
|
|
Name p1
|
|
Type PROCEDURE
|
|
Definer root@localhost
|
|
Modified #
|
|
Created #
|
|
Security_type DEFINER
|
|
Comment I have been altered
|
|
|
|
######## DROP PROCEDURE p1 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 17 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
|
|
-------- switch to master -------
|
|
DROP PROCEDURE p1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
-------- switch to slave -------
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
|
|
######## CREATE OR REPLACE VIEW v1 as select * from t1 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 18 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
|
|
-------- switch to master -------
|
|
CREATE OR REPLACE VIEW v1 as select * from t1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW CREATE VIEW v1;
|
|
View Create View
|
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
|
|
|
|
-------- switch to slave -------
|
|
SHOW CREATE VIEW v1;
|
|
View Create View
|
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
|
|
|
|
######## ALTER VIEW v1 AS select f1 from t1 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 19 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
|
|
-------- switch to master -------
|
|
ALTER VIEW v1 AS select f1 from t1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW CREATE VIEW v1;
|
|
View Create View
|
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
|
|
|
|
-------- switch to slave -------
|
|
SHOW CREATE VIEW v1;
|
|
View Create View
|
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
|
|
|
|
######## DROP VIEW IF EXISTS v1 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 20 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
|
|
-------- switch to master -------
|
|
DROP VIEW IF EXISTS v1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW CREATE VIEW v1;
|
|
ERROR 42S02: Table 'mysqltest1.v1' doesn't exist
|
|
|
|
-------- switch to slave -------
|
|
SHOW CREATE VIEW v1;
|
|
ERROR 42S02: Table 'mysqltest1.v1' doesn't exist
|
|
|
|
######## CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 21 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
|
|
-------- switch to master -------
|
|
CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW TRIGGERS;
|
|
Trigger Event Table Statement Timing Created sql_mode Definer
|
|
trg1 INSERT t1 SET @a:=1 BEFORE NULL root@localhost
|
|
|
|
-------- switch to slave -------
|
|
SHOW TRIGGERS;
|
|
Trigger Event Table Statement Timing Created sql_mode Definer
|
|
trg1 INSERT t1 SET @a:=1 BEFORE NULL root@localhost
|
|
|
|
######## DROP TRIGGER trg1 ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 22 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
|
|
-------- switch to master -------
|
|
DROP TRIGGER trg1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SHOW TRIGGERS;
|
|
Trigger Event Table Statement Timing Created sql_mode Definer
|
|
|
|
-------- switch to slave -------
|
|
SHOW TRIGGERS;
|
|
Trigger Event Table Statement Timing Created sql_mode Definer
|
|
|
|
######## CREATE USER user1@localhost ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 23 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
|
|
-------- switch to master -------
|
|
CREATE USER user1@localhost;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SELECT user FROM mysql.user WHERE user = 'user1';
|
|
user
|
|
user1
|
|
|
|
-------- switch to slave -------
|
|
SELECT user FROM mysql.user WHERE user = 'user1';
|
|
user
|
|
user1
|
|
|
|
######## RENAME USER user1@localhost TO rename1@localhost ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 24 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
|
|
-------- switch to master -------
|
|
RENAME USER user1@localhost TO rename1@localhost;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SELECT user FROM mysql.user WHERE user = 'rename1';
|
|
user
|
|
rename1
|
|
|
|
-------- switch to slave -------
|
|
SELECT user FROM mysql.user WHERE user = 'rename1';
|
|
user
|
|
rename1
|
|
|
|
######## DROP USER rename1@localhost ########
|
|
|
|
-------- switch to master -------
|
|
INSERT INTO t1 SET f1= 25 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
|
|
-------- switch to master -------
|
|
DROP USER rename1@localhost;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
|
|
-------- switch to master -------
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to slave --------
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
|
|
-------- switch to master -------
|
|
flush logs;
|
|
|
|
-------- switch to slave --------
|
|
flush logs;
|
|
|
|
-------- switch to master -------
|
|
SELECT user FROM mysql.user WHERE user = 'rename1';
|
|
user
|
|
|
|
-------- switch to slave -------
|
|
SELECT user FROM mysql.user WHERE user = 'rename1';
|
|
user
|
|
DROP DATABASE IF EXISTS mysqltest1;
|
|
DROP DATABASE IF EXISTS mysqltest2;
|
|
DROP DATABASE IF EXISTS mysqltest3;
|