mariadb/sql
Mats Kindahl 2c5f439d65 BUG#49618: Field length stored incorrectly in binary log
for InnoDB
            
The class Field_bit_as_char stores the metadata for the
field incorrecly because bytes_in_rec and bit_len are set
to (field_length + 7 ) / 8 and 0 respectively, while
Field_bit has the correct values field_length / 8 and
field_length % 8.
            
Solved the problem by re-computing the values for the
metadata based on the field_length instead of using the
bytes_in_rec and bit_len variables.
            
To handle compatibility with old server, a table map
flag was added to indicate that the bit computation is
exact. If the flag is clear, the slave computes the
number of bytes required to store the bit field and
compares that instead, effectively allowing replication
*without conversion* from any field length that require
the same number of bytes to store.


mysql-test/suite/rpl/t/rpl_typeconv_innodb.test:
  Adding test to check compatibility for bit field
  replication when using InnoDB
sql/field.cc:
  Extending compatible_field_size() with flags from
  table map to allow fields to check master info.
sql/field.h:
  Extending compatible_field_size() with flags from
  table map to allow fields to check master info.
sql/log.cc:
  Removing table map flags since they are not used
  outside table map class.
sql/log_event.cc:
  Removing flags parameter from table map constructor
  since it is not used and does not have to be exposed.
sql/log_event.h:
  Adding flag to denote that bit length for bit field type
  is exact and not potentially rounded to even bytes.
sql/rpl_utility.cc:
  Adding fields to table_def to store table map flags.
sql/rpl_utility.h:
  Removing obsolete comment and adding flags to store
  table map flags from master.
2010-03-17 15:28:49 +01:00
..
examples
share
.cvsignore
add_errmsg
authors.h
client_settings.h
CMakeLists.txt
contributors.h
custom_conf.h
debug_sync.cc
debug_sync.h
derror.cc
des_key_file.cc
discover.cc
event_data_objects.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
event_data_objects.h
event_db_repository.cc
event_db_repository.h
event_parse_data.cc
event_parse_data.h
event_queue.cc
event_queue.h
event_scheduler.cc
event_scheduler.h
events.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
events.h
field.cc BUG#49618: Field length stored incorrectly in binary log 2010-03-17 15:28:49 +01:00
field.h BUG#49618: Field length stored incorrectly in binary log 2010-03-17 15:28:49 +01:00
field_conv.cc
filesort.cc
frm_crypt.cc
gen_lex_hash.cc
gstream.cc
gstream.h
ha_ndbcluster.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
ha_ndbcluster.h
ha_ndbcluster_binlog.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
ha_ndbcluster_binlog.h
ha_ndbcluster_cond.cc
ha_ndbcluster_cond.h
ha_ndbcluster_tables.h
ha_partition.cc
ha_partition.h
handler.cc BUG#43171 - Assertion failed: thd->transaction.xid_state.xid.is_null() 2009-10-28 19:39:08 +04:00
handler.h
hash_filo.cc
hash_filo.h
hostname.cc
init.cc
item.cc Bug#47925: regression of range optimizer and date comparison in 5.1.39! 2009-11-02 13:24:07 +01:00
item.h Bug#47925: regression of range optimizer and date comparison in 5.1.39! 2009-11-02 13:24:07 +01:00
item_buff.cc
item_cmpfunc.cc Bug#48177 - SELECTs with NOT IN subqueries containing NULL 2009-11-03 13:48:59 +01:00
item_cmpfunc.h Bug#47925: regression of range optimizer and date comparison in 5.1.39! 2009-11-02 13:24:07 +01:00
item_create.cc
item_create.h
item_func.cc Bug#48370: Absolutely wrong calculations with GROUP BY and decimal fields when using IF 2009-11-02 09:21:39 -02:00
item_func.h Bug#48370: Absolutely wrong calculations with GROUP BY and decimal fields when using IF 2009-11-02 09:21:39 -02:00
item_geofunc.cc automerge 2009-10-24 09:57:31 +03:00
item_geofunc.h
item_row.cc
item_row.h
item_strfunc.cc
item_strfunc.h
item_subselect.cc A fix and a test case for 2009-11-03 20:45:52 +03:00
item_subselect.h
item_sum.cc Bug#48370: Absolutely wrong calculations with GROUP BY and decimal fields when using IF 2009-11-02 09:21:39 -02:00
item_sum.h
item_timefunc.cc
item_timefunc.h
item_xmlfunc.cc
item_xmlfunc.h
key.cc
lex.h
lex_symbol.h
lock.cc
log.cc BUG#49618: Field length stored incorrectly in binary log 2010-03-17 15:28:49 +01:00
log.h
log_event.cc BUG#49618: Field length stored incorrectly in binary log 2010-03-17 15:28:49 +01:00
log_event.h BUG#49618: Field length stored incorrectly in binary log 2010-03-17 15:28:49 +01:00
log_event_old.cc Bug#46640: output from mysqlbinlog command in 5.1 breaks replication 2009-10-23 11:13:42 +08:00
log_event_old.h
Makefile.am
message.h
message.mc
message.rc
mf_iocache.cc
MSG00001.bin
my_decimal.cc
my_decimal.h Bug#48370: Absolutely wrong calculations with GROUP BY and decimal fields when using IF 2009-11-02 09:21:39 -02:00
my_lock.c
mysql_priv.h
mysql_priv.h.pp
mysqld.cc merge 2009-11-03 01:52:57 +01:00
mysqld_suffix.h
net_serv.cc
nt_servc.cc
nt_servc.h
opt_range.cc Bug#47925: regression of range optimizer and date comparison in 5.1.39! 2009-11-02 13:24:07 +01:00
opt_range.h
opt_sum.cc
parse_file.cc
parse_file.h
partition_element.h
partition_info.cc
partition_info.h
password.c
procedure.cc
procedure.h
protocol.cc
protocol.h
records.cc A fix and a test case for 2009-11-03 20:45:52 +03:00
repl_failsafe.cc
repl_failsafe.h
rpl_constants.h
rpl_filter.cc
rpl_filter.h
rpl_injector.cc
rpl_injector.h
rpl_mi.cc
rpl_mi.h
rpl_record.cc
rpl_record.h
rpl_record_old.cc
rpl_record_old.h
rpl_reporting.cc
rpl_reporting.h
rpl_rli.cc
rpl_rli.h
rpl_tblmap.cc
rpl_tblmap.h
rpl_utility.cc BUG#49618: Field length stored incorrectly in binary log 2010-03-17 15:28:49 +01:00
rpl_utility.h BUG#49618: Field length stored incorrectly in binary log 2010-03-17 15:28:49 +01:00
scheduler.cc
scheduler.h
set_var.cc
set_var.h
slave.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
slave.h
sp.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sp.h
sp_cache.cc
sp_cache.h
sp_head.cc Bug #47412: Valgrind warnings / user can read uninitalized memory using 2009-10-26 11:55:57 +02:00
sp_head.h
sp_pcontext.cc
sp_pcontext.h
sp_rcontext.cc
sp_rcontext.h
spatial.cc
spatial.h
sql_acl.cc automerge 2009-10-27 15:02:58 +04:00
sql_acl.h
sql_analyse.cc
sql_analyse.h
sql_array.h
sql_base.cc Manual Merge 2009-11-03 18:20:08 +08:00
sql_binlog.cc
sql_bitmap.h
sql_builtin.cc.in
sql_cache.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_cache.h
sql_class.cc BUG#42829: manually merged approved bzr bundle from bug report. 2009-11-01 23:13:11 +00:00
sql_class.h manual merge of 28141 2009-10-20 11:00:07 -07:00
sql_client.cc
sql_connect.cc
sql_crypt.cc
sql_crypt.h
sql_cursor.cc
sql_cursor.h
sql_db.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_delete.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_derived.cc
sql_do.cc
sql_error.cc
sql_error.h
sql_handler.cc
sql_help.cc
sql_insert.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_lex.cc
sql_lex.h
sql_list.cc
sql_list.h
sql_load.cc BUG#48297: Schema name is ignored when LOAD DATA is written into 2009-10-27 15:15:53 +00:00
sql_locale.cc Bug#43207 wrong LC_TIME names for romanian locale 2009-10-19 13:41:52 +05:00
sql_manager.cc
sql_map.cc
sql_map.h
sql_olap.cc
sql_parse.cc BUG#43171 - Assertion failed: thd->transaction.xid_state.xid.is_null() 2009-10-28 19:39:08 +04:00
sql_partition.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_partition.h
sql_plugin.cc Bug#46586: When using the plugin interface the type "set" for options caused a crash. 2009-10-27 06:16:02 -07:00
sql_plugin.h
sql_prepare.cc Bug #47788: Crash in TABLE_LIST::hide_view_error on 2009-10-19 16:55:04 +03:00
sql_profile.cc
sql_profile.h
sql_rename.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_repl.cc
sql_repl.h
sql_select.cc A fix and a test case for 2009-11-03 20:45:52 +03:00
sql_select.h A fix and a test case for 2009-11-03 20:45:52 +03:00
sql_servers.cc
sql_servers.h
sql_show.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_show.h
sql_sort.h
sql_state.c
sql_string.cc
sql_string.h
sql_table.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_tablespace.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_test.cc
sql_trigger.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_trigger.h
sql_udf.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_udf.h
sql_union.cc
sql_update.cc automerge 2009-10-23 16:35:06 +02:00
sql_view.cc Bug #40877: multi statement execution fails in 5.1.30 2009-10-16 13:29:42 +03:00
sql_view.h
sql_yacc.yy merge 2009-10-30 11:56:32 +02:00
strfunc.cc
structs.h A fix and a test case for 2009-11-03 20:45:52 +03:00
table.cc
table.h
thr_malloc.cc
time.cc Bug#47925: regression of range optimizer and date comparison in 5.1.39! 2009-11-02 13:24:07 +01:00
tzfile.h
tztime.cc
tztime.h
udf_example.c
udf_example.def
uniques.cc
unireg.cc
unireg.h