Loading client/mysqlbinlog.cc +28 −16 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 @@ -489,12 +490,13 @@ static bool check_database(const char *log_dbname) int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, int process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev, my_off_t pos) { char ll_buff[21]; Log_event_type ev_type= ev->get_type_code(); DBUG_ENTER("process_event"); print_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) print_event_info->hexdump_from= 0; /* Disabled */ else print_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, print_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, print_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, print_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, print_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, print_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); print_event_info->common_header_len= description_event->common_header_len; ev->print(result_file, print_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, print_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, print_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, print_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 Loading @@ -1002,7 +1014,7 @@ static int dump_remote_log_entries(const char* logname) { char buf[128]; LAST_EVENT_INFO last_event_info; PRINT_EVENT_INFO print_event_info; ulong len; uint logname_len; NET* net; Loading Loading @@ -1125,7 +1137,7 @@ could be out of memory"); len= 1; // fake Rotate, so don't increment old_off } } if ((error= process_event(&last_event_info,ev,old_off))) if ((error= process_event(&print_event_info, ev, old_off))) { error= ((error < 0) ? 0 : 1); goto err; Loading @@ -1144,7 +1156,7 @@ could be out of memory"); goto err; } if ((error= process_event(&last_event_info,ev,old_off))) if ((error= process_event(&print_event_info, ev, old_off))) { my_close(file,MYF(MY_WME)); error= ((error < 0) ? 0 : 1); Loading Loading @@ -1273,7 +1285,7 @@ static int dump_local_log_entries(const char* logname) { File fd = -1; IO_CACHE cache,*file= &cache; LAST_EVENT_INFO last_event_info; PRINT_EVENT_INFO print_event_info; byte tmp_buff[BIN_LOG_HEADER_SIZE]; int error= 0; Loading Loading @@ -1345,7 +1357,7 @@ static int dump_local_log_entries(const char* logname) // file->error == 0 means EOF, that's OK, we break in this case break; } if ((error= process_event(&last_event_info,ev,old_off))) if ((error= process_event(&print_event_info, ev, old_off))) { if (error < 0) error= 0; Loading sql/log_event.cc +152 −94 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,15 +875,76 @@ 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, PRINT_EVENT_INFO* print_event_info) { char llbuff[22]; my_off_t hexdump_from= print_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 (print_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 (print_event_info->common_header_len == LOG_EVENT_MINIMAL_HEADER_LEN) { 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,25 +1427,25 @@ 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, LAST_EVENT_INFO* last_event_info) void Query_log_event::print_query_header(FILE* file, PRINT_EVENT_INFO* print_event_info) { // TODO: print the catalog ?? char buff[40],*end; // Enough for SET TIMESTAMP bool different_db= 1; uint32 tmp; if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_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); } if (!(flags & LOG_EVENT_SUPPRESS_USE_F) && db) { if (different_db= memcmp(last_event_info->db, db, db_len + 1)) memcpy(last_event_info->db, db, db_len + 1); if (different_db= memcmp(print_event_info->db, db, db_len + 1)) memcpy(print_event_info->db, db, db_len + 1); if (db[0] && different_db) fprintf(file, "use %s;\n", db); } Loading @@ -1405,12 +1465,12 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, if (likely(flags2_inited)) /* likely as this will mainly read 5.0 logs */ { /* tmp is a bitmask of bits which have changed. */ if (likely(last_event_info->flags2_inited)) if (likely(print_event_info->flags2_inited)) /* All bits which have changed */ tmp= (last_event_info->flags2) ^ flags2; tmp= (print_event_info->flags2) ^ flags2; else /* that's the first Query event we read */ { last_event_info->flags2_inited= 1; print_event_info->flags2_inited= 1; tmp= ~((uint32)0); /* all bits have changed */ } Loading @@ -1425,7 +1485,7 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, print_set_option(file, tmp, OPTION_RELAXED_UNIQUE_CHECKS, ~flags2, "@@session.unique_checks", &need_comma); fprintf(file,";\n"); last_event_info->flags2= flags2; print_event_info->flags2= flags2; } } Loading @@ -1444,37 +1504,37 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, if (likely(sql_mode_inited)) { if (unlikely(!last_event_info->sql_mode_inited)) /* first Query event */ if (unlikely(!print_event_info->sql_mode_inited)) /* first Query event */ { last_event_info->sql_mode_inited= 1; print_event_info->sql_mode_inited= 1; /* force a difference to force write */ last_event_info->sql_mode= ~sql_mode; print_event_info->sql_mode= ~sql_mode; } if (unlikely(last_event_info->sql_mode != sql_mode)) if (unlikely(print_event_info->sql_mode != sql_mode)) { fprintf(file,"SET @@session.sql_mode=%lu;\n",(ulong)sql_mode); last_event_info->sql_mode= sql_mode; print_event_info->sql_mode= sql_mode; } } if (last_event_info->auto_increment_increment != auto_increment_increment || last_event_info->auto_increment_offset != auto_increment_offset) if (print_event_info->auto_increment_increment != auto_increment_increment || print_event_info->auto_increment_offset != auto_increment_offset) { fprintf(file,"SET @@session.auto_increment_increment=%lu, @@session.auto_increment_offset=%lu;\n", auto_increment_increment,auto_increment_offset); last_event_info->auto_increment_increment= auto_increment_increment; last_event_info->auto_increment_offset= auto_increment_offset; print_event_info->auto_increment_increment= auto_increment_increment; print_event_info->auto_increment_offset= auto_increment_offset; } /* TODO: print the catalog when we feature SET CATALOG */ if (likely(charset_inited)) { if (unlikely(!last_event_info->charset_inited)) /* first Query event */ if (unlikely(!print_event_info->charset_inited)) /* first Query event */ { last_event_info->charset_inited= 1; last_event_info->charset[0]= ~charset[0]; // force a difference to force write print_event_info->charset_inited= 1; print_event_info->charset[0]= ~charset[0]; // force a difference to force write } if (unlikely(bcmp(last_event_info->charset, charset, 6))) if (unlikely(bcmp(print_event_info->charset, charset, 6))) { fprintf(file,"SET " "@@session.character_set_client=%d," Loading @@ -1484,24 +1544,23 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, uint2korr(charset), uint2korr(charset+2), uint2korr(charset+4)); memcpy(last_event_info->charset, charset, 6); memcpy(print_event_info->charset, charset, 6); } } if (time_zone_len) { if (bcmp(last_event_info->time_zone_str, time_zone_str, time_zone_len+1)) if (bcmp(print_event_info->time_zone_str, time_zone_str, time_zone_len+1)) { fprintf(file,"SET @@session.time_zone='%s';\n", time_zone_str); memcpy(last_event_info->time_zone_str, time_zone_str, time_zone_len+1); memcpy(print_event_info->time_zone_str, time_zone_str, time_zone_len+1); } } } void Query_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Query_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { print_query_header(file, short_form, last_event_info); print_query_header(file, print_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, PRINT_EVENT_INFO* print_event_info) { if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_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, PRINT_EVENT_INFO* print_event_info) { print(file, short_form, last_event_info, 0); print(file, print_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, PRINT_EVENT_INFO* print_event_info, bool commented) { DBUG_ENTER("Load_log_event::print"); if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_event_info); fprintf(file, "\tQuery\tthread_id=%ld\texec_time=%ld\n", thread_id, exec_time); } Loading @@ -2553,9 +2612,9 @@ void Load_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_ev But if commented, the "use" is going to be commented so we should not update the last_db. */ if ((different_db= memcmp(last_event_info->db, db, db_len + 1)) && if ((different_db= memcmp(print_event_info->db, db, db_len + 1)) && !commented) memcpy(last_event_info->db, db, db_len + 1); memcpy(print_event_info->db, db, db_len + 1); } if (db && db[0] && different_db) 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, PRINT_EVENT_INFO* print_event_info) { char buf[22]; if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fprintf(file, "\tRotate to "); if (new_log_ident) my_fwrite(file, (byte*) new_log_ident, (uint)ident_len, Loading Loading @@ -3168,16 +3227,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, PRINT_EVENT_INFO* print_event_info) { char llbuff[22]; const char *msg; LINT_INIT(msg); if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_event_info); fprintf(file, "\tIntvar\n"); } Loading Loading @@ -3258,12 +3316,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, PRINT_EVENT_INFO* print_event_info) { char llbuff[22],llbuff2[22]; if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_event_info); fprintf(file, "\tRand\n"); } fprintf(file, "SET @@RAND_SEED1=%s, @@RAND_SEED2=%s;\n", Loading Loading @@ -3328,14 +3386,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, PRINT_EVENT_INFO* print_event_info) { if (!short_form) if (!print_event_info->short_form) { char buf[64]; longlong10_to_str(xid, buf, 10); print_header(file); print_header(file, print_event_info); fprintf(file, "\tXid = %s\n", buf); fflush(file); } Loading Loading @@ -3526,11 +3584,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, PRINT_EVENT_INFO* print_event_info) { if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_event_info); fprintf(file, "\tUser_var\n"); } Loading Loading @@ -3701,11 +3759,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, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "# %s", "Unknown event\n"); } Loading Loading @@ -3772,12 +3830,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, PRINT_EVENT_INFO* print_event_info) { char llbuff[22]; if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "\ Slave: master_host: '%s' master_port: %d master_log: '%s' master_pos: %s\n", Loading Loading @@ -3857,12 +3915,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, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fprintf(file, "\tStop\n"); fflush(file); } Loading Loading @@ -4036,19 +4094,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, PRINT_EVENT_INFO* print_event_info, bool enable_local) { if (short_form) if (print_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, print_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, print_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 @@ -4060,10 +4119,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, PRINT_EVENT_INFO* print_event_info) { print(file,short_form,last_event_info,0); print(file, print_event_info, 0); } #endif /* MYSQL_CLIENT */ Loading Loading @@ -4223,12 +4281,12 @@ bool Append_block_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Append_block_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Append_block_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "#%s: file_id: %d block_len: %d\n", get_type_str(), file_id, block_len); Loading Loading @@ -4367,12 +4425,12 @@ bool Delete_file_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Delete_file_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Delete_file_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "#Delete_file: file_id=%u\n", file_id); } Loading Loading @@ -4463,12 +4521,12 @@ bool Execute_load_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Execute_load_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Execute_load_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "#Exec_load: file_id=%d\n", file_id); Loading Loading @@ -4675,18 +4733,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, LAST_EVENT_INFO* last_event_info) void Execute_load_query_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { print(file, short_form, last_event_info, 0); print(file, print_event_info, 0); } void Execute_load_query_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, void Execute_load_query_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info, const char *local_fname) { print_query_header(file, short_form, last_event_info); print_query_header(file, print_event_info); if (local_fname) { Loading @@ -4707,7 +4765,7 @@ void Execute_load_query_log_event::print(FILE* file, bool short_form, fprintf(file, ";\n"); } if (!short_form) if (!print_event_info->short_form) fprintf(file, "# file_id: %d \n", file_id); } #endif Loading sql/log_event.h +48 −32 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
client/mysqlbinlog.cc +28 −16 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 @@ -489,12 +490,13 @@ static bool check_database(const char *log_dbname) int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev, int process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev, my_off_t pos) { char ll_buff[21]; Log_event_type ev_type= ev->get_type_code(); DBUG_ENTER("process_event"); print_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) print_event_info->hexdump_from= 0; /* Disabled */ else print_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, print_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, print_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, print_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, print_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, print_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); print_event_info->common_header_len= description_event->common_header_len; ev->print(result_file, print_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, print_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, print_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, print_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 Loading @@ -1002,7 +1014,7 @@ static int dump_remote_log_entries(const char* logname) { char buf[128]; LAST_EVENT_INFO last_event_info; PRINT_EVENT_INFO print_event_info; ulong len; uint logname_len; NET* net; Loading Loading @@ -1125,7 +1137,7 @@ could be out of memory"); len= 1; // fake Rotate, so don't increment old_off } } if ((error= process_event(&last_event_info,ev,old_off))) if ((error= process_event(&print_event_info, ev, old_off))) { error= ((error < 0) ? 0 : 1); goto err; Loading @@ -1144,7 +1156,7 @@ could be out of memory"); goto err; } if ((error= process_event(&last_event_info,ev,old_off))) if ((error= process_event(&print_event_info, ev, old_off))) { my_close(file,MYF(MY_WME)); error= ((error < 0) ? 0 : 1); Loading Loading @@ -1273,7 +1285,7 @@ static int dump_local_log_entries(const char* logname) { File fd = -1; IO_CACHE cache,*file= &cache; LAST_EVENT_INFO last_event_info; PRINT_EVENT_INFO print_event_info; byte tmp_buff[BIN_LOG_HEADER_SIZE]; int error= 0; Loading Loading @@ -1345,7 +1357,7 @@ static int dump_local_log_entries(const char* logname) // file->error == 0 means EOF, that's OK, we break in this case break; } if ((error= process_event(&last_event_info,ev,old_off))) if ((error= process_event(&print_event_info, ev, old_off))) { if (error < 0) error= 0; Loading
sql/log_event.cc +152 −94 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,15 +875,76 @@ 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, PRINT_EVENT_INFO* print_event_info) { char llbuff[22]; my_off_t hexdump_from= print_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 (print_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 (print_event_info->common_header_len == LOG_EVENT_MINIMAL_HEADER_LEN) { 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,25 +1427,25 @@ 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, LAST_EVENT_INFO* last_event_info) void Query_log_event::print_query_header(FILE* file, PRINT_EVENT_INFO* print_event_info) { // TODO: print the catalog ?? char buff[40],*end; // Enough for SET TIMESTAMP bool different_db= 1; uint32 tmp; if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_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); } if (!(flags & LOG_EVENT_SUPPRESS_USE_F) && db) { if (different_db= memcmp(last_event_info->db, db, db_len + 1)) memcpy(last_event_info->db, db, db_len + 1); if (different_db= memcmp(print_event_info->db, db, db_len + 1)) memcpy(print_event_info->db, db, db_len + 1); if (db[0] && different_db) fprintf(file, "use %s;\n", db); } Loading @@ -1405,12 +1465,12 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, if (likely(flags2_inited)) /* likely as this will mainly read 5.0 logs */ { /* tmp is a bitmask of bits which have changed. */ if (likely(last_event_info->flags2_inited)) if (likely(print_event_info->flags2_inited)) /* All bits which have changed */ tmp= (last_event_info->flags2) ^ flags2; tmp= (print_event_info->flags2) ^ flags2; else /* that's the first Query event we read */ { last_event_info->flags2_inited= 1; print_event_info->flags2_inited= 1; tmp= ~((uint32)0); /* all bits have changed */ } Loading @@ -1425,7 +1485,7 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, print_set_option(file, tmp, OPTION_RELAXED_UNIQUE_CHECKS, ~flags2, "@@session.unique_checks", &need_comma); fprintf(file,";\n"); last_event_info->flags2= flags2; print_event_info->flags2= flags2; } } Loading @@ -1444,37 +1504,37 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, if (likely(sql_mode_inited)) { if (unlikely(!last_event_info->sql_mode_inited)) /* first Query event */ if (unlikely(!print_event_info->sql_mode_inited)) /* first Query event */ { last_event_info->sql_mode_inited= 1; print_event_info->sql_mode_inited= 1; /* force a difference to force write */ last_event_info->sql_mode= ~sql_mode; print_event_info->sql_mode= ~sql_mode; } if (unlikely(last_event_info->sql_mode != sql_mode)) if (unlikely(print_event_info->sql_mode != sql_mode)) { fprintf(file,"SET @@session.sql_mode=%lu;\n",(ulong)sql_mode); last_event_info->sql_mode= sql_mode; print_event_info->sql_mode= sql_mode; } } if (last_event_info->auto_increment_increment != auto_increment_increment || last_event_info->auto_increment_offset != auto_increment_offset) if (print_event_info->auto_increment_increment != auto_increment_increment || print_event_info->auto_increment_offset != auto_increment_offset) { fprintf(file,"SET @@session.auto_increment_increment=%lu, @@session.auto_increment_offset=%lu;\n", auto_increment_increment,auto_increment_offset); last_event_info->auto_increment_increment= auto_increment_increment; last_event_info->auto_increment_offset= auto_increment_offset; print_event_info->auto_increment_increment= auto_increment_increment; print_event_info->auto_increment_offset= auto_increment_offset; } /* TODO: print the catalog when we feature SET CATALOG */ if (likely(charset_inited)) { if (unlikely(!last_event_info->charset_inited)) /* first Query event */ if (unlikely(!print_event_info->charset_inited)) /* first Query event */ { last_event_info->charset_inited= 1; last_event_info->charset[0]= ~charset[0]; // force a difference to force write print_event_info->charset_inited= 1; print_event_info->charset[0]= ~charset[0]; // force a difference to force write } if (unlikely(bcmp(last_event_info->charset, charset, 6))) if (unlikely(bcmp(print_event_info->charset, charset, 6))) { fprintf(file,"SET " "@@session.character_set_client=%d," Loading @@ -1484,24 +1544,23 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, uint2korr(charset), uint2korr(charset+2), uint2korr(charset+4)); memcpy(last_event_info->charset, charset, 6); memcpy(print_event_info->charset, charset, 6); } } if (time_zone_len) { if (bcmp(last_event_info->time_zone_str, time_zone_str, time_zone_len+1)) if (bcmp(print_event_info->time_zone_str, time_zone_str, time_zone_len+1)) { fprintf(file,"SET @@session.time_zone='%s';\n", time_zone_str); memcpy(last_event_info->time_zone_str, time_zone_str, time_zone_len+1); memcpy(print_event_info->time_zone_str, time_zone_str, time_zone_len+1); } } } void Query_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Query_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { print_query_header(file, short_form, last_event_info); print_query_header(file, print_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, PRINT_EVENT_INFO* print_event_info) { if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_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, PRINT_EVENT_INFO* print_event_info) { print(file, short_form, last_event_info, 0); print(file, print_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, PRINT_EVENT_INFO* print_event_info, bool commented) { DBUG_ENTER("Load_log_event::print"); if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_event_info); fprintf(file, "\tQuery\tthread_id=%ld\texec_time=%ld\n", thread_id, exec_time); } Loading @@ -2553,9 +2612,9 @@ void Load_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_ev But if commented, the "use" is going to be commented so we should not update the last_db. */ if ((different_db= memcmp(last_event_info->db, db, db_len + 1)) && if ((different_db= memcmp(print_event_info->db, db, db_len + 1)) && !commented) memcpy(last_event_info->db, db, db_len + 1); memcpy(print_event_info->db, db, db_len + 1); } if (db && db[0] && different_db) 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, PRINT_EVENT_INFO* print_event_info) { char buf[22]; if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fprintf(file, "\tRotate to "); if (new_log_ident) my_fwrite(file, (byte*) new_log_ident, (uint)ident_len, Loading Loading @@ -3168,16 +3227,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, PRINT_EVENT_INFO* print_event_info) { char llbuff[22]; const char *msg; LINT_INIT(msg); if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_event_info); fprintf(file, "\tIntvar\n"); } Loading Loading @@ -3258,12 +3316,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, PRINT_EVENT_INFO* print_event_info) { char llbuff[22],llbuff2[22]; if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_event_info); fprintf(file, "\tRand\n"); } fprintf(file, "SET @@RAND_SEED1=%s, @@RAND_SEED2=%s;\n", Loading Loading @@ -3328,14 +3386,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, PRINT_EVENT_INFO* print_event_info) { if (!short_form) if (!print_event_info->short_form) { char buf[64]; longlong10_to_str(xid, buf, 10); print_header(file); print_header(file, print_event_info); fprintf(file, "\tXid = %s\n", buf); fflush(file); } Loading Loading @@ -3526,11 +3584,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, PRINT_EVENT_INFO* print_event_info) { if (!short_form) if (!print_event_info->short_form) { print_header(file); print_header(file, print_event_info); fprintf(file, "\tUser_var\n"); } Loading Loading @@ -3701,11 +3759,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, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "# %s", "Unknown event\n"); } Loading Loading @@ -3772,12 +3830,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, PRINT_EVENT_INFO* print_event_info) { char llbuff[22]; if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "\ Slave: master_host: '%s' master_port: %d master_log: '%s' master_pos: %s\n", Loading Loading @@ -3857,12 +3915,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, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fprintf(file, "\tStop\n"); fflush(file); } Loading Loading @@ -4036,19 +4094,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, PRINT_EVENT_INFO* print_event_info, bool enable_local) { if (short_form) if (print_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, print_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, print_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 @@ -4060,10 +4119,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, PRINT_EVENT_INFO* print_event_info) { print(file,short_form,last_event_info,0); print(file, print_event_info, 0); } #endif /* MYSQL_CLIENT */ Loading Loading @@ -4223,12 +4281,12 @@ bool Append_block_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Append_block_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Append_block_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "#%s: file_id: %d block_len: %d\n", get_type_str(), file_id, block_len); Loading Loading @@ -4367,12 +4425,12 @@ bool Delete_file_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Delete_file_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Delete_file_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "#Delete_file: file_id=%u\n", file_id); } Loading Loading @@ -4463,12 +4521,12 @@ bool Execute_load_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT void Execute_load_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info) void Execute_load_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { if (short_form) if (print_event_info->short_form) return; print_header(file); print_header(file, print_event_info); fputc('\n', file); fprintf(file, "#Exec_load: file_id=%d\n", file_id); Loading Loading @@ -4675,18 +4733,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, LAST_EVENT_INFO* last_event_info) void Execute_load_query_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) { print(file, short_form, last_event_info, 0); print(file, print_event_info, 0); } void Execute_load_query_log_event::print(FILE* file, bool short_form, LAST_EVENT_INFO* last_event_info, void Execute_load_query_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info, const char *local_fname) { print_query_header(file, short_form, last_event_info); print_query_header(file, print_event_info); if (local_fname) { Loading @@ -4707,7 +4765,7 @@ void Execute_load_query_log_event::print(FILE* file, bool short_form, fprintf(file, ";\n"); } if (!short_form) if (!print_event_info->short_form) fprintf(file, "# file_id: %d \n", file_id); } #endif Loading