mirror of
https://github.com/MariaDB/server.git
synced 2026-03-01 14:08:41 +01:00
Implement an improved binlog implementation that is integrated into the storage engine. The new implementation is enabled with the --binlog-storage-engine option. Initially the InnoDB storage engine implements the binlog. Integrating the binlog in the storage engine improves performance, since it makes the InnoDB redo log the single source of truth and avoids the need for expensive two-phase commit between binlog and engine. It also makes it possible to disable durability (set --innodb-flush-log-at-trx-commit=0) to further improve performance, while still preserving the ability to recover the binlog and database into a consistent state after a crash. The new binlog implementation also greatly improves the internal design and implementation of the binlog, and enables future enhancements for replication. This is a squash of the original 11.4-based patch series. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
1765 lines
36 KiB
Text
1765 lines
36 KiB
Text
include/master-slave.inc
|
|
[connection master]
|
|
set global sql_mode='';
|
|
set local sql_mode='';
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection master;
|
|
SET AUTOCOMMIT = 1;
|
|
CREATE DATABASE mysqltest1;
|
|
CREATE DATABASE mysqltest2;
|
|
CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE=InnoDB;
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection master;
|
|
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) ENGINE=MEMORY;
|
|
SET AUTOCOMMIT = 0;
|
|
use mysqltest1;
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SET AUTOCOMMIT = 1;
|
|
use mysqltest1;
|
|
connection master;
|
|
|
|
######## SELECT 1 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 0 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
connection master;
|
|
SELECT 1;
|
|
1
|
|
1
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
|
|
TEST-INFO: SLAVE: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
|
|
######## SELECT COUNT(*) FROM t1 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 0 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
connection master;
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
2
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
|
|
TEST-INFO: SLAVE: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
|
|
######## COMMIT ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 0 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
0
|
|
connection master;
|
|
COMMIT;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
|
|
######## ROLLBACK ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 1 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
|
|
TEST-INFO: SLAVE: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
|
|
######## SET AUTOCOMMIT=1 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 1 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
1
|
|
connection master;
|
|
SET AUTOCOMMIT=1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SET AUTOCOMMIT=0;
|
|
|
|
######## START TRANSACTION ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 2 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
2
|
|
connection master;
|
|
START TRANSACTION;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
|
|
######## BEGIN ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 3 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
3
|
|
connection master;
|
|
BEGIN;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
|
|
######## DROP TABLE mysqltest1.t2 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 4 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
4
|
|
connection master;
|
|
DROP TABLE mysqltest1.t2;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW TABLES LIKE 't2';
|
|
Tables_in_mysqltest1 (t2)
|
|
connection slave;
|
|
SHOW TABLES LIKE 't2';
|
|
Tables_in_mysqltest1 (t2)
|
|
connection master;
|
|
|
|
######## DROP TEMPORARY TABLE mysqltest1.t23 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 5 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
connection master;
|
|
DROP TEMPORARY TABLE mysqltest1.t23;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
5
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Failed)
|
|
connection master;
|
|
SHOW TABLES LIKE 't23';
|
|
Tables_in_mysqltest1 (t23)
|
|
connection slave;
|
|
SHOW TABLES LIKE 't23';
|
|
Tables_in_mysqltest1 (t23)
|
|
connection master;
|
|
|
|
######## RENAME TABLE mysqltest1.t3 to mysqltest1.t20 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 5 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
connection master;
|
|
RENAME TABLE mysqltest1.t3 to mysqltest1.t20;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW TABLES LIKE 't20';
|
|
Tables_in_mysqltest1 (t20)
|
|
t20
|
|
connection slave;
|
|
SHOW TABLES LIKE 't20';
|
|
Tables_in_mysqltest1 (t20)
|
|
t20
|
|
connection master;
|
|
|
|
######## ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 6 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
6
|
|
connection master;
|
|
ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
describe mysqltest1.t4;
|
|
Field Type Null Key Default Extra
|
|
f1 bigint(20) YES NULL
|
|
f2 bigint(20) YES NULL
|
|
connection slave;
|
|
describe mysqltest1.t4;
|
|
Field Type Null Key Default Extra
|
|
f1 bigint(20) YES NULL
|
|
f2 bigint(20) YES NULL
|
|
connection master;
|
|
|
|
######## CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= InnoDB ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 7 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
7
|
|
connection master;
|
|
CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= InnoDB;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
|
|
######## CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT) ENGINE=MEMORY ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 8 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
connection master;
|
|
CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT) ENGINE=MEMORY;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
8
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Failed)
|
|
connection master;
|
|
|
|
######## TRUNCATE TABLE mysqltest1.t7 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 8 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
connection master;
|
|
TRUNCATE TABLE mysqltest1.t7;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SELECT * FROM mysqltest1.t7;
|
|
f1
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT * FROM mysqltest1.t7;
|
|
f1
|
|
connection master;
|
|
|
|
######## LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 9 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
9
|
|
connection master;
|
|
LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
UNLOCK TABLES;
|
|
|
|
######## UNLOCK TABLES ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 10 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
connection master;
|
|
UNLOCK TABLES;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: SLAVE: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
LOCK TABLES mysqltest1.t1 READ;
|
|
|
|
######## UNLOCK TABLES ########
|
|
connection 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
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
connection master;
|
|
UNLOCK TABLES;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: MASTER: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
|
|
TEST-INFO: SLAVE: The INSERT is not committed (Succeeded)
|
|
connection master;
|
|
LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ;
|
|
|
|
######## UNLOCK TABLES ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 10 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
10
|
|
connection master;
|
|
UNLOCK TABLES;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
|
|
######## DROP INDEX my_idx6 ON mysqltest1.t6 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 11 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
11
|
|
connection master;
|
|
DROP INDEX my_idx6 ON mysqltest1.t6;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection 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 Index_comment Ignored
|
|
connection 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 Index_comment Ignored
|
|
connection master;
|
|
|
|
######## CREATE INDEX my_idx5 ON mysqltest1.t5(f1) ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 12 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
12
|
|
connection master;
|
|
CREATE INDEX my_idx5 ON mysqltest1.t5(f1);
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection 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 Index_comment Ignored
|
|
t5 1 my_idx5 1 f1 A 0 NULL NULL YES BTREE NO
|
|
connection 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 Index_comment Ignored
|
|
t5 1 my_idx5 1 f1 A NULL NULL NULL YES BTREE NO
|
|
connection master;
|
|
|
|
######## DROP DATABASE mysqltest2 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 13 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
13
|
|
connection master;
|
|
DROP DATABASE mysqltest2;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW DATABASES LIKE "mysqltest2";
|
|
Database (mysqltest2)
|
|
connection slave;
|
|
SHOW DATABASES LIKE "mysqltest2";
|
|
Database (mysqltest2)
|
|
connection master;
|
|
|
|
######## CREATE DATABASE mysqltest3 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 14 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
14
|
|
connection master;
|
|
CREATE DATABASE mysqltest3;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW DATABASES LIKE "mysqltest3";
|
|
Database (mysqltest3)
|
|
mysqltest3
|
|
connection slave;
|
|
SHOW DATABASES LIKE "mysqltest3";
|
|
Database (mysqltest3)
|
|
mysqltest3
|
|
connection master;
|
|
|
|
######## CREATE PROCEDURE p1() READS SQL DATA SELECT "this is p1" ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 15 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
15
|
|
connection master;
|
|
CREATE PROCEDURE p1() READS SQL DATA SELECT "this is p1";
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
Db mysqltest1
|
|
Name p1
|
|
Type PROCEDURE
|
|
Definer root@localhost
|
|
Modified #
|
|
Created #
|
|
Security_type DEFINER
|
|
Comment
|
|
character_set_client latin1
|
|
collation_connection latin1_swedish_ci
|
|
Database Collation utf8mb4_uca1400_ai_ci
|
|
connection slave;
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
Db mysqltest1
|
|
Name p1
|
|
Type PROCEDURE
|
|
Definer root@localhost
|
|
Modified #
|
|
Created #
|
|
Security_type DEFINER
|
|
Comment
|
|
character_set_client latin1
|
|
collation_connection latin1_swedish_ci
|
|
Database Collation utf8mb4_uca1400_ai_ci
|
|
connection master;
|
|
|
|
######## ALTER PROCEDURE p1 COMMENT "I have been altered" ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 16 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
16
|
|
connection master;
|
|
ALTER PROCEDURE p1 COMMENT "I have been altered";
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection 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
|
|
character_set_client latin1
|
|
collation_connection latin1_swedish_ci
|
|
Database Collation utf8mb4_uca1400_ai_ci
|
|
connection 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
|
|
character_set_client latin1
|
|
collation_connection latin1_swedish_ci
|
|
Database Collation utf8mb4_uca1400_ai_ci
|
|
connection master;
|
|
|
|
######## DROP PROCEDURE p1 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 17 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
17
|
|
connection master;
|
|
DROP PROCEDURE p1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
connection slave;
|
|
SHOW PROCEDURE STATUS LIKE 'p1';
|
|
connection master;
|
|
|
|
######## CREATE OR REPLACE VIEW v1 as select * from t1 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 18 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
18
|
|
connection master;
|
|
CREATE OR REPLACE VIEW v1 as select * from t1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW CREATE VIEW v1;
|
|
View Create View character_set_client collation_connection
|
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
|
connection slave;
|
|
SHOW CREATE VIEW v1;
|
|
View Create View character_set_client collation_connection
|
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
|
connection master;
|
|
|
|
######## ALTER VIEW v1 AS select f1 from t1 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 19 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
19
|
|
connection master;
|
|
ALTER VIEW v1 AS select f1 from t1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW CREATE VIEW v1;
|
|
View Create View character_set_client collation_connection
|
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
|
connection slave;
|
|
SHOW CREATE VIEW v1;
|
|
View Create View character_set_client collation_connection
|
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
|
connection master;
|
|
|
|
######## DROP VIEW IF EXISTS v1 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 20 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
20
|
|
connection master;
|
|
DROP VIEW IF EXISTS v1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW CREATE VIEW v1;
|
|
ERROR 42S02: Table 'mysqltest1.v1' doesn't exist
|
|
connection slave;
|
|
SHOW CREATE VIEW v1;
|
|
ERROR 42S02: Table 'mysqltest1.v1' doesn't exist
|
|
connection master;
|
|
|
|
######## CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 21 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
21
|
|
connection master;
|
|
CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW TRIGGERS;
|
|
Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
|
|
trg1 INSERT t1 SET @a:=1 BEFORE # root@localhost latin1 latin1_swedish_ci utf8mb4_uca1400_ai_ci
|
|
connection slave;
|
|
SHOW TRIGGERS;
|
|
Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
|
|
trg1 INSERT t1 SET @a:=1 BEFORE # root@localhost latin1 latin1_swedish_ci utf8mb4_uca1400_ai_ci
|
|
connection master;
|
|
|
|
######## DROP TRIGGER trg1 ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 22 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
22
|
|
connection master;
|
|
DROP TRIGGER trg1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SHOW TRIGGERS;
|
|
Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
|
|
connection slave;
|
|
SHOW TRIGGERS;
|
|
Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
|
|
connection master;
|
|
|
|
######## CREATE USER user1@localhost ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 23 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
23
|
|
connection master;
|
|
CREATE USER user1@localhost;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SELECT user FROM mysql.user WHERE user = 'user1';
|
|
User
|
|
user1
|
|
connection slave;
|
|
SELECT user FROM mysql.user WHERE user = 'user1';
|
|
User
|
|
user1
|
|
connection master;
|
|
|
|
######## RENAME USER user1@localhost TO rename1@localhost ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 24 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
24
|
|
connection master;
|
|
RENAME USER user1@localhost TO rename1@localhost;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SELECT user FROM mysql.user WHERE user = 'rename1';
|
|
User
|
|
rename1
|
|
connection slave;
|
|
SELECT user FROM mysql.user WHERE user = 'rename1';
|
|
User
|
|
rename1
|
|
connection master;
|
|
|
|
######## DROP USER rename1@localhost ########
|
|
connection master;
|
|
INSERT INTO t1 SET f1= 25 + 1;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
25
|
|
connection master;
|
|
DROP USER rename1@localhost;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
connection master;
|
|
ROLLBACK;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
|
|
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
include/save_master_gtid.inc
|
|
connection slave;
|
|
include/sync_with_master_gtid.inc
|
|
connection slave;
|
|
SELECT MAX(f1) FROM t1;
|
|
MAX(f1)
|
|
26
|
|
|
|
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
|
|
connection master;
|
|
SELECT user FROM mysql.user WHERE user = 'rename1';
|
|
User
|
|
connection slave;
|
|
SELECT user FROM mysql.user WHERE user = 'rename1';
|
|
User
|
|
use test;
|
|
connection master;
|
|
DROP TEMPORARY TABLE mysqltest1.t22;
|
|
DROP DATABASE mysqltest1;
|
|
DROP DATABASE mysqltest3;
|
|
set global sql_mode=default;
|
|
include/rpl_end.inc
|