1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-5377 Row-based replication of MariaDB temporal data types with FSP>0 into a different column type

This commit is contained in:
Alexander Barkov
2018-12-03 21:26:07 +04:00
parent 88a480cecb
commit 269da4bf19
10 changed files with 256 additions and 56 deletions

View File

@@ -0,0 +1,21 @@
#
# MDEV-8894 Inserting fractional seconds into MySQL 5.6 master breaks consistency on MariaDB 10 slave
#
include/master-slave.inc
[connection master]
connection slave;
include/stop_slave.inc
connection master;
include/rpl_stop_server.inc [server_number=1]
include/rpl_start_server.inc [server_number=1]
connection slave;
CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1, master_user='root', master_log_file='master-bin.000001', master_log_pos=4;
include/start_slave.inc
connection master;
connection slave;
SELECT * FROM t1 ORDER BY id;
id a
1 2001-01-01 00:00:01.000
include/stop_slave.inc
DROP TABLE t1;
include/rpl_end.inc

View File

@@ -0,0 +1,22 @@
#
# MDEV-8894 Inserting fractional seconds into MySQL 5.6 master breaks consistency on MariaDB 10 slave
#
include/master-slave.inc
[connection master]
connection slave;
include/stop_slave.inc
connection master;
include/rpl_stop_server.inc [server_number=1]
include/rpl_start_server.inc [server_number=1]
connection slave;
CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1, master_user='root', master_log_file='master-bin.000001', master_log_pos=4;
include/start_slave.inc
connection master;
connection slave;
SELECT * FROM t1 ORDER BY id;
id a
1 2001-01-01 00:00:01.000
2 2001-01-01 00:00:00.999
include/stop_slave.inc
DROP TABLE t1;
include/rpl_end.inc

View File

@@ -0,0 +1,50 @@
--echo #
--echo # MDEV-8894 Inserting fractional seconds into MySQL 5.6 master breaks consistency on MariaDB 10 slave
--echo #
--source include/have_innodb.inc
--source include/master-slave.inc
--connection slave
--source include/stop_slave.inc
--connection master
--let $datadir= `SELECT @@datadir`
--let $rpl_server_number= 1
--source include/rpl_stop_server.inc
--remove_file $datadir/master-bin.000001
#
# Simulate MySQL 5.7.x master
#
# mysql-5.7.11-stm-temporal-round-binlog.000001 was recorded with
# "mysqld --log-bin --binlog-format=statement", with the following SQL script:
#
#CREATE TABLE t1 (id SERIAL, a DATETIME(3));
#INSERT INTO t1 (a) VALUES ('2001-01-01 00:00:00.999999');
#
--copy_file $MYSQL_TEST_DIR/std_data/rpl/mysql-5.7.11-stm-temporal-round-binlog.000001 $datadir/master-bin.000001
--let $rpl_server_number= 1
--source include/rpl_start_server.inc
--source include/wait_until_connected_again.inc
--connection slave
--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1, master_user='root', master_log_file='master-bin.000001', master_log_pos=4;
--source include/start_slave.inc
--connection master
--sync_slave_with_master
SELECT * FROM t1 ORDER BY id;
--source include/stop_slave.inc
DROP TABLE t1;
--let $rpl_only_running_threads= 1
--source include/rpl_end.inc

View File

@@ -0,0 +1,54 @@
--echo #
--echo # MDEV-8894 Inserting fractional seconds into MySQL 5.6 master breaks consistency on MariaDB 10 slave
--echo #
--source include/have_innodb.inc
--source include/master-slave.inc
--connection slave
--source include/stop_slave.inc
--connection master
--let $datadir= `SELECT @@datadir`
--let $rpl_server_number= 1
--source include/rpl_stop_server.inc
--remove_file $datadir/master-bin.000001
#
# Simulate MySQL 8.0.x master
#
# mysql-8.0.13-stm-temporal-round-binlog.000001 was recorded with
# "mysqld --log-bin --binlog-format=statement", with the following SQL script:
#
#SET NAMES utf8mb4 COLLATE utf8mb4_general_ci;
#SET sql_mode='';
#CREATE TABLE t1 (id SERIAL, a DATETIME(3));
#INSERT INTO t1 (a) VALUES ('2001-01-01 00:00:00.999999');
#SET sql_mode=TIME_TRUNCATE_FRACTIONAL;
#INSERT INTO t1 (a) VALUES ('2001-01-01 00:00:00.999999');
#
--copy_file $MYSQL_TEST_DIR/std_data/rpl/mysql-8.0.13-stm-temporal-round-binlog.000001 $datadir/master-bin.000001
--let $rpl_server_number= 1
--source include/rpl_start_server.inc
--source include/wait_until_connected_again.inc
--connection slave
--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1, master_user='root', master_log_file='master-bin.000001', master_log_pos=4;
--source include/start_slave.inc
--connection master
--sync_slave_with_master
SELECT * FROM t1 ORDER BY id;
--source include/stop_slave.inc
DROP TABLE t1;
--let $rpl_only_running_threads= 1
--source include/rpl_end.inc