List:Commits« Previous MessageNext Message »
From:Ingo Struewing Date:September 24 2007 3:07pm
Subject:bk commit into 5.1 tree (istruewing:1.2610) BUG#26379
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of istruewing. When istruewing 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@stripped, 2007-09-24 15:07:25+02:00, istruewing@stripped +1 -0
  Bug#26379 - Combination of FLUSH TABLE and REPAIR TABLE corrupts a MERGE table
  
  Not to be pushed. Internal TEST only.
  
  Stupid "test" lines follow:
  
  The problem was missing dump layout
  
  I added dump layout
  
  No test case. layout is used during debugging only.

  dbug/dbug.c@stripped, 2007-09-24 15:07:19+02:00, istruewing@stripped +37 -7
    Bug#26379 - Combination of FLUSH TABLE and REPAIR TABLE corrupts a MERGE table
    Added dump layout.

diff -Nrup a/dbug/dbug.c b/dbug/dbug.c
--- a/dbug/dbug.c	2007-08-02 06:49:24 +02:00
+++ b/dbug/dbug.c	2007-09-24 15:07:19 +02:00
@@ -1,5 +1,7 @@
 /******************************************************************************
  *                                                                            *
+
+ingo blabla
  *                                 N O T I C E                                *
  *                                                                            *
  *                    Copyright Abandoned, 1987, Fred Fish                    *
@@ -75,6 +77,7 @@
 #include <my_global.h>
 #include <m_string.h>
 #include <errno.h>
+#include <ctype.h> /* for isprint() */
 #if defined(MSDOS) || defined(__WIN__)
 #include <process.h>
 #endif
@@ -1130,8 +1133,7 @@ void _db_doprnt_(const char *format,...)
     DoPrefix(cs, cs->u_line);
     if (TRACING)
       Indent(cs, cs->level + 1);
-    else
-      (void) fprintf(cs->stack->out_file, "%s: ", cs->func);
+    (void) fprintf(cs->stack->out_file, "%s: ", cs->func);
     (void) fprintf(cs->stack->out_file, "%s: ", cs->u_keyword);
     (void) vfprintf(cs->stack->out_file, format, args);
     (void) fputc('\n',cs->stack->out_file);
@@ -1164,6 +1166,10 @@ void _db_dump_(uint _line_, const char *
                const unsigned char *memory, size_t length)
 {
   int pos;
+  uint tmp;
+  ulong lgt= length;
+  const unsigned char *ptr= memory;
+  const unsigned char *start= memory;
   char dbuff[90];
 
   CODE_STATE *cs=0;
@@ -1187,19 +1193,43 @@ void _db_dump_(uint _line_, const char *
             keyword, (ulong) memory, (long) length);
     (void) fputs(dbuff,cs->stack->out_file);
 
-    pos=0;
-    while (length-- > 0)
+    (void) fprintf(cs->stack->out_file, "%04x  ", (uint) (memory - start));
+    pos= 6;
+    while (length)
     {
-      uint tmp= *((unsigned char*) memory++);
-      if ((pos+=3) >= 80)
+      if (pos >= 54)
       {
+        (void) fputc(' ', cs->stack->out_file);
+        (void) fputc('"', cs->stack->out_file);
+        while (lgt && (pos < 70))
+        {
+          tmp= *(ptr++);
+          (void) fputc(isprint(tmp) ? tmp : '~', cs->stack->out_file);
+          pos++;
+          lgt--;
+        }
+        (void) fputc('"', cs->stack->out_file);
         fputc('\n',cs->stack->out_file);
-        pos=3;
+        (void) fprintf(cs->stack->out_file, "%04x  ", (uint) (memory - start));
+        pos=6;
       }
+      tmp= *(memory++);
       fputc(_dig_vec_upper[((tmp >> 4) & 15)], cs->stack->out_file);
       fputc(_dig_vec_upper[tmp & 15], cs->stack->out_file);
       fputc(' ',cs->stack->out_file);
+      pos+= 3;
+      length--;
+    }
+    while (pos++ < 55)
+        (void) fputc(' ', cs->stack->out_file);
+    (void) fputc('"', cs->stack->out_file);
+    while (lgt)
+    {
+      tmp= *(ptr++);
+      (void) fputc(isprint(tmp) ? tmp : '~', cs->stack->out_file);
+      lgt--;
     }
+    (void) fputc('"', cs->stack->out_file);
     (void) fputc('\n',cs->stack->out_file);
     dbug_flush(cs);
   }
Thread
bk commit into 5.1 tree (istruewing:1.2610) BUG#26379Ingo Struewing24 Sep