Skip to content
/ server Public
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
include/master-slave.inc
[connection master]
connection slave;
include/stop_slave.inc
#
# Test 1: CHANGE MASTER TO with relay_log_pos when Using_Gtid is
# already No should NOT produce a spurious 'from No to No' warning
#
CHANGE MASTER TO MASTER_USE_GTID=NO;
CHANGE MASTER TO relay_log_pos=0;
SHOW WARNINGS;
Level Code Message
#
# Test 2: CHANGE MASTER TO with master_log_file/pos when Using_Gtid
# is already No should NOT produce a warning
#
CHANGE MASTER TO master_log_pos=IO_LOG_POS, master_log_file='IO_LOG_FILE';
SHOW WARNINGS;
Level Code Message
#
# Test 3: CHANGE MASTER TO with log coordinates when Using_Gtid is
# Slave_Pos SHOULD produce a warning (value actually changes)
#
CHANGE MASTER TO MASTER_USE_GTID=Slave_Pos;
CHANGE MASTER TO master_log_pos=IO_LOG_POS, master_log_file='IO_LOG_FILE';
Warnings:
Note 4190 CHANGE MASTER TO is implicitly changing the value of 'Using_Gtid' from 'Slave_Pos' to 'No'
SHOW WARNINGS;
Level Code Message
Note 4190 CHANGE MASTER TO is implicitly changing the value of 'Using_Gtid' from 'Slave_Pos' to 'No'
#
# Cleanup
#
CHANGE MASTER TO MASTER_USE_GTID=Slave_Pos;
include/start_slave.inc
include/rpl_end.inc
4 changes: 0 additions & 4 deletions mysql-test/suite/rpl/r/rpl_from_mysql80.result
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ include/wait_for_slave_sql_error.inc [errno=1594]
STOP SLAVE IO_THREAD;
include/wait_for_slave_io_to_stop.inc
CHANGE MASTER TO Master_log_file='master-bin.000001', Master_log_pos=2297;
Warnings:
Note 4190 CHANGE MASTER TO is implicitly changing the value of 'Using_Gtid' from 'No' to 'No'
START SLAVE IO_THREAD;
START SLAVE SQL_THREAD;
include/wait_for_slave_io_to_start.inc
Expand All @@ -41,8 +39,6 @@ a b
STOP SLAVE IO_THREAD;
include/wait_for_slave_io_to_stop.inc
CHANGE MASTER TO Master_log_file='master-bin.000002', Master_log_pos=4;
Warnings:
Note 4190 CHANGE MASTER TO is implicitly changing the value of 'Using_Gtid' from 'No' to 'No'
START SLAVE IO_THREAD;
START SLAVE SQL_THREAD;
include/wait_for_slave_io_to_start.inc
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#
# Purpose:
# This test validates that CHANGE MASTER TO does not emit a spurious
# warning about implicitly changing Using_Gtid when the value is not
# actually changing.
#
# References:
# MDEV-37842: CHANGE MASTER TO is implicitly changing the value of
# 'Using_Gtid' from 'No' to 'No'
#

# Format independent test so just use one
--source include/have_binlog_format_mixed.inc
--source include/master-slave.inc

--connection slave
--source include/stop_slave.inc

--echo #
--echo # Test 1: CHANGE MASTER TO with relay_log_pos when Using_Gtid is
--echo # already No should NOT produce a spurious 'from No to No' warning
--echo #
CHANGE MASTER TO MASTER_USE_GTID=NO;
CHANGE MASTER TO relay_log_pos=0;
SHOW WARNINGS;

--echo #
--echo # Test 2: CHANGE MASTER TO with master_log_file/pos when Using_Gtid
--echo # is already No should NOT produce a warning
--echo #
--let $io_log_pos= query_get_value('SHOW SLAVE STATUS', Read_Master_Log_Pos, 1)
--let $io_log_file= query_get_value('SHOW SLAVE STATUS', Master_Log_File, 1)
--replace_result $io_log_file IO_LOG_FILE $io_log_pos IO_LOG_POS
--eval CHANGE MASTER TO master_log_pos=$io_log_pos, master_log_file='$io_log_file'
SHOW WARNINGS;

--echo #
--echo # Test 3: CHANGE MASTER TO with log coordinates when Using_Gtid is
--echo # Slave_Pos SHOULD produce a warning (value actually changes)
--echo #
CHANGE MASTER TO MASTER_USE_GTID=Slave_Pos;
--replace_result $io_log_file IO_LOG_FILE $io_log_pos IO_LOG_POS
--eval CHANGE MASTER TO master_log_pos=$io_log_pos, master_log_file='$io_log_file'
SHOW WARNINGS;

--echo #
--echo # Cleanup
--echo #
CHANGE MASTER TO MASTER_USE_GTID=Slave_Pos;
--source include/start_slave.inc

--source include/rpl_end.inc
3 changes: 2 additions & 1 deletion sql/sql_repl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3869,7 +3869,8 @@ bool change_master(THD* thd, Master_info* mi, bool *master_info_added)
lex_mi->log_file_name || lex_mi->pos ||
lex_mi->relay_log_name || lex_mi->relay_log_pos)
{
if (lex_mi->use_gtid_opt != LEX_MASTER_INFO::LEX_GTID_NO)
if (lex_mi->use_gtid_opt != LEX_MASTER_INFO::LEX_GTID_NO &&
mi->using_gtid != Master_info::USE_GTID_NO)
{
push_warning_printf(
thd, Sql_condition::WARN_LEVEL_NOTE, WARN_OPTION_CHANGING,
Expand Down