mirror of
https://github.com/MariaDB/server.git
synced 2025-01-23 23:34:34 +01:00
0dab9f40e1
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
69 lines
1.9 KiB
C
69 lines
1.9 KiB
C
#ifndef SQL_REPL_H
|
|
#define SQL_REPL_H
|
|
|
|
#include "slave.h"
|
|
|
|
typedef struct st_slave_info
|
|
{
|
|
uint32 server_id;
|
|
char host[HOSTNAME_LENGTH+1];
|
|
char user[USERNAME_LENGTH+1];
|
|
char password[HASH_PASSWORD_LENGTH+1];
|
|
uint16 port;
|
|
} SLAVE_INFO;
|
|
|
|
extern bool opt_show_slave_auth_info, opt_old_rpl_compat;
|
|
extern HASH slave_list;
|
|
extern char* master_host;
|
|
extern my_string opt_bin_logname, master_info_file;
|
|
extern uint32 server_id;
|
|
extern bool server_id_supplied;
|
|
extern I_List<i_string> binlog_do_db, binlog_ignore_db;
|
|
|
|
#ifndef DBUG_OFF
|
|
extern int max_binlog_dump_events;
|
|
extern bool opt_sporadic_binlog_dump_fail;
|
|
#endif
|
|
|
|
File open_binlog(IO_CACHE *log, const char *log_file_name,
|
|
const char **errmsg);
|
|
|
|
int start_slave(THD* thd = 0, bool net_report = 1);
|
|
int stop_slave(THD* thd = 0, bool net_report = 1);
|
|
int load_master_data(THD* thd);
|
|
int connect_to_master(THD *thd, MYSQL* mysql, MASTER_INFO* mi);
|
|
int change_master(THD* thd);
|
|
int show_new_master(THD* thd);
|
|
int show_slave_hosts(THD* thd);
|
|
int show_binlog_events(THD* thd);
|
|
int translate_master(THD* thd, LEX_MASTER_INFO* mi, char* errmsg);
|
|
int cmp_master_pos(const char* log_file_name1, ulonglong log_pos1,
|
|
const char* log_file_name2, ulonglong log_pos2);
|
|
void reset_slave();
|
|
void reset_master();
|
|
void init_slave_list();
|
|
void end_slave_list();
|
|
int register_slave(THD* thd, uchar* packet, uint packet_length);
|
|
int purge_master_logs(THD* thd, const char* to_log);
|
|
bool log_in_use(const char* log_name);
|
|
void adjust_linfo_offsets(my_off_t purge_offset);
|
|
int show_binlogs(THD* thd);
|
|
extern int init_master_info(MASTER_INFO* mi);
|
|
void kill_zombie_dump_threads(uint32 slave_server_id);
|
|
|
|
typedef struct st_load_file_info
|
|
{
|
|
THD* thd;
|
|
sql_exchange* ex;
|
|
List <Item> *fields;
|
|
enum enum_duplicates handle_dup;
|
|
char* db;
|
|
char* table_name;
|
|
bool wrote_create_file;
|
|
my_off_t last_pos_in_file;
|
|
} LOAD_FILE_INFO;
|
|
|
|
int log_loaded_block(IO_CACHE* file);
|
|
|
|
#endif
|
|
|