mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
9ad300d50d
This patch adds functionality to row-based replication to ensure the slave's column sizes are >= to that of the master. It also includes some refactoring for the code from WL#3228. mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash Removed commented out portion of test referenced in bug report. This test supports the original request of the bug report. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash New result file for additional test. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash New result file for additional test. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash New result file for additional test. sql/field.cc: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash This patch refactors the additions made by this bug patch and those made by WL#3228. The effort consolidates the large switches on type() into functions within the field classes. sql/field.h: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash This patch refactors the additions made by this bug patch and those made by WL#3228. The effort consolidates the large switches on type() into functions within the field classes. sql/log_event.cc: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash This patch refactors the calc_field_size() method to use the new methods implemented in the field classes. It also corrects comments concerning how replication of field metadata works. sql/log_event.h: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash This patch refactors out the calc_field_size() method into the method save_field_metadata(). sql/rpl_utility.cc: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash This patch adds a method to check the size of the field on the master using the field metadata from WL#3228. Each column is checked to ensure the slave's column is >= to the master's column in size. sql/rpl_utility.h: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash This patch changes the table_def class so that it records the size of the metadata. This is a result of refactoring out the calc_field_size() method into the method save_field_metadata(). Prevents access via field_metadata(col) to unitialized memory when there is no metadata transmitted from the master. mysql-test/suite/rpl/r/rpl_row_colSize.result: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash New result file for additional test. mysql-test/suite/rpl/t/rpl_row_colSize.test: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash Added a test file to test each variable type that relies on field metadata from the master. mysql-test/include/test_fieldsize.inc: BUG#22086 : Extra Slave Col: Char(5) on slave and Char(10) on master cause mysqld crash Sub unit file to test each variable type that relies on field metadata from the master. |
||
---|---|---|
.. | ||
rpl_auto_increment.test | ||
rpl_commit_after_flush.test | ||
rpl_ddl.test | ||
rpl_deadlock.test | ||
rpl_delete_no_where.test | ||
rpl_EE_err.test | ||
rpl_extraMaster_Col.test | ||
rpl_extraSlave_Col.test | ||
rpl_failed_optimize.test | ||
rpl_flsh_tbls.test | ||
rpl_foreign_key.test | ||
rpl_insert_delayed.test | ||
rpl_insert_id.test | ||
rpl_insert_id_pk.test | ||
rpl_insert_ignore.test | ||
rpl_loaddata.test | ||
rpl_log.test | ||
rpl_max_relay_size.test | ||
rpl_multi_query.test | ||
rpl_multi_update.test | ||
rpl_multi_update2.test | ||
rpl_multi_update3.test | ||
rpl_ndb_2multi_eng.test | ||
rpl_ndb_apply_status.test | ||
rpl_partition.test | ||
rpl_relayrotate.test | ||
rpl_reset_slave.test | ||
rpl_row_001.test | ||
rpl_row_basic.test | ||
rpl_row_blob.test | ||
rpl_row_charset.test | ||
rpl_row_delayed_ins.test | ||
rpl_row_func003.test | ||
rpl_row_sp002.test | ||
rpl_row_sp003.test | ||
rpl_row_sp006.test | ||
rpl_row_sp007.test | ||
rpl_row_tabledefs.test | ||
rpl_row_UUID.test | ||
rpl_stm_000001.test | ||
rpl_stm_charset.test | ||
rpl_stm_EE_err2.test | ||
rpl_sv_relay_space.test | ||
rpl_trig004.test | ||
rpl_truncate.test | ||
rpl_truncate_helper.test |