1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00
Files
mariadb/mysql-test/suite/multi_source/sys_vars_default_master.test
iff-sal 45d582be8c MDEV-40297: SET changes @@default_master_connection's system variable if the explicit connection name is blank
When updating replicate_do_db and slave_parallel_mode, the handlers
checked !base_name->length instead of !base_name->str to determine
whether to fall back to @@SESSION.default_master_connection.

Because an explicit blank qualifier (``) has length 0 with a non-NULL
pointer, SET statements using empty backticks mistakenly updated
default_master_connection rather than the unnamed connection.

Fixed by checking !base_name->str instead of !base_name->length.

Also fixed SELECT @@GLOBAL.slave_parallel_mode, which had the same
issue when reading the variable.

Renamed the regression test to sys_vars_default_master to reflect
the broader coverage and merged the test cases of
MDEV-40296 and MDEV-40297.

Reviewed-by: ParadoxV5 <paradox.ver5@gmail.com>
2026-10-20 13:40:51 +03:00

38 lines
1.2 KiB
Plaintext

--source include/not_embedded.inc
# MDEV-40296: SELECT @@GLOBAL.replicate_do_db ignores default_master_connection
# MDEV-40297: SET changes @@default_master_connection's system variable if the explicit connection name is blank
# Setup
SET @saved_replicate_do_db= @@GLOBAL.replicate_do_db;
SET @saved_slave_parallel_mode= @@GLOBAL.slave_parallel_mode;
SET @saved_default_master_connection= @@SESSION.default_master_connection;
CHANGE MASTER 'name' TO master_host='127.0.0.1', master_user='root';
SET @@SESSION.default_master_connection= 'name';
# replicate_do_db
SET @@GLOBAL.replicate_do_db= 'named';
SET @@GLOBAL.``.replicate_do_db= 'unnamed';
SELECT @@GLOBAL.name.replicate_do_db;
SELECT @@GLOBAL.replicate_do_db;
SELECT @@GLOBAL.``.replicate_do_db;
# slave_parallel_mode
SET @@GLOBAL.slave_parallel_mode= 'minimal';
SET @@GLOBAL.``.slave_parallel_mode= 'aggressive';
SELECT @@GLOBAL.name.slave_parallel_mode;
SELECT @@GLOBAL.slave_parallel_mode;
SELECT @@GLOBAL.``.slave_parallel_mode;
# Cleanup
RESET SLAVE 'name' ALL;
SET @@SESSION.default_master_connection= @saved_default_master_connection;
SET @@GLOBAL.slave_parallel_mode= @saved_slave_parallel_mode;
SET @@GLOBAL.replicate_do_db= @saved_replicate_do_db;
--echo # End of 11.4 tests