mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 02:47:37 +02:00
Bug#6391 (binlog-do-db rules ignored)
CREATE DATABASE statement used the current database instead of the database created when checking conditions for replication. CREATE/DROP/ALTER DATABASE statements are now replicated based on the manipulated database. mysql-test/t/rpl_until.test: Longer sleep to allow slave to stop. mysql-test/t/rpl_charset.test: Position change in binary file. mysql-test/r/drop_temp_table.result: Position change in binlog. mysql-test/r/rpl_loaddata_rule_m.result: Position change in binlog. mysql-test/r/rpl_charset.result: Position change in binlog. sql/log_event.h: Added new flag and parameter to suppress generation of USE statements. sql/log_event.cc: Added parameter and code to suppress generation of USE statements. sql/sql_db.cc: Suppress generation of USE before CREATE/ALTER/DROP DATABASE statements. sql/log.cc: Query_log_event have new extra parameter. sql/sql_table.cc: Query_log_event have new extra parameter. sql/sql_base.cc: Query_log_event have new extra parameter. sql/sql_update.cc: Query_log_event have new extra parameter. sql/sql_insert.cc: Query_log_event have new extra parameter. sql/sql_rename.cc: Query_log_event have new extra parameter. sql/sql_delete.cc: Query_log_event have new extra parameter. sql/sql_acl.cc: Query_log_event have new extra parameter. sql/handler.cc: Query_log_event have new extra parameter. sql/item_func.cc: Query_log_event have new extra parameter. sql/sql_parse.cc: Query_log_event have new extra parameter.
This commit is contained in:
parent
6c81b518c0
commit
220acb328e
23 changed files with 340 additions and 120 deletions
|
|
@ -264,6 +264,19 @@ struct sql_ex_info
|
|||
*/
|
||||
#define LOG_EVENT_THREAD_SPECIFIC_F 0x4
|
||||
|
||||
/*
|
||||
Suppress the generation of 'USE' statements before the actual
|
||||
statement. This flag should be set for any events that does not need
|
||||
the current database set to function correctly. Most notable cases
|
||||
are 'CREATE DATABASE' and 'DROP DATABASE'.
|
||||
|
||||
This flags should only be used in exceptional circumstances, since
|
||||
it introduce a significant change in behaviour regarding the
|
||||
replication logic together with the flags --binlog-do-db and
|
||||
--replicated-do-db.
|
||||
*/
|
||||
#define LOG_EVENT_SUPPRESS_USE_F 0x8
|
||||
|
||||
enum Log_event_type
|
||||
{
|
||||
UNKNOWN_EVENT= 0, START_EVENT= 1, QUERY_EVENT= 2, STOP_EVENT= 3,
|
||||
|
|
@ -331,8 +344,9 @@ public:
|
|||
|
||||
/*
|
||||
Some 16 flags. Only one is really used now; look above for
|
||||
LOG_EVENT_TIME_F, LOG_EVENT_FORCED_ROTATE_F, LOG_EVENT_THREAD_SPECIFIC_F
|
||||
for notes.
|
||||
LOG_EVENT_TIME_F, LOG_EVENT_FORCED_ROTATE_F,
|
||||
LOG_EVENT_THREAD_SPECIFIC_F, and LOG_EVENT_SUPPRESS_USE_F for
|
||||
notes.
|
||||
*/
|
||||
uint16 flags;
|
||||
|
||||
|
|
@ -465,7 +479,7 @@ public:
|
|||
#ifndef MYSQL_CLIENT
|
||||
|
||||
Query_log_event(THD* thd_arg, const char* query_arg, ulong query_length,
|
||||
bool using_trans);
|
||||
bool using_trans, bool suppress_use);
|
||||
const char* get_db() { return db; }
|
||||
#ifdef HAVE_REPLICATION
|
||||
void pack_info(Protocol* protocol);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue