Loading client/mysqlbinlog.cc +22 −10 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ static const char *load_default_groups[]= { "mysqlbinlog","client",0 }; void sql_print_error(const char *format, ...); static bool one_database=0, to_last_remote_log= 0, disable_log_bin= 0; static bool opt_hexdump= 0; static const char* database= 0; static my_bool force_opt= 0, short_form= 0, remote_opt= 0; static ulonglong offset = 0; Loading Loading @@ -495,6 +496,7 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, char ll_buff[21]; Log_event_type ev_type= ev->get_type_code(); DBUG_ENTER("process_event"); last_event_info->short_form= short_form; /* Format events are not concerned by --offset and such, we always need to Loading Loading @@ -523,11 +525,16 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, if (!short_form) fprintf(result_file, "# at %s\n",llstr(pos,ll_buff)); if (!opt_hexdump) last_event_info->hexdump_from= 0; /* Disabled */ else last_event_info->hexdump_from= pos; switch (ev_type) { case QUERY_EVENT: if (check_database(((Query_log_event*)ev)->db)) goto end; ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); break; case CREATE_FILE_EVENT: { Loading @@ -547,7 +554,8 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, filename and use LOCAL), prepared in the 'case EXEC_LOAD_EVENT' below. */ ce->print(result_file, short_form, last_event_info, TRUE); ce->print(result_file, last_event_info, TRUE); // If this binlog is not 3.23 ; why this test?? if (description_event->binlog_version >= 3) { Loading @@ -558,13 +566,13 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, break; } case APPEND_BLOCK_EVENT: ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); if (load_processor.process((Append_block_log_event*) ev)) break; // Error break; case EXEC_LOAD_EVENT: { ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); Execute_load_log_event *exv= (Execute_load_log_event*)ev; Create_file_log_event *ce= load_processor.grab_event(exv->file_id); /* Loading @@ -574,7 +582,7 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, */ if (ce) { ce->print(result_file, short_form, last_event_info, TRUE); ce->print(result_file, last_event_info, TRUE); my_free((char*)ce->fname,MYF(MY_WME)); delete ce; } Loading @@ -586,7 +594,8 @@ Create_file event for file_id: %u\n",exv->file_id); case FORMAT_DESCRIPTION_EVENT: delete description_event; description_event= (Format_description_log_event*) ev; ev->print(result_file, short_form, last_event_info); last_event_info->common_header_len= description_event->common_header_len; ev->print(result_file, last_event_info); /* We don't want this event to be deleted now, so let's hide it (I (Guilhem) should later see if this triggers a non-serious Valgrind Loading @@ -596,7 +605,7 @@ Create_file event for file_id: %u\n",exv->file_id); ev= 0; break; case BEGIN_LOAD_QUERY_EVENT: ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); load_processor.process((Begin_load_query_log_event*) ev); break; case EXECUTE_LOAD_QUERY_EVENT: Loading @@ -613,7 +622,7 @@ Create_file event for file_id: %u\n",exv->file_id); if (fname) { exlq->print(result_file, short_form, last_event_info, fname); exlq->print(result_file, last_event_info, fname); my_free(fname, MYF(MY_WME)); } else Loading @@ -622,7 +631,7 @@ Begin_load_query event for file_id: %u\n", exlq->file_id); break; } default: ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); } } Loading Loading @@ -669,6 +678,9 @@ static struct my_option my_long_options[] = 0, 0}, {"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"hexdump", 'H', "Augment output with hexadecimal and ASCII event dump.", (gptr*) &opt_hexdump, (gptr*) &opt_hexdump, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"host", 'h', "Get the binlog from server.", (gptr*) &host, (gptr*) &host, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"offset", 'o', "Skip the first N entries.", (gptr*) &offset, (gptr*) &offset, Loading sql/log_event.cc +123 −65 Original line number Diff line number Diff line Loading @@ -696,7 +696,6 @@ failed my_b_read")); */ DBUG_RETURN(0); } uint data_len = uint4korr(head + EVENT_LEN_OFFSET); char *buf= 0; const char *error= 0; Loading Loading @@ -876,14 +875,75 @@ Log_event* Log_event::read_log_event(const char* buf, uint event_len, Log_event::print_header() */ void Log_event::print_header(FILE* file) void Log_event::print_header(FILE* file, LAST_EVENT_INFO* last_event_info) { char llbuff[22]; my_off_t hexdump_from= last_event_info->hexdump_from; fputc('#', file); print_timestamp(file); fprintf(file, " server id %d end_log_pos %s ", server_id, llstr(log_pos,llbuff)); /* mysqlbinlog --hexdump */ if (last_event_info->hexdump_from) { fprintf(file, "\n"); uchar *ptr= (uchar*)temp_buf; my_off_t size= uint4korr(ptr + EVENT_LEN_OFFSET) - LOG_EVENT_MINIMAL_HEADER_LEN; my_off_t i; /* Header len * 4 >= header len * (2 chars + space + extra space) */ char *h, hex_string[LOG_EVENT_MINIMAL_HEADER_LEN*4]= {0}; char *c, char_string[16+1]= {0}; /* Pretty-print event common header if header is exactly 19 bytes */ if (last_event_info->common_header_len == 19) { fprintf(file, "# Position Timestamp Type Master ID " "Size Master Pos Flags \n"); fprintf(file, "# %8.8lx %02x %02x %02x %02x %02x " "%02x %02x %02x %02x %02x %02x %02x %02x " "%02x %02x %02x %02x %02x %02x\n", hexdump_from, ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5], ptr[6], ptr[7], ptr[8], ptr[9], ptr[10], ptr[11], ptr[12], ptr[13], ptr[14], ptr[15], ptr[16], ptr[17], ptr[18]); ptr += LOG_EVENT_MINIMAL_HEADER_LEN; hexdump_from += LOG_EVENT_MINIMAL_HEADER_LEN; } /* Rest of event (without common header) */ for (i= 0, c= char_string, h=hex_string; i < size; i++, ptr++) { my_snprintf(h, 4, "%02x ", *ptr); h += 3; *c++= my_isalnum(&my_charset_bin, *ptr) ? *ptr : '.'; if (i % 16 == 15) { fprintf(file, "# %8.8lx %-48.48s |%16s|\n", hexdump_from + (i & 0xfffffff0), hex_string, char_string); hex_string[0]= 0; char_string[0]= 0; c= char_string; h= hex_string; } else if (i % 8 == 7) *h++ = ' '; } *c= '\0'; /* Non-full last line */ if (hex_string[0]) { printf("# %8.8lx %-48.48s |%s|\n# ", hexdump_from + (i & 0xfffffff0), hex_string, char_string); } } } /* Log_event::print_timestamp() Loading Loading @@ -1367,7 +1427,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, */ #ifdef MYSQL_CLIENT void Query_log_event::print_query_header(FILE* file, bool short_form, void Query_log_event::print_query_header(FILE* file, LAST_EVENT_INFO* last_event_info) { // TODO: print the catalog ?? Loading @@ -1375,9 +1435,9 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, bool different_db= 1; uint32 tmp; if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\t%s\tthread_id=%lu\texec_time=%lu\terror_code=%d\n", get_type_str(), (ulong) thread_id, (ulong) exec_time, error_code); } Loading Loading @@ -1498,10 +1558,9 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, } void Query_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Query_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { print_query_header(file, short_form, last_event_info); print_query_header(file, last_event_info); my_fwrite(file, (byte*) query, q_len, MYF(MY_NABP | MY_WME)); fputs(";\n", file); } Loading Loading @@ -1799,11 +1858,11 @@ void Start_log_event_v3::pack_info(Protocol *protocol) */ #ifdef MYSQL_CLIENT void Start_log_event_v3::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Start_log_event_v3::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tStart: binlog v %d, server v %s created ", binlog_version, server_version); print_timestamp(file); Loading Loading @@ -2527,19 +2586,19 @@ int Load_log_event::copy_log_event(const char *buf, ulong event_len, */ #ifdef MYSQL_CLIENT void Load_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Load_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { print(file, short_form, last_event_info, 0); print(file, last_event_info, 0); } void Load_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, void Load_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info, bool commented) { DBUG_ENTER("Load_log_event::print"); if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tQuery\tthread_id=%ld\texec_time=%ld\n", thread_id, exec_time); } Loading Loading @@ -2944,13 +3003,13 @@ void Rotate_log_event::pack_info(Protocol *protocol) */ #ifdef MYSQL_CLIENT void Rotate_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Rotate_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { char buf[22]; if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fprintf(file, "\tRotate to "); if (new_log_ident) my_fwrite(file, (byte*) new_log_ident, (uint)ident_len, Loading Loading @@ -3146,16 +3205,15 @@ bool Intvar_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Intvar_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Intvar_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { char llbuff[22]; const char *msg; LINT_INIT(msg); if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tIntvar\n"); } Loading Loading @@ -3236,12 +3294,12 @@ bool Rand_log_event::write(IO_CACHE* file) #ifdef MYSQL_CLIENT void Rand_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Rand_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { char llbuff[22],llbuff2[22]; if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tRand\n"); } fprintf(file, "SET @@RAND_SEED1=%s, @@RAND_SEED2=%s;\n", Loading Loading @@ -3306,14 +3364,14 @@ bool Xid_log_event::write(IO_CACHE* file) #ifdef MYSQL_CLIENT void Xid_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Xid_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (!short_form) if (!last_event_info->short_form) { char buf[64]; longlong10_to_str(xid, buf, 10); print_header(file); print_header(file, last_event_info); fprintf(file, "\tXid = %s\n", buf); fflush(file); } Loading Loading @@ -3504,11 +3562,11 @@ bool User_var_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void User_var_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void User_var_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tUser_var\n"); } Loading Loading @@ -3679,11 +3737,11 @@ int User_var_log_event::exec_event(struct st_relay_log_info* rli) #ifdef HAVE_REPLICATION #ifdef MYSQL_CLIENT void Unknown_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Unknown_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "# %s", "Unknown event\n"); } Loading Loading @@ -3750,12 +3808,12 @@ Slave_log_event::~Slave_log_event() #ifdef MYSQL_CLIENT void Slave_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Slave_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { char llbuff[22]; if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "\ Slave: master_host: '%s' master_port: %d master_log: '%s' master_pos: %s\n", Loading Loading @@ -3835,12 +3893,12 @@ int Slave_log_event::exec_event(struct st_relay_log_info* rli) */ #ifdef MYSQL_CLIENT void Stop_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Stop_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fprintf(file, "\tStop\n"); fflush(file); } Loading Loading @@ -4014,19 +4072,20 @@ Create_file_log_event::Create_file_log_event(const char* buf, uint len, */ #ifdef MYSQL_CLIENT void Create_file_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, bool enable_local) void Create_file_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info, bool enable_local) { if (short_form) if (last_event_info->short_form) { if (enable_local && check_fname_outside_temp_buf()) Load_log_event::print(file, 1, last_event_info); Load_log_event::print(file, last_event_info); return; } if (enable_local) { Load_log_event::print(file, short_form, last_event_info, !check_fname_outside_temp_buf()); Load_log_event::print(file, last_event_info, !check_fname_outside_temp_buf()); /* That one is for "file_id: etc" below: in mysqlbinlog we want the #, in SHOW BINLOG EVENTS we don't. Loading @@ -4038,10 +4097,9 @@ void Create_file_log_event::print(FILE* file, bool short_form, } void Create_file_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Create_file_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { print(file,short_form,last_event_info,0); print(file, last_event_info, 0); } #endif /* MYSQL_CLIENT */ Loading Loading @@ -4201,12 +4259,12 @@ bool Append_block_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Append_block_log_event::print(FILE* file, bool short_form, void Append_block_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "#%s: file_id: %d block_len: %d\n", get_type_str(), file_id, block_len); Loading Loading @@ -4345,12 +4403,12 @@ bool Delete_file_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Delete_file_log_event::print(FILE* file, bool short_form, void Delete_file_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "#Delete_file: file_id=%u\n", file_id); } Loading Loading @@ -4441,12 +4499,12 @@ bool Execute_load_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Execute_load_log_event::print(FILE* file, bool short_form, void Execute_load_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "#Exec_load: file_id=%d\n", file_id); Loading Loading @@ -4653,18 +4711,18 @@ Execute_load_query_log_event::write_post_header_for_derived(IO_CACHE* file) #ifdef MYSQL_CLIENT void Execute_load_query_log_event::print(FILE* file, bool short_form, void Execute_load_query_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { print(file, short_form, last_event_info, 0); print(file, last_event_info, 0); } void Execute_load_query_log_event::print(FILE* file, bool short_form, void Execute_load_query_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info, const char *local_fname) { print_query_header(file, short_form, last_event_info); print_query_header(file, last_event_info); if (local_fname) { Loading @@ -4685,7 +4743,7 @@ void Execute_load_query_log_event::print(FILE* file, bool short_form, fprintf(file, ";\n"); } if (!short_form) if (!last_event_info->short_form) fprintf(file, "# file_id: %d \n", file_id); } #endif Loading sql/log_event.h +39 −28 Original line number Diff line number Diff line Loading @@ -451,12 +451,18 @@ struct st_relay_log_info; #ifdef MYSQL_CLIENT /* A structure for mysqlbinlog to remember the last db, flags2, sql_mode etc; it is passed to events' print() methods, so that they print only the necessary USE and SET commands. A structure for mysqlbinlog to know how to print events This structure is passed to the event's print() methods so that only the necessary USE and SET commands are printed. Last db, flags2, sql_mode etc are stored here. The structure also contain other information on how to print the events, e.g. short_form, hexdump_from. */ typedef struct st_last_event_info { /* Old settings for database, sql_mode etc */ // TODO: have the last catalog here ?? char db[FN_REFLEN+1]; // TODO: make this a LEX_STRING when thd->db is bool flags2_inited; Loading @@ -480,6 +486,12 @@ typedef struct st_last_event_info bzero(charset, sizeof(charset)); bzero(time_zone_str, sizeof(time_zone_str)); } /* Settings on how to print the events */ bool short_form; my_off_t hexdump_from; uint8 common_header_len; } LAST_EVENT_INFO; #endif Loading Loading @@ -589,9 +601,9 @@ class Log_event static Log_event* read_log_event(IO_CACHE* file, const Format_description_log_event *description_event); /* print*() functions are used by mysqlbinlog */ virtual void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0) = 0; virtual void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0) = 0; void print_timestamp(FILE* file, time_t *ts = 0); void print_header(FILE* file); void print_header(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif static void *operator new(size_t size) Loading Loading @@ -751,8 +763,8 @@ class Query_log_event: public Log_event uint32 q_len_arg); #endif /* HAVE_REPLICATION */ #else void print_query_header(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print_query_header(FILE* file, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Query_log_event(const char* buf, uint event_len, Loading Loading @@ -806,7 +818,7 @@ class Slave_log_event: public Log_event void pack_info(Protocol* protocol); int exec_event(struct st_relay_log_info* rli); #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Slave_log_event(const char* buf, uint event_len); Loading Loading @@ -894,8 +906,8 @@ class Load_log_event: public Log_event bool use_rli_only_for_errors); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info = 0); void print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, bool commented); void print(FILE* file, LAST_EVENT_INFO* last_event_info = 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info, bool commented); #endif /* Loading Loading @@ -984,7 +996,7 @@ class Start_log_event_v3: public Log_event #endif /* HAVE_REPLICATION */ #else Start_log_event_v3() {} void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Start_log_event_v3(const char* buf, Loading Loading @@ -1079,7 +1091,7 @@ class Intvar_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Intvar_log_event(const char* buf, const Format_description_log_event* description_event); Loading Loading @@ -1120,7 +1132,7 @@ class Rand_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Rand_log_event(const char* buf, const Format_description_log_event* description_event); Loading Loading @@ -1157,7 +1169,7 @@ class Xid_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Xid_log_event(const char* buf, const Format_description_log_event* description_event); Loading Loading @@ -1199,7 +1211,7 @@ class User_var_log_event: public Log_event void pack_info(Protocol* protocol); int exec_event(struct st_relay_log_info* rli); #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif User_var_log_event(const char* buf, const Format_description_log_event* description_event); Loading @@ -1225,7 +1237,7 @@ class Stop_log_event: public Log_event {} int exec_event(struct st_relay_log_info* rli); #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Stop_log_event(const char* buf, const Format_description_log_event* description_event): Loading Loading @@ -1264,7 +1276,7 @@ class Rotate_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Rotate_log_event(const char* buf, uint event_len, Loading Loading @@ -1317,8 +1329,8 @@ class Create_file_log_event: public Load_log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, bool enable_local); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info, bool enable_local); #endif Create_file_log_event(const char* buf, uint event_len, Loading Loading @@ -1385,7 +1397,7 @@ class Append_block_log_event: public Log_event virtual int get_create_or_append() const; #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Append_block_log_event(const char* buf, uint event_len, Loading Loading @@ -1420,8 +1432,8 @@ class Delete_file_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, bool enable_local); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info, bool enable_local); #endif Delete_file_log_event(const char* buf, uint event_len, Loading Loading @@ -1456,7 +1468,7 @@ class Execute_load_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Execute_load_log_event(const char* buf, uint event_len, Loading Loading @@ -1541,10 +1553,9 @@ class Execute_load_query_log_event: public Query_log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); /* Prints the query as LOAD DATA LOCAL and with rewritten filename */ void print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, void print(FILE* file, LAST_EVENT_INFO* last_event_info, const char *local_fname); #endif Execute_load_query_log_event(const char* buf, uint event_len, Loading Loading @@ -1574,7 +1585,7 @@ class Unknown_log_event: public Log_event Log_event(buf, description_event) {} ~Unknown_log_event() {} void print(FILE* file, bool short_form= 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); Log_event_type get_type_code() { return UNKNOWN_EVENT;} bool is_valid() const { return 1; } }; Loading Loading
client/mysqlbinlog.cc +22 −10 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ static const char *load_default_groups[]= { "mysqlbinlog","client",0 }; void sql_print_error(const char *format, ...); static bool one_database=0, to_last_remote_log= 0, disable_log_bin= 0; static bool opt_hexdump= 0; static const char* database= 0; static my_bool force_opt= 0, short_form= 0, remote_opt= 0; static ulonglong offset = 0; Loading Loading @@ -495,6 +496,7 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, char ll_buff[21]; Log_event_type ev_type= ev->get_type_code(); DBUG_ENTER("process_event"); last_event_info->short_form= short_form; /* Format events are not concerned by --offset and such, we always need to Loading Loading @@ -523,11 +525,16 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, if (!short_form) fprintf(result_file, "# at %s\n",llstr(pos,ll_buff)); if (!opt_hexdump) last_event_info->hexdump_from= 0; /* Disabled */ else last_event_info->hexdump_from= pos; switch (ev_type) { case QUERY_EVENT: if (check_database(((Query_log_event*)ev)->db)) goto end; ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); break; case CREATE_FILE_EVENT: { Loading @@ -547,7 +554,8 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, filename and use LOCAL), prepared in the 'case EXEC_LOAD_EVENT' below. */ ce->print(result_file, short_form, last_event_info, TRUE); ce->print(result_file, last_event_info, TRUE); // If this binlog is not 3.23 ; why this test?? if (description_event->binlog_version >= 3) { Loading @@ -558,13 +566,13 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, break; } case APPEND_BLOCK_EVENT: ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); if (load_processor.process((Append_block_log_event*) ev)) break; // Error break; case EXEC_LOAD_EVENT: { ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); Execute_load_log_event *exv= (Execute_load_log_event*)ev; Create_file_log_event *ce= load_processor.grab_event(exv->file_id); /* Loading @@ -574,7 +582,7 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, */ if (ce) { ce->print(result_file, short_form, last_event_info, TRUE); ce->print(result_file, last_event_info, TRUE); my_free((char*)ce->fname,MYF(MY_WME)); delete ce; } Loading @@ -586,7 +594,8 @@ Create_file event for file_id: %u\n",exv->file_id); case FORMAT_DESCRIPTION_EVENT: delete description_event; description_event= (Format_description_log_event*) ev; ev->print(result_file, short_form, last_event_info); last_event_info->common_header_len= description_event->common_header_len; ev->print(result_file, last_event_info); /* We don't want this event to be deleted now, so let's hide it (I (Guilhem) should later see if this triggers a non-serious Valgrind Loading @@ -596,7 +605,7 @@ Create_file event for file_id: %u\n",exv->file_id); ev= 0; break; case BEGIN_LOAD_QUERY_EVENT: ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); load_processor.process((Begin_load_query_log_event*) ev); break; case EXECUTE_LOAD_QUERY_EVENT: Loading @@ -613,7 +622,7 @@ Create_file event for file_id: %u\n",exv->file_id); if (fname) { exlq->print(result_file, short_form, last_event_info, fname); exlq->print(result_file, last_event_info, fname); my_free(fname, MYF(MY_WME)); } else Loading @@ -622,7 +631,7 @@ Begin_load_query event for file_id: %u\n", exlq->file_id); break; } default: ev->print(result_file, short_form, last_event_info); ev->print(result_file, last_event_info); } } Loading Loading @@ -669,6 +678,9 @@ static struct my_option my_long_options[] = 0, 0}, {"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"hexdump", 'H', "Augment output with hexadecimal and ASCII event dump.", (gptr*) &opt_hexdump, (gptr*) &opt_hexdump, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"host", 'h', "Get the binlog from server.", (gptr*) &host, (gptr*) &host, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"offset", 'o', "Skip the first N entries.", (gptr*) &offset, (gptr*) &offset, Loading
sql/log_event.cc +123 −65 Original line number Diff line number Diff line Loading @@ -696,7 +696,6 @@ failed my_b_read")); */ DBUG_RETURN(0); } uint data_len = uint4korr(head + EVENT_LEN_OFFSET); char *buf= 0; const char *error= 0; Loading Loading @@ -876,14 +875,75 @@ Log_event* Log_event::read_log_event(const char* buf, uint event_len, Log_event::print_header() */ void Log_event::print_header(FILE* file) void Log_event::print_header(FILE* file, LAST_EVENT_INFO* last_event_info) { char llbuff[22]; my_off_t hexdump_from= last_event_info->hexdump_from; fputc('#', file); print_timestamp(file); fprintf(file, " server id %d end_log_pos %s ", server_id, llstr(log_pos,llbuff)); /* mysqlbinlog --hexdump */ if (last_event_info->hexdump_from) { fprintf(file, "\n"); uchar *ptr= (uchar*)temp_buf; my_off_t size= uint4korr(ptr + EVENT_LEN_OFFSET) - LOG_EVENT_MINIMAL_HEADER_LEN; my_off_t i; /* Header len * 4 >= header len * (2 chars + space + extra space) */ char *h, hex_string[LOG_EVENT_MINIMAL_HEADER_LEN*4]= {0}; char *c, char_string[16+1]= {0}; /* Pretty-print event common header if header is exactly 19 bytes */ if (last_event_info->common_header_len == 19) { fprintf(file, "# Position Timestamp Type Master ID " "Size Master Pos Flags \n"); fprintf(file, "# %8.8lx %02x %02x %02x %02x %02x " "%02x %02x %02x %02x %02x %02x %02x %02x " "%02x %02x %02x %02x %02x %02x\n", hexdump_from, ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5], ptr[6], ptr[7], ptr[8], ptr[9], ptr[10], ptr[11], ptr[12], ptr[13], ptr[14], ptr[15], ptr[16], ptr[17], ptr[18]); ptr += LOG_EVENT_MINIMAL_HEADER_LEN; hexdump_from += LOG_EVENT_MINIMAL_HEADER_LEN; } /* Rest of event (without common header) */ for (i= 0, c= char_string, h=hex_string; i < size; i++, ptr++) { my_snprintf(h, 4, "%02x ", *ptr); h += 3; *c++= my_isalnum(&my_charset_bin, *ptr) ? *ptr : '.'; if (i % 16 == 15) { fprintf(file, "# %8.8lx %-48.48s |%16s|\n", hexdump_from + (i & 0xfffffff0), hex_string, char_string); hex_string[0]= 0; char_string[0]= 0; c= char_string; h= hex_string; } else if (i % 8 == 7) *h++ = ' '; } *c= '\0'; /* Non-full last line */ if (hex_string[0]) { printf("# %8.8lx %-48.48s |%s|\n# ", hexdump_from + (i & 0xfffffff0), hex_string, char_string); } } } /* Log_event::print_timestamp() Loading Loading @@ -1367,7 +1427,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, */ #ifdef MYSQL_CLIENT void Query_log_event::print_query_header(FILE* file, bool short_form, void Query_log_event::print_query_header(FILE* file, LAST_EVENT_INFO* last_event_info) { // TODO: print the catalog ?? Loading @@ -1375,9 +1435,9 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, bool different_db= 1; uint32 tmp; if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\t%s\tthread_id=%lu\texec_time=%lu\terror_code=%d\n", get_type_str(), (ulong) thread_id, (ulong) exec_time, error_code); } Loading Loading @@ -1498,10 +1558,9 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, } void Query_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Query_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { print_query_header(file, short_form, last_event_info); print_query_header(file, last_event_info); my_fwrite(file, (byte*) query, q_len, MYF(MY_NABP | MY_WME)); fputs(";\n", file); } Loading Loading @@ -1799,11 +1858,11 @@ void Start_log_event_v3::pack_info(Protocol *protocol) */ #ifdef MYSQL_CLIENT void Start_log_event_v3::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Start_log_event_v3::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tStart: binlog v %d, server v %s created ", binlog_version, server_version); print_timestamp(file); Loading Loading @@ -2527,19 +2586,19 @@ int Load_log_event::copy_log_event(const char *buf, ulong event_len, */ #ifdef MYSQL_CLIENT void Load_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Load_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { print(file, short_form, last_event_info, 0); print(file, last_event_info, 0); } void Load_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, void Load_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info, bool commented) { DBUG_ENTER("Load_log_event::print"); if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tQuery\tthread_id=%ld\texec_time=%ld\n", thread_id, exec_time); } Loading Loading @@ -2944,13 +3003,13 @@ void Rotate_log_event::pack_info(Protocol *protocol) */ #ifdef MYSQL_CLIENT void Rotate_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Rotate_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { char buf[22]; if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fprintf(file, "\tRotate to "); if (new_log_ident) my_fwrite(file, (byte*) new_log_ident, (uint)ident_len, Loading Loading @@ -3146,16 +3205,15 @@ bool Intvar_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Intvar_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Intvar_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { char llbuff[22]; const char *msg; LINT_INIT(msg); if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tIntvar\n"); } Loading Loading @@ -3236,12 +3294,12 @@ bool Rand_log_event::write(IO_CACHE* file) #ifdef MYSQL_CLIENT void Rand_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Rand_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { char llbuff[22],llbuff2[22]; if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tRand\n"); } fprintf(file, "SET @@RAND_SEED1=%s, @@RAND_SEED2=%s;\n", Loading Loading @@ -3306,14 +3364,14 @@ bool Xid_log_event::write(IO_CACHE* file) #ifdef MYSQL_CLIENT void Xid_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Xid_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (!short_form) if (!last_event_info->short_form) { char buf[64]; longlong10_to_str(xid, buf, 10); print_header(file); print_header(file, last_event_info); fprintf(file, "\tXid = %s\n", buf); fflush(file); } Loading Loading @@ -3504,11 +3562,11 @@ bool User_var_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void User_var_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void User_var_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (!short_form) if (!last_event_info->short_form) { print_header(file); print_header(file, last_event_info); fprintf(file, "\tUser_var\n"); } Loading Loading @@ -3679,11 +3737,11 @@ int User_var_log_event::exec_event(struct st_relay_log_info* rli) #ifdef HAVE_REPLICATION #ifdef MYSQL_CLIENT void Unknown_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Unknown_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "# %s", "Unknown event\n"); } Loading Loading @@ -3750,12 +3808,12 @@ Slave_log_event::~Slave_log_event() #ifdef MYSQL_CLIENT void Slave_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Slave_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { char llbuff[22]; if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "\ Slave: master_host: '%s' master_port: %d master_log: '%s' master_pos: %s\n", Loading Loading @@ -3835,12 +3893,12 @@ int Slave_log_event::exec_event(struct st_relay_log_info* rli) */ #ifdef MYSQL_CLIENT void Stop_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Stop_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fprintf(file, "\tStop\n"); fflush(file); } Loading Loading @@ -4014,19 +4072,20 @@ Create_file_log_event::Create_file_log_event(const char* buf, uint len, */ #ifdef MYSQL_CLIENT void Create_file_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, bool enable_local) void Create_file_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info, bool enable_local) { if (short_form) if (last_event_info->short_form) { if (enable_local && check_fname_outside_temp_buf()) Load_log_event::print(file, 1, last_event_info); Load_log_event::print(file, last_event_info); return; } if (enable_local) { Load_log_event::print(file, short_form, last_event_info, !check_fname_outside_temp_buf()); Load_log_event::print(file, last_event_info, !check_fname_outside_temp_buf()); /* That one is for "file_id: etc" below: in mysqlbinlog we want the #, in SHOW BINLOG EVENTS we don't. Loading @@ -4038,10 +4097,9 @@ void Create_file_log_event::print(FILE* file, bool short_form, } void Create_file_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Create_file_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { print(file,short_form,last_event_info,0); print(file, last_event_info, 0); } #endif /* MYSQL_CLIENT */ Loading Loading @@ -4201,12 +4259,12 @@ bool Append_block_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Append_block_log_event::print(FILE* file, bool short_form, void Append_block_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "#%s: file_id: %d block_len: %d\n", get_type_str(), file_id, block_len); Loading Loading @@ -4345,12 +4403,12 @@ bool Delete_file_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Delete_file_log_event::print(FILE* file, bool short_form, void Delete_file_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "#Delete_file: file_id=%u\n", file_id); } Loading Loading @@ -4441,12 +4499,12 @@ bool Execute_load_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Execute_load_log_event::print(FILE* file, bool short_form, void Execute_load_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { if (short_form) if (last_event_info->short_form) return; print_header(file); print_header(file, last_event_info); fputc('\n', file); fprintf(file, "#Exec_load: file_id=%d\n", file_id); Loading Loading @@ -4653,18 +4711,18 @@ Execute_load_query_log_event::write_post_header_for_derived(IO_CACHE* file) #ifdef MYSQL_CLIENT void Execute_load_query_log_event::print(FILE* file, bool short_form, void Execute_load_query_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { print(file, short_form, last_event_info, 0); print(file, last_event_info, 0); } void Execute_load_query_log_event::print(FILE* file, bool short_form, void Execute_load_query_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info, const char *local_fname) { print_query_header(file, short_form, last_event_info); print_query_header(file, last_event_info); if (local_fname) { Loading @@ -4685,7 +4743,7 @@ void Execute_load_query_log_event::print(FILE* file, bool short_form, fprintf(file, ";\n"); } if (!short_form) if (!last_event_info->short_form) fprintf(file, "# file_id: %d \n", file_id); } #endif Loading
sql/log_event.h +39 −28 Original line number Diff line number Diff line Loading @@ -451,12 +451,18 @@ struct st_relay_log_info; #ifdef MYSQL_CLIENT /* A structure for mysqlbinlog to remember the last db, flags2, sql_mode etc; it is passed to events' print() methods, so that they print only the necessary USE and SET commands. A structure for mysqlbinlog to know how to print events This structure is passed to the event's print() methods so that only the necessary USE and SET commands are printed. Last db, flags2, sql_mode etc are stored here. The structure also contain other information on how to print the events, e.g. short_form, hexdump_from. */ typedef struct st_last_event_info { /* Old settings for database, sql_mode etc */ // TODO: have the last catalog here ?? char db[FN_REFLEN+1]; // TODO: make this a LEX_STRING when thd->db is bool flags2_inited; Loading @@ -480,6 +486,12 @@ typedef struct st_last_event_info bzero(charset, sizeof(charset)); bzero(time_zone_str, sizeof(time_zone_str)); } /* Settings on how to print the events */ bool short_form; my_off_t hexdump_from; uint8 common_header_len; } LAST_EVENT_INFO; #endif Loading Loading @@ -589,9 +601,9 @@ class Log_event static Log_event* read_log_event(IO_CACHE* file, const Format_description_log_event *description_event); /* print*() functions are used by mysqlbinlog */ virtual void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0) = 0; virtual void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0) = 0; void print_timestamp(FILE* file, time_t *ts = 0); void print_header(FILE* file); void print_header(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif static void *operator new(size_t size) Loading Loading @@ -751,8 +763,8 @@ class Query_log_event: public Log_event uint32 q_len_arg); #endif /* HAVE_REPLICATION */ #else void print_query_header(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print_query_header(FILE* file, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Query_log_event(const char* buf, uint event_len, Loading Loading @@ -806,7 +818,7 @@ class Slave_log_event: public Log_event void pack_info(Protocol* protocol); int exec_event(struct st_relay_log_info* rli); #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Slave_log_event(const char* buf, uint event_len); Loading Loading @@ -894,8 +906,8 @@ class Load_log_event: public Log_event bool use_rli_only_for_errors); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info = 0); void print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, bool commented); void print(FILE* file, LAST_EVENT_INFO* last_event_info = 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info, bool commented); #endif /* Loading Loading @@ -984,7 +996,7 @@ class Start_log_event_v3: public Log_event #endif /* HAVE_REPLICATION */ #else Start_log_event_v3() {} void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Start_log_event_v3(const char* buf, Loading Loading @@ -1079,7 +1091,7 @@ class Intvar_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Intvar_log_event(const char* buf, const Format_description_log_event* description_event); Loading Loading @@ -1120,7 +1132,7 @@ class Rand_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Rand_log_event(const char* buf, const Format_description_log_event* description_event); Loading Loading @@ -1157,7 +1169,7 @@ class Xid_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Xid_log_event(const char* buf, const Format_description_log_event* description_event); Loading Loading @@ -1199,7 +1211,7 @@ class User_var_log_event: public Log_event void pack_info(Protocol* protocol); int exec_event(struct st_relay_log_info* rli); #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif User_var_log_event(const char* buf, const Format_description_log_event* description_event); Loading @@ -1225,7 +1237,7 @@ class Stop_log_event: public Log_event {} int exec_event(struct st_relay_log_info* rli); #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Stop_log_event(const char* buf, const Format_description_log_event* description_event): Loading Loading @@ -1264,7 +1276,7 @@ class Rotate_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Rotate_log_event(const char* buf, uint event_len, Loading Loading @@ -1317,8 +1329,8 @@ class Create_file_log_event: public Load_log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, bool enable_local); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info, bool enable_local); #endif Create_file_log_event(const char* buf, uint event_len, Loading Loading @@ -1385,7 +1397,7 @@ class Append_block_log_event: public Log_event virtual int get_create_or_append() const; #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Append_block_log_event(const char* buf, uint event_len, Loading Loading @@ -1420,8 +1432,8 @@ class Delete_file_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, bool enable_local); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info, bool enable_local); #endif Delete_file_log_event(const char* buf, uint event_len, Loading Loading @@ -1456,7 +1468,7 @@ class Execute_load_log_event: public Log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); #endif Execute_load_log_event(const char* buf, uint event_len, Loading Loading @@ -1541,10 +1553,9 @@ class Execute_load_query_log_event: public Query_log_event int exec_event(struct st_relay_log_info* rli); #endif /* HAVE_REPLICATION */ #else void print(FILE* file, bool short_form = 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); /* Prints the query as LOAD DATA LOCAL and with rewritten filename */ void print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, void print(FILE* file, LAST_EVENT_INFO* last_event_info, const char *local_fname); #endif Execute_load_query_log_event(const char* buf, uint event_len, Loading Loading @@ -1574,7 +1585,7 @@ class Unknown_log_event: public Log_event Log_event(buf, description_event) {} ~Unknown_log_event() {} void print(FILE* file, bool short_form= 0, LAST_EVENT_INFO* last_event_info= 0); void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0); Log_event_type get_type_code() { return UNKNOWN_EVENT;} bool is_valid() const { return 1; } }; Loading