1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

BUG#17521 alter database crashes slave

Problem was a null pointer
Fixed by passing correct database name to slave filtering mechanism
Added test.
This commit is contained in:
elliot@mysql.com
2006-02-23 23:20:29 -05:00
parent adc9723611
commit 5753dfe73d
3 changed files with 21 additions and 3 deletions

View File

@ -0,0 +1,8 @@
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
use mysql;
alter database collate latin1_bin;

View File

@ -0,0 +1,10 @@
source include/master-slave.inc;
connection master;
use mysql; # to be different from initial `test' db of mysqltest client
alter database collate latin1_bin;
save_master_pos;
connection slave;
sync_with_master;

View File

@ -3715,7 +3715,7 @@ end_with_restore_list:
} }
if (!strip_sp(db) || check_db_name(db)) if (!strip_sp(db) || check_db_name(db))
{ {
my_error(ER_WRONG_DB_NAME, MYF(0), lex->name); my_error(ER_WRONG_DB_NAME, MYF(0), db);
break; break;
} }
/* /*
@ -3727,8 +3727,8 @@ end_with_restore_list:
*/ */
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
if (thd->slave_thread && if (thd->slave_thread &&
(!rpl_filter->db_ok(lex->name) || (!rpl_filter->db_ok(db) ||
!rpl_filter->db_ok_with_wild_table(lex->name))) !rpl_filter->db_ok_with_wild_table(db)))
{ {
my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0)); my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0));
break; break;