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#12558519 | Luis Soares | 24 May |