List:Commits« Previous MessageNext Message »
From:Luis Soares Date:May 23 2011 11:33pm
Subject:bzr commit into mysql-5.5 branch (luis.soares:3394) Bug#12558519
View as plain text  
#At file:///home/lsoares/Workspace/bzr/work/bugfixing/12558519/mysql-5.5-push/ based on revid:anitha.gopi@stripped

 3394 Luis Soares	2011-05-24 [merge]
      BUG#12558519
      
      Automerged bzr bundle from bug report into latest mysql-5.5.

    modified:
      sql/log_event.cc
      sql/rpl_rli.cc
      sql/table.cc
=== modified file 'sql/log_event.cc'
--- a/sql/log_event.cc	2011-03-25 12:13:17 +0000
+++ b/sql/log_event.cc	2011-05-23 22:46:51 +0000
@@ -8441,6 +8441,7 @@ int Table_map_log_event::do_apply_event(
                 m_field_metadata, m_field_metadata_size,
                 m_null_bits, m_flags);
     table_list->m_tabledef_valid= TRUE;
+    table_list->m_conv_table= NULL;
     table_list->open_type= OT_BASE_ONLY;
 
     /*

=== modified file 'sql/rpl_rli.cc'
--- a/sql/rpl_rli.cc	2011-04-15 13:46:11 +0000
+++ b/sql/rpl_rli.cc	2011-05-23 23:33:55 +0000
@@ -1258,6 +1258,16 @@ void Relay_log_info::clear_tables_to_loc
       tables_to_lock->m_tabledef.table_def::~table_def();
       tables_to_lock->m_tabledef_valid= FALSE;
     }
+
+    /*
+      If blob fields were used during conversion of field values 
+      from the master table into the slave table, then we need to 
+      free the memory used temporarily to store their values before
+      copying into the slave's table.
+    */
+    if (tables_to_lock->m_conv_table)
+      free_blobs(tables_to_lock->m_conv_table);
+
     tables_to_lock=
       static_cast<RPL_TABLE_LIST*>(tables_to_lock->next_global);
     tables_to_lock_count--;

=== modified file 'sql/table.cc'
--- a/sql/table.cc	2011-05-21 08:59:32 +0000
+++ b/sql/table.cc	2011-05-23 23:33:55 +0000
@@ -2189,7 +2189,15 @@ void free_blobs(register TABLE *table)
   for (ptr= table->s->blob_field, end=ptr + table->s->blob_fields ;
        ptr != end ;
        ptr++)
-    ((Field_blob*) table->field[*ptr])->free();
+  {
+    /*
+      Reduced TABLE objects which are used by row-based replication for
+      type conversion might have some fields missing. Skip freeing BLOB
+      buffers for such missing fields.
+    */
+    if (table->field[*ptr])
+      ((Field_blob*) table->field[*ptr])->free();
+  }
 }
 
 

No bundle (reason: revision is a merge (you can force generation of a bundle with env var BZR_FORCE_BUNDLE=1)).
Thread
bzr commit into mysql-5.5 branch (luis.soares:3394) Bug#12558519Luis Soares24 May