From 2a8012d7c78a59ea64ac614c678295bb98c4ab26 Mon Sep 17 00:00:00 2001 From: Michele Filisina Date: Sat, 14 Mar 2026 22:40:04 +0100 Subject: [PATCH] MDEV-35767: MTR Overwrites Test-Specific .cnf File Options On Duplicate Option Add multi-part options to Config.pm, Add test case for list parsing in replication variables, MTR failed to correctly process test-specific .cnf files when an option (like replicate_do_table) was defined multiple times. It only copied the last occurrence into the final var/my.cnf file --- mysql-test/lib/My/Config.pm | 8 ++++++++ mysql-test/main/list_parsing.cnf | 6 ++++++ mysql-test/main/list_parsing.result | 9 +++++++++ mysql-test/main/list_parsing.test | 8 ++++++++ storage/connect/JdbcInterface.jar | Bin 0 -> 7602 bytes 5 files changed, 31 insertions(+) create mode 100644 mysql-test/main/list_parsing.cnf create mode 100644 mysql-test/main/list_parsing.result create mode 100644 mysql-test/main/list_parsing.test create mode 100644 storage/connect/JdbcInterface.jar diff --git a/mysql-test/lib/My/Config.pm b/mysql-test/lib/My/Config.pm index c88b1170a80df..35e3124e173c4 100644 --- a/mysql-test/lib/My/Config.pm +++ b/mysql-test/lib/My/Config.pm @@ -29,6 +29,14 @@ my %multipart_options= ( "plugin-load-add" => 1, "optimizer-switch" => 1, + "replicate-do-table" => 1, + "replicate-ignore-table" => 1, + "replicate-wild-do-table" => 1, + "replicate-wild-ignore-table" => 1, + "replicate-do-db" => 1, + "replicate-ignore-db" => 1, + "binlog-do-db" => 1, + "binlog-ignore-db" => 1, ); diff --git a/mysql-test/main/list_parsing.cnf b/mysql-test/main/list_parsing.cnf new file mode 100644 index 0000000000000..8f3202538a67e --- /dev/null +++ b/mysql-test/main/list_parsing.cnf @@ -0,0 +1,6 @@ +!include include/default_my.cnf + +[mysqld.1] +replicate_do_table=test.t1 +replicate_do_table=test.t2 +replicate_do_table=test.t3 \ No newline at end of file diff --git a/mysql-test/main/list_parsing.result b/mysql-test/main/list_parsing.result new file mode 100644 index 0000000000000..d6827902a21e4 --- /dev/null +++ b/mysql-test/main/list_parsing.result @@ -0,0 +1,9 @@ +SELECT GROUP_CONCAT(tbl ORDER BY tbl) AS sorted_replicate_do_table +FROM JSON_TABLE( +CONCAT('["', REPLACE(@@replicate_do_table, ',', '","'), '"]'), +'$[*]' COLUMNS ( +tbl VARCHAR(255) PATH '$' + ) +) AS jt; +sorted_replicate_do_table +test.t1,test.t2,test.t3 diff --git a/mysql-test/main/list_parsing.test b/mysql-test/main/list_parsing.test new file mode 100644 index 0000000000000..8a52b0fd9da07 --- /dev/null +++ b/mysql-test/main/list_parsing.test @@ -0,0 +1,8 @@ +--source include/not_embedded.inc +SELECT GROUP_CONCAT(tbl ORDER BY tbl) AS sorted_replicate_do_table +FROM JSON_TABLE( +CONCAT('["', REPLACE(@@replicate_do_table, ',', '","'), '"]'), +'$[*]' COLUMNS ( +tbl VARCHAR(255) PATH '$' + ) +) AS jt; \ No newline at end of file diff --git a/storage/connect/JdbcInterface.jar b/storage/connect/JdbcInterface.jar new file mode 100644 index 0000000000000000000000000000000000000000..bd21079b5084a1eb4d82b82c3bccd5ae9f805753 GIT binary patch literal 7602 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 l|GUD!5B3kP{IBx