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 include/master-slave.inc
[connection master] [connection master]
set sql_log_bin=0;
create database y;
set sql_log_bin=1;
drop database if exists mysqltest1; drop database if exists mysqltest1;
drop database if exists x;
create database mysqltest1; create database mysqltest1;
set sql_log_bin=0;
create database x;
set sql_log_bin=1;
use mysqltest1; use mysqltest1;
create table t1 (a int); create table t1 (a int);
insert into t1 values(9); insert into t1 values(9);
use x;
create table t1 (a int);
insert into t1 values(9);
select * from mysqltest1.t1; select * from mysqltest1.t1;
a a
9 9
select * from x.t1;
a
9
show databases like 'mysqltest1'; show databases like 'mysqltest1';
Database (mysqltest1) Database (mysqltest1)
mysqltest1 mysqltest1
select * from test.t1; select * from test.t1;
a a
9 9
select * from y.t1;
a
9
use mysqltest1;
drop table t1; drop table t1;
drop database mysqltest1; drop database mysqltest1;
drop database if exists rewrite; drop database if exists rewrite;
...@@ -209,10 +226,12 @@ SET sql_log_bin= 0; ...@@ -209,10 +226,12 @@ SET sql_log_bin= 0;
DROP DATABASE database_master_temp_01; DROP DATABASE database_master_temp_01;
DROP DATABASE database_master_temp_02; DROP DATABASE database_master_temp_02;
DROP DATABASE database_master_temp_03; DROP DATABASE database_master_temp_03;
DROP DATABASE x;
SET sql_log_bin= 1; SET sql_log_bin= 1;
SET sql_log_bin= 0; SET sql_log_bin= 0;
DROP DATABASE database_slave_temp_01; DROP DATABASE database_slave_temp_01;
DROP DATABASE database_slave_temp_02; DROP DATABASE database_slave_temp_02;
DROP DATABASE database_slave_temp_03; DROP DATABASE database_slave_temp_03;
DROP DATABASE y;
SET sql_log_bin= 1; SET sql_log_bin= 1;
include/rpl_end.inc 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 @@ ...@@ -2,20 +2,37 @@
-- source include/have_binlog_format_mixed_or_statement.inc -- source include/have_binlog_format_mixed_or_statement.inc
-- source include/master-slave.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 --disable_warnings
drop database if exists mysqltest1; drop database if exists mysqltest1;
drop database if exists x;
--enable_warnings --enable_warnings
create database mysqltest1; create database mysqltest1;
set sql_log_bin=0;
create database x;
set sql_log_bin=1;
use mysqltest1; use mysqltest1;
create table t1 (a int); create table t1 (a int);
insert into t1 values(9); insert into t1 values(9);
use x;
create table t1 (a int);
insert into t1 values(9);
select * from mysqltest1.t1; select * from mysqltest1.t1;
select * from x.t1;
sync_slave_with_master; sync_slave_with_master;
#TODO no it is no empty
show databases like 'mysqltest1'; # should be empty show databases like 'mysqltest1'; # should be empty
select * from test.t1; select * from test.t1;
select * from y.t1;
# cleanup # cleanup
connection master; connection master;
use mysqltest1;
drop table t1; drop table t1;
drop database mysqltest1; drop database mysqltest1;
sync_slave_with_master; sync_slave_with_master;
...@@ -224,6 +241,7 @@ SET sql_log_bin= 0; ...@@ -224,6 +241,7 @@ SET sql_log_bin= 0;
DROP DATABASE database_master_temp_01; DROP DATABASE database_master_temp_01;
DROP DATABASE database_master_temp_02; DROP DATABASE database_master_temp_02;
DROP DATABASE database_master_temp_03; DROP DATABASE database_master_temp_03;
DROP DATABASE x;
SET sql_log_bin= 1; SET sql_log_bin= 1;
connection slave; connection slave;
...@@ -231,6 +249,7 @@ SET sql_log_bin= 0; ...@@ -231,6 +249,7 @@ SET sql_log_bin= 0;
DROP DATABASE database_slave_temp_01; DROP DATABASE database_slave_temp_01;
DROP DATABASE database_slave_temp_02; DROP DATABASE database_slave_temp_02;
DROP DATABASE database_slave_temp_03; DROP DATABASE database_slave_temp_03;
DROP DATABASE y;
SET sql_log_bin= 1; SET sql_log_bin= 1;
connection master; connection master;
......
...@@ -7596,7 +7596,8 @@ mysqld_get_one_option(int optid, ...@@ -7596,7 +7596,8 @@ mysqld_get_one_option(int optid,
val= p--; val= p--;
while (my_isspace(mysqld_charset, *p) && p > argument) while (my_isspace(mysqld_charset, *p) && p > argument)
*p-- = 0; *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"); sql_print_error("Bad syntax in replicate-rewrite-db - empty FROM db!\n");
return 1; 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