List:Commits« Previous MessageNext Message »
From:Luis Soares Date:May 23 2011 11:37pm
Subject:bzr push into mysql-trunk branch (luis.soares:3100 to 3101) Bug#12558519
View as plain text  
 3101 Luis Soares	2011-05-24 [merge]
      BUG#12558519
      
      Automerged mysql-5.5 into mysql-trunk.

    modified:
      sql/log_event.cc
      sql/rpl_rli.cc
      sql/table.cc
 3100 Anitha Gopi	2011-05-23 [merge]
      Automerge from 5.5

    modified:
      mysql-test/collections/default.experimental
      mysql-test/suite/binlog/t/disabled.def
      mysql-test/suite/federated/disabled.def
      mysql-test/suite/rpl/t/disabled.def
      mysql-test/suite/sys_vars/t/disabled.def
      mysql-test/t/disabled.def
=== modified file 'sql/log_event.cc'
--- a/sql/log_event.cc	2011-05-16 11:10:48 +0000
+++ b/sql/log_event.cc	2011-05-23 23:34:47 +0000
@@ -8797,6 +8797,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-05-19 08:48:55 +0000
+++ b/sql/rpl_rli.cc	2011-05-23 23:34:47 +0000
@@ -984,6 +984,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 09:31:19 +0000
+++ b/sql/table.cc	2011-05-23 23:34:47 +0000
@@ -2225,7 +2225,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: useless for push emails).
Thread
bzr push into mysql-trunk branch (luis.soares:3100 to 3101) Bug#12558519Luis Soares24 May