diff options
-rw-r--r-- | mysql-test/r/rpl_alter_db.result | 8 | ||||
-rw-r--r-- | mysql-test/t/rpl_alter_db.test | 10 | ||||
-rw-r--r-- | sql/sql_parse.cc | 6 |
3 files changed, 21 insertions, 3 deletions
diff --git a/mysql-test/r/rpl_alter_db.result b/mysql-test/r/rpl_alter_db.result new file mode 100644 index 00000000000..6edbe5d427f --- /dev/null +++ b/mysql-test/r/rpl_alter_db.result @@ -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; diff --git a/mysql-test/t/rpl_alter_db.test b/mysql-test/t/rpl_alter_db.test new file mode 100644 index 00000000000..5ac8a2f4018 --- /dev/null +++ b/mysql-test/t/rpl_alter_db.test @@ -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; + + diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index b84eb1cfcb8..e4bbcfc5074 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -3715,7 +3715,7 @@ end_with_restore_list: } 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; } /* @@ -3727,8 +3727,8 @@ end_with_restore_list: */ #ifdef HAVE_REPLICATION if (thd->slave_thread && - (!rpl_filter->db_ok(lex->name) || - !rpl_filter->db_ok_with_wild_table(lex->name))) + (!rpl_filter->db_ok(db) || + !rpl_filter->db_ok_with_wild_table(db))) { my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0)); break; |