List:Internals« Previous MessageNext Message »
From:Lars Thalmann Date:October 12 2005 9:37pm
Subject:bk commit into 5.0 tree (lars:1.2036)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of lthalmann. When lthalmann does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2036 05/10/12 23:37:21 lars@stripped +3 -0
  mysqlbin --hexdump patch 3

  sql/log_event.h
    1.118 05/10/12 23:36:58 lars@stripped +39 -49
    Collapsing multiple arguments into last_event_info struct

  sql/log_event.cc
    1.193 05/10/12 23:36:58 lars@stripped +78 -93
    Only print header is length=19 (otherwise print in standard hexdump format)
    Collapsing multiple arguments into last_event_info struct

  client/mysqlbinlog.cc
    1.118 05/10/12 23:36:57 lars@stripped +15 -11
    Collapsing multiple arguments to print function into the last_event_info struct

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	lars
# Host:	dl145h.mysql.com
# Root:	/users/lthalmann/bk/mysql-5.0-hexdump

--- 1.192/sql/log_event.cc	2005-09-30 00:12:07 +02:00
+++ 1.193/sql/log_event.cc	2005-10-12 23:36:58 +02:00
@@ -701,7 +701,6 @@
     */
     DBUG_RETURN(0);
   }
-
   uint data_len = uint4korr(head + EVENT_LEN_OFFSET);
   char *buf= 0;
   const char *error= 0;
@@ -881,16 +880,18 @@
   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 @@
     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 @@
 */
 
 #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(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 @@
 */
 
 #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 @@
 */
 
 #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 @@
 */
 
 #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 @@
 */
 
 #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 @@
 
 
 #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 @@
 
 
 #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 @@
 */
 
 #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 @@
 
 #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 @@
 
 
 #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 @@
 */
 
 #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 @@
 */
 
 #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_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 @@
 */
 
 #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 @@
 */
 
 #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 @@
 */
 
 #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 @@
 
 
 #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 @@
     fprintf(file, ";\n");
   }
 
-  if (!short_form)
+  if (!last_event_info->short_form)
     fprintf(file, "# file_id: %d \n", file_id);
 }
 #endif

--- 1.117/sql/log_event.h	2005-09-30 00:12:07 +02:00
+++ 1.118/sql/log_event.h	2005-10-12 23:36:58 +02:00
@@ -451,12 +451,18 @@
 
 #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;
@@ -480,6 +486,12 @@
       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
 
@@ -589,10 +601,9 @@
   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, my_off_t hexdump_from= 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, my_off_t hexdump_from= 0);
+  void print_header(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
 #endif
 
   static void *operator new(size_t size)
@@ -752,11 +763,8 @@
                  uint32 q_len_arg);
 #endif /* HAVE_REPLICATION */
 #else
-  void print_query_header(FILE* file, bool short_form= 0,
-			  my_off_t hexdump_from= 0,
-			  LAST_EVENT_INFO* last_event_info= 0);
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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,
@@ -810,8 +818,7 @@
   void pack_info(Protocol* protocol);
   int exec_event(struct st_relay_log_info* rli);
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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);
@@ -899,10 +906,8 @@
 		 bool use_rli_only_for_errors);
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
-	     LAST_EVENT_INFO* last_event_info = 0);
-  void print(FILE* file, bool short_form, my_off_t hexdump_from,
-	     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
 
   /*
@@ -991,8 +996,7 @@
 #endif /* HAVE_REPLICATION */
 #else
   Start_log_event_v3() {}
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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,
@@ -1087,8 +1091,7 @@
   int exec_event(struct st_relay_log_info* rli);
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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);
@@ -1129,8 +1132,7 @@
   int exec_event(struct st_relay_log_info* rli);
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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);
@@ -1167,8 +1169,7 @@
   int exec_event(struct st_relay_log_info* rli);
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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);
@@ -1210,8 +1211,7 @@
   void pack_info(Protocol* protocol);
   int exec_event(struct st_relay_log_info* rli);
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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);
@@ -1237,8 +1237,7 @@
   {}
   int exec_event(struct st_relay_log_info* rli);
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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):
@@ -1277,8 +1276,7 @@
   int exec_event(struct st_relay_log_info* rli);
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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,
@@ -1331,10 +1329,8 @@
   int exec_event(struct st_relay_log_info* rli);
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
-	     LAST_EVENT_INFO* last_event_info= 0);
-  void print(FILE* file, bool short_form, my_off_t hexdump_from,
-	     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,
@@ -1401,8 +1397,7 @@
   virtual int get_create_or_append() const;
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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,
@@ -1437,10 +1432,8 @@
   int exec_event(struct st_relay_log_info* rli);
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
-	     LAST_EVENT_INFO* last_event_info= 0);
-  void print(FILE* file, bool short_form, my_off_t hexdump_from,
-	     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,
@@ -1475,8 +1468,7 @@
   int exec_event(struct st_relay_log_info* rli);
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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,
@@ -1561,11 +1553,10 @@
   int exec_event(struct st_relay_log_info* rli);
 #endif /* HAVE_REPLICATION */
 #else
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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, my_off_t hexdump_from,
-	     LAST_EVENT_INFO* last_event_info, const char *local_fname);
+  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,
                                const Format_description_log_event *description_event);
@@ -1594,8 +1585,7 @@
     Log_event(buf, description_event)
   {}
   ~Unknown_log_event() {}
-  void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 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; }
 };

--- 1.117/client/mysqlbinlog.cc	2005-10-11 21:46:29 +02:00
+++ 1.118/client/mysqlbinlog.cc	2005-10-12 23:36:57 +02:00
@@ -496,6 +496,7 @@
   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
@@ -524,14 +525,16 @@
     if (!short_form)
       fprintf(result_file, "# at %s\n",llstr(pos,ll_buff));
 
-    /* Set pos to 0 if hexdump is disabled */
-    if (!opt_hexdump) pos= 0;
+    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, pos, last_event_info);
+      ev->print(result_file, last_event_info);
       break;
     case CREATE_FILE_EVENT:
     {
@@ -551,7 +554,7 @@
 	filename and use LOCAL), prepared in the 'case EXEC_LOAD_EVENT' 
 	below.
       */
-      ce->print(result_file, short_form, pos, 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)
@@ -563,13 +566,13 @@
       break;
     }
     case APPEND_BLOCK_EVENT:
-      ev->print(result_file, short_form, pos, 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, pos, 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);
       /*
@@ -579,7 +582,7 @@
       */
       if (ce)
       {
-	ce->print(result_file, short_form, pos, last_event_info, TRUE);
+	ce->print(result_file, last_event_info, TRUE);
 	my_free((char*)ce->fname,MYF(MY_WME));
 	delete ce;
       }
@@ -591,7 +594,8 @@
     case FORMAT_DESCRIPTION_EVENT:
       delete description_event;
       description_event= (Format_description_log_event*) ev;
-      ev->print(result_file, short_form, pos, 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
@@ -601,7 +605,7 @@
       ev= 0;
       break;
     case BEGIN_LOAD_QUERY_EVENT:
-      ev->print(result_file, short_form, pos, 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:
@@ -618,7 +622,7 @@
 
       if (fname)
       {
-	exlq->print(result_file, short_form, pos, last_event_info, fname);
+	exlq->print(result_file, last_event_info, fname);
 	my_free(fname, MYF(MY_WME));
       }
       else
@@ -627,7 +631,7 @@
       break;
     }
     default:
-      ev->print(result_file, short_form, pos, last_event_info);
+      ev->print(result_file, last_event_info);
     }
   }
 
Thread
bk commit into 5.0 tree (lars:1.2036)Lars Thalmann12 Oct