3295 Marc Alff 2010-09-20 [merge]
Merge mysql-trunk-bugfixing --> mysql-next-mr-bugfixing
modified:
storage/perfschema/pfs_engine_table.cc
3294 Alfranio Correia 2010-09-20
BUG#55377 max_binlog_cache_size does not work as specified
Post-push fixes.
modified:
mysql-test/r/variables.result
mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result
mysql-test/suite/sys_vars/t/max_binlog_cache_size_basic.test
mysql-test/t/variables.test
=== modified file 'storage/perfschema/pfs_engine_table.cc'
--- a/storage/perfschema/pfs_engine_table.cc 2010-08-12 15:25:01 +0000
+++ b/storage/perfschema/pfs_engine_table.cc 2010-09-20 20:59:48 +0000
@@ -223,6 +223,8 @@ int PFS_engine_table::read_row(TABLE *ta
Field **fields)
{
my_bitmap_map *org_bitmap;
+ Field *f;
+ Field **fields_reset;
/*
Make sure the table structure is as expected before mapping
@@ -240,6 +242,16 @@ int PFS_engine_table::read_row(TABLE *ta
/* We internally write to Fields to support the read interface */
org_bitmap= dbug_tmp_use_all_columns(table, table->write_set);
+
+ /*
+ Some callers of the storage engine interface do not honor the
+ f->is_null() flag, and will attempt to read the data itself.
+ A known offender is mysql_checksum_table().
+ For robustness, reset every field.
+ */
+ for (fields_reset= fields; (f= *fields_reset) ; fields_reset++)
+ f->reset();
+
int result= read_row_values(table, buf, fields, read_all);
dbug_tmp_restore_column_map(table->write_set, org_bitmap);
Attachment: [text/bzr-bundle] bzr/marc.alff@oracle.com-20100920211014-rg2ej45rp6o0pzo1.bundle
| Thread |
|---|
| • bzr push into mysql-next-mr-bugfixing branch (marc.alff:3294 to 3295) | Marc Alff | 20 Sep |