mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
LOAD DATA INFILE is now replicated properly, except for cleanup on
Stop event and bugs the test suite could not catch Did some big restructuring of binlog event classes - most important change is that now each event class has exec_event method and one does not need to modify slave core code to add a new event. Slave code is now much smaller and easier to read include/my_sys.h: pre_code and arg in IO_CACHE mysql-test/r/rpl_log.result: updated result for LOAD DATA INFILE fix mysys/mf_iocache.c: pre_close routine and arg pointer for callback magic sql/log.cc: changed MYSQL_LOG so that write() method is for generic Log_event - removed redundant code sql/log_event.cc: added classes for file events added exec_event() method to all classes restructured/cleaned up event classes sql/log_event.h: added classes for file events added exec_event() method to all classes restructured/cleaned up event classes sql/mf_iocache.cc: pre_close/arg sql/mysqld.cc: added slave-load-tmpdir and old-rpl-compat options sql/slave.cc: changed exec_event() to use Log_event::exec_event() some routines are now needed in log_event.cc and cannot be static/inline general cleanup sql/slave.h: some routines are now extern because they are called from log_event.cc sql/sql_class.cc: added slave_net sql/sql_class.h: added slave_net to THD MYSQL_LOG::write now handles generic Log_event sql/sql_load.cc: changes for new handling of LOAD DATA INFILE replication sql/sql_repl.cc: added log_loaded_block() callback for IO_CACHE sql/sql_repl.h: added structure to pass args to IO_CACHE callback from mysql_load
This commit is contained in:
16
sql/slave.h
16
sql/slave.h
@ -5,7 +5,7 @@
|
||||
#define SLAVE_NET_TIMEOUT 3600
|
||||
|
||||
extern ulong slave_net_timeout;
|
||||
|
||||
extern char* slave_load_tmpdir;
|
||||
|
||||
typedef struct st_master_info
|
||||
{
|
||||
@ -70,6 +70,11 @@ typedef struct st_table_rule_ent
|
||||
|
||||
#define TABLE_RULE_HASH_SIZE 16
|
||||
#define TABLE_RULE_ARR_SIZE 16
|
||||
#define MAX_SLAVE_ERRMSG 1024
|
||||
|
||||
#define RPL_LOG_NAME (glob_mi.log_file_name[0] ? glob_mi.log_file_name :\
|
||||
"FIRST")
|
||||
|
||||
|
||||
int flush_master_info(MASTER_INFO* mi);
|
||||
int register_slave_on_master(MYSQL* mysql);
|
||||
@ -97,6 +102,10 @@ int add_table_rule(HASH* h, const char* table_spec);
|
||||
int add_wild_table_rule(DYNAMIC_ARRAY* a, const char* table_spec);
|
||||
void init_table_rule_hash(HASH* h, bool* h_inited);
|
||||
void init_table_rule_array(DYNAMIC_ARRAY* a, bool* a_inited);
|
||||
char* rewrite_db(char* db);
|
||||
int check_expected_error(THD* thd, int error_code);
|
||||
void skip_load_data_infile(NET* net);
|
||||
void slave_print_error(int err_code, const char* msg, ...);
|
||||
|
||||
void end_slave(); // clean up
|
||||
int init_master_info(MASTER_INFO* mi);
|
||||
@ -109,6 +118,11 @@ extern uint32 slave_skip_counter;
|
||||
// we want to restart it skipping one or more events in the master log that
|
||||
// have caused errors, and have been manually applied by DBA already
|
||||
|
||||
extern int last_slave_errno;
|
||||
#ifndef DBUG_OFF
|
||||
extern int events_till_abort;
|
||||
#endif
|
||||
extern char last_slave_error[MAX_SLAVE_ERRMSG];
|
||||
extern pthread_t slave_real_id;
|
||||
extern THD* slave_thd;
|
||||
extern MASTER_INFO glob_mi;
|
||||
|
Reference in New Issue
Block a user