MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Mats Kindahl Date:March 8 2007 8:02am
Subject:bk commit into 5.1 tree (mats:1.2473) BUG#22583
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of mats. When mats 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-03-08 09:02:44+01:00, mats@romeo.(none) +1 -0
  BUG#22583:
    RBR between MyISAM and non-MyISAM tables containing a BIT
    field does not work
  Fix to prevent MyISAM from reading data from NULL BLOB.

  sql/log_event.cc@stripped, 2007-03-08 09:02:41+01:00, mats@romeo.(none) +8 -1
    Emptying the record entirely since it appears MyISAM reads blob column
    data even when they are NULL.

# 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:	mats
# Host:	romeo.(none)
# Root:	/home/bk/b22583-mysql-5.1-new-rpl

--- 1.274/sql/log_event.cc	2007-03-08 09:02:52 +01:00
+++ 1.275/sql/log_event.cc	2007-03-08 09:02:52 +01:00
@@ -5641,7 +5641,7 @@
 
   bitmap_clear_all(rw_set);
 
-  memcpy(table->record[0], table->s->default_values, table->s->null_bytes);
+  empty_record(table);
 
   Field **const begin_ptr = table->field;
   Field **field_ptr;
@@ -5657,6 +5657,10 @@
   {
     Field *const f= *field_ptr;
 
+    /*
+      No need to bother about columns that does not exist: they have
+      gotten default values when being emptied above.
+     */
     if (bitmap_is_set(cols, field_ptr -  begin_ptr))
     {
       if ((null_mask & 0xFF) == 0)
@@ -5680,7 +5684,10 @@
         /*
           We only unpack the field if it was non-null
         */
+        const char *const old_ptr= pack_ptr;
         pack_ptr= f->unpack(f->ptr, pack_ptr);
+        DBUG_PRINT("debug", ("Unpacking field '%s' from %d bytes",
+                             f->field_name, pack_ptr - old_ptr));
       }
 
       bitmap_set_bit(rw_set, field_ptr - begin_ptr);
Thread
bk commit into 5.1 tree (mats:1.2473) BUG#22583Mats Kindahl8 Mar