diff options
author | unknown <lars@mysql.com> | 2005-10-12 23:37:21 +0200 |
---|---|---|
committer | unknown <lars@mysql.com> | 2005-10-12 23:37:21 +0200 |
commit | 4184dc214cebb30215859e269e5a8ac1ed8f87a5 (patch) | |
tree | 040cb801cf50033915de02efce0179632bc0dbbf /sql/log_event.cc | |
parent | 65ef59d978c76b2495d65c832bf2331d8b54bb88 (diff) | |
download | mariadb-git-4184dc214cebb30215859e269e5a8ac1ed8f87a5.tar.gz |
mysqlbin --hexdump patch 3
client/mysqlbinlog.cc:
Collapsing multiple arguments to print function into the last_event_info struct
sql/log_event.cc:
Only print header is length=19 (otherwise print in standard hexdump format)
Collapsing multiple arguments into last_event_info struct
sql/log_event.h:
Collapsing multiple arguments into last_event_info struct
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r-- | sql/log_event.cc | 171 |
1 files changed, 78 insertions, 93 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc index c704e81007a..2a6dd04fea8 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -701,7 +701,6 @@ failed my_b_read")); */ DBUG_RETURN(0); } - uint data_len = uint4korr(head + EVENT_LEN_OFFSET); char *buf= 0; const char *error= 0; @@ -881,16 +880,18 @@ Log_event* Log_event::read_log_event(const char* buf, uint event_len, Log_event::print_header() */ -void Log_event::print_header(FILE* file, my_off_t hexdump_from) +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 (hexdump_from) + if (last_event_info->hexdump_from) { fprintf(file, "\n"); uchar *ptr= (uchar*)temp_buf; @@ -902,17 +903,20 @@ void Log_event::print_header(FILE* file, my_off_t hexdump_from) char *h, hex_string[LOG_EVENT_MINIMAL_HEADER_LEN*4]= {0}; char *c, char_string[16+1]= {0}; - /* Common header of event */ - 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; + /* 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; @@ -1428,18 +1432,17 @@ 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, - my_off_t hexdump_from, - LAST_EVENT_INFO* last_event_info) +void Query_log_event::print_query_header(FILE* file, + LAST_EVENT_INFO* last_event_info) { // TODO: print the catalog ?? char buff[40],*end; // Enough for SET TIMESTAMP bool different_db= 1; uint32 tmp; - if (!short_form) + if (!last_event_info->short_form) { - print_header(file, hexdump_from); + 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); } @@ -1560,10 +1563,9 @@ void Query_log_event::print_query_header(FILE* file, bool short_form, } -void Query_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from, - 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, hexdump_from, 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); } @@ -1861,12 +1863,11 @@ void Start_log_event_v3::pack_info(Protocol *protocol) */ #ifdef MYSQL_CLIENT -void Start_log_event_v3::print(FILE* file, bool short_form, my_off_t hexdump_from, - 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, hexdump_from); + print_header(file, last_event_info); fprintf(file, "\tStart: binlog v %d, server v %s created ", binlog_version, server_version); print_timestamp(file); @@ -2590,20 +2591,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, my_off_t hexdump_from, - LAST_EVENT_INFO* last_event_info) +void Load_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { - print(file, short_form, hexdump_from, last_event_info, 0); + print(file, last_event_info, 0); } -void Load_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from, - LAST_EVENT_INFO* last_event_info, bool commented) +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, hexdump_from); + print_header(file, last_event_info); fprintf(file, "\tQuery\tthread_id=%ld\texec_time=%ld\n", thread_id, exec_time); } @@ -3008,14 +3008,13 @@ void Rotate_log_event::pack_info(Protocol *protocol) */ #ifdef MYSQL_CLIENT -void Rotate_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from, - 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, hexdump_from); + print_header(file, last_event_info); fprintf(file, "\tRotate to "); if (new_log_ident) my_fwrite(file, (byte*) new_log_ident, (uint)ident_len, @@ -3211,16 +3210,15 @@ bool Intvar_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT -void Intvar_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from, - 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, hexdump_from); + print_header(file, last_event_info); fprintf(file, "\tIntvar\n"); } @@ -3301,13 +3299,12 @@ bool Rand_log_event::write(IO_CACHE* file) #ifdef MYSQL_CLIENT -void Rand_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from, - 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, hexdump_from); + print_header(file, last_event_info); fprintf(file, "\tRand\n"); } fprintf(file, "SET @@RAND_SEED1=%s, @@RAND_SEED2=%s;\n", @@ -3372,15 +3369,14 @@ bool Xid_log_event::write(IO_CACHE* file) #ifdef MYSQL_CLIENT -void Xid_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from, - 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, hexdump_from); + print_header(file, last_event_info); fprintf(file, "\tXid = %s\n", buf); fflush(file); } @@ -3571,12 +3567,11 @@ bool User_var_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT -void User_var_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from, - 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, hexdump_from); + print_header(file, last_event_info); fprintf(file, "\tUser_var\n"); } @@ -3747,12 +3742,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, my_off_t hexdump_from, - 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, hexdump_from); + print_header(file, last_event_info); fputc('\n', file); fprintf(file, "# %s", "Unknown event\n"); } @@ -3819,13 +3813,12 @@ Slave_log_event::~Slave_log_event() #ifdef MYSQL_CLIENT -void Slave_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from, - 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, hexdump_from); + 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", @@ -3905,13 +3898,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, my_off_t hexdump_from, - 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, hexdump_from); + print_header(file, last_event_info); fprintf(file, "\tStop\n"); fflush(file); } @@ -4085,19 +4077,19 @@ 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, my_off_t hexdump_from, - 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, hexdump_from, last_event_info); + Load_log_event::print(file, last_event_info); return; } if (enable_local) { - Load_log_event::print(file, short_form, hexdump_from, last_event_info, + 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 @@ -4110,11 +4102,9 @@ void Create_file_log_event::print(FILE* file, bool short_form, my_off_t hexdump_ } -void Create_file_log_event::print(FILE* file, bool short_form, - my_off_t hexdump_from, - LAST_EVENT_INFO* last_event_info) +void Create_file_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { - print(file, short_form, hexdump_from, last_event_info, 0); + print(file, last_event_info, 0); } #endif /* MYSQL_CLIENT */ @@ -4274,13 +4264,12 @@ bool Append_block_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT -void Append_block_log_event::print(FILE* file, bool short_form, - my_off_t hexdump_from, +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, hexdump_from); + 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); @@ -4419,13 +4408,12 @@ bool Delete_file_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT -void Delete_file_log_event::print(FILE* file, bool short_form, - my_off_t hexdump_from, +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, hexdump_from); + print_header(file, last_event_info); fputc('\n', file); fprintf(file, "#Delete_file: file_id=%u\n", file_id); } @@ -4516,13 +4504,12 @@ bool Execute_load_log_event::write(IO_CACHE* file) */ #ifdef MYSQL_CLIENT -void Execute_load_log_event::print(FILE* file, bool short_form, - my_off_t hexdump_from, +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, hexdump_from); + print_header(file, last_event_info); fputc('\n', file); fprintf(file, "#Exec_load: file_id=%d\n", file_id); @@ -4729,20 +4716,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, - my_off_t hexdump_from, +void Execute_load_query_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info) { - print(file, short_form, hexdump_from, last_event_info, 0); + print(file, last_event_info, 0); } -void Execute_load_query_log_event::print(FILE* file, bool short_form, - my_off_t hexdump_from, +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, hexdump_from, last_event_info); + print_query_header(file, last_event_info); if (local_fname) { @@ -4763,7 +4748,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 |