mirror of
https://github.com/MariaDB/server.git
synced 2026-10-23 18:49:29 +03:00
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>
38 lines
1.2 KiB
Plaintext
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
|