Commit 778c525f authored by sachin's avatar sachin

MDEV-17119 replicate_rewrite_db does not work for single chardatabase name

Fixed issue in logic.
parent f00e25b4
include/master-slave.inc
[connection master]
set sql_log_bin=0;
create database y;
set sql_log_bin=1;
drop database if exists mysqltest1;
drop database if exists x;
create database mysqltest1;
set sql_log_bin=0;
create database x;
set sql_log_bin=1;
use mysqltest1;
create table t1 (a int);
insert into t1 values(9);
use x;
create table t1 (a int);
insert into t1 values(9);
select * from mysqltest1.t1;
a
9
select * from x.t1;
a
9
show databases like 'mysqltest1';
Database (mysqltest1)
mysqltest1
select * from test.t1;
a
9
select * from y.t1;
a
9
use mysqltest1;
drop table t1;
drop database mysqltest1;
drop database if exists rewrite;
......@@ -209,10 +226,12 @@ SET sql_log_bin= 0;
DROP DATABASE database_master_temp_01;
DROP DATABASE database_master_temp_02;
DROP DATABASE database_master_temp_03;
DROP DATABASE x;
SET sql_log_bin= 1;
SET sql_log_bin= 0;
DROP DATABASE database_slave_temp_01;
DROP DATABASE database_slave_temp_02;
DROP DATABASE database_slave_temp_03;
DROP DATABASE y;
SET sql_log_bin= 1;
include/rpl_end.inc
"--replicate-rewrite-db=test->rewrite" "--replicate-rewrite-db=mysqltest1->test" "--replicate-rewrite-db=database_master_temp_01->database_slave_temp_01" "--replicate-rewrite-db=database_master_temp_02->database_slave_temp_02" "--replicate-rewrite-db=database_master_temp_03->database_slave_temp_03"
"--replicate-rewrite-db=test->rewrite" "--replicate-rewrite-db=mysqltest1 -> test" "--replicate-rewrite-db=x -> y" "--replicate-rewrite-db=database_master_temp_01->database_slave_temp_01" "--replicate-rewrite-db=database_master_temp_02->database_slave_temp_02" "--replicate-rewrite-db=database_master_temp_03->database_slave_temp_03"
......@@ -2,20 +2,37 @@
-- source include/have_binlog_format_mixed_or_statement.inc
-- source include/master-slave.inc
--connection slave
set sql_log_bin=0;
create database y;
set sql_log_bin=1;
--connection master
--disable_warnings
drop database if exists mysqltest1;
drop database if exists x;
--enable_warnings
create database mysqltest1;
set sql_log_bin=0;
create database x;
set sql_log_bin=1;
use mysqltest1;
create table t1 (a int);
insert into t1 values(9);
use x;
create table t1 (a int);
insert into t1 values(9);
select * from mysqltest1.t1;
select * from x.t1;
sync_slave_with_master;
#TODO no it is no empty
show databases like 'mysqltest1'; # should be empty
select * from test.t1;
select * from y.t1;
# cleanup
connection master;
use mysqltest1;
drop table t1;
drop database mysqltest1;
sync_slave_with_master;
......@@ -224,6 +241,7 @@ SET sql_log_bin= 0;
DROP DATABASE database_master_temp_01;
DROP DATABASE database_master_temp_02;
DROP DATABASE database_master_temp_03;
DROP DATABASE x;
SET sql_log_bin= 1;
connection slave;
......@@ -231,6 +249,7 @@ SET sql_log_bin= 0;
DROP DATABASE database_slave_temp_01;
DROP DATABASE database_slave_temp_02;
DROP DATABASE database_slave_temp_03;
DROP DATABASE y;
SET sql_log_bin= 1;
connection master;
......
......@@ -7596,7 +7596,8 @@ mysqld_get_one_option(int optid,
val= p--;
while (my_isspace(mysqld_charset, *p) && p > argument)
*p-- = 0;
if (p == argument)
/* Db name can be one char also */
if (p == argument && my_isspace(mysqld_charset, *p))
{
sql_print_error("Bad syntax in replicate-rewrite-db - empty FROM db!\n");
return 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment