Commit a26e2c20 authored by unknown's avatar unknown

Fixed BUG #14614: Replication of tables with trigger generates

 error message if database is changed.


mysql-test/r/rpl_trigger.result:
  Fixed results for the added test cases
mysql-test/t/rpl_trigger.test:
  Added test cases for bug #14614
sql/sql_db.cc:
  Fixed bug #14614.
   Modified mysql_change_db(): The memory where db name resides
   is freed by a slave thread.
parent f81ed05c
......@@ -122,3 +122,15 @@ a=b && a=c
1
drop function bug12480;
drop table t1;
create table t1 (i int);
create table t2 (i int);
create trigger tr1 before insert on t1 for each row
begin
insert into t2 values (1);
end|
create database other;
use other;
insert into test.t1 values (1);
use test;
drop table t1,t2;
drop database other;
......@@ -133,6 +133,35 @@ select a=b && a=c from t1;
drop function bug12480;
drop table t1;
#
# #14614: Replication of tables with trigger generates error message if databases is changed
# Note. The error message is emitted by _myfree() using fprintf() to the stderr
# and because of that does not fall into the .result file.
#
create table t1 (i int);
create table t2 (i int);
delimiter |;
create trigger tr1 before insert on t1 for each row
begin
insert into t2 values (1);
end|
delimiter ;|
create database other;
use other;
insert into test.t1 values (1);
save_master_pos;
connection slave;
sync_with_master;
connection master;
use test;
drop table t1,t2;
drop database other;
#
# End of test
#
......
......@@ -1162,9 +1162,11 @@ bool mysql_change_db(THD *thd, const char *name, bool no_access_check)
DBUG_RETURN(1);
}
end:
if (!(thd->slave_thread))
x_free(thd->db);
if (dbname && dbname[0] == 0)
{
if (!(thd->slave_thread))
x_free(dbname);
thd->db= NULL;
thd->db_length= 0;
......
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