mirror of
https://github.com/MariaDB/server.git
synced 2025-05-20 13:13:59 +03:00
5 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
9c88f37bf5 |
Bug#22067 rpl_rbr_to_sbr and some other fail if NDB is default storage
A query SET @@GLOBAL.binlog_format = ... returns an error when NDB is the default storage. This fails some tests invoking the set binlog_format explicitly. because the var turns to be read-only. In the following are files and method to fix if needed. t/ ndb_binlog_basic2.test # here the failure is benign rpl_rbr_to_sbr.test # does not check any ndb features => . # => not_ndb_default is enough rpl_row_basic_8partition.test # set binlog_format can be replaced rpl_switch_stm_row_mixed.test # does not check any ndb features => . # => not_ndb_default is enough two more invoking invoke extra/rpl_truncate_helper.test rpl_truncate_2myisam # to be fixed with not_ndb_default rpl_truncate_3innodb # same as above . # because there is a dedicated to ndb . . # rpl_truncate_7ndb* suit. Adapting/testing a new implement --source include/safe_set_to_maybe_ro_var.inc to avoid abort due to the error using binlog_format as application. BitKeeper/etc/ignore: Added mysql-test/t/rpl_truncate_4ndb.test to the ignore list mysql-test/r/rpl_row_basic_8partition.result: new results mysql-test/t/rpl_rbr_to_sbr.test: # does not check any ndb features => not_ndb_default is enough mysql-test/t/rpl_row_basic_8partition.test: set binlog_format can be read-only because of e.g default storage ndb. adapting/testing a new implement --source include/safe_set_to_maybe_ro_var.inc to avoid abort due to the error. Note, that it this particular test we could simply remove SET binlog_format because there is have_binlog_format_row require, as the test is about RBR. Futhermore utilizing safe_set_to_maybe_ro_var is redundat as well as long as we keep non_ndb_default guard. The latter is introduced because of ndb partitioning per-key limitation #19259: rpl_ndb_dd_partitions fails on solaris. The page is updated to refer to this test's. mysql-test/t/rpl_switch_stm_row_mixed.test: excluding ndb option, no ndb features mysql-test/t/rpl_truncate_2myisam.test: ndb checks truncate separately mysql-test/t/rpl_truncate_3innodb.test: ndb checks truncate separately mysql-test/include/safe_set_to_maybe_ro_var.inc: pseudo-macro to make read-only global/session vars "settable" in sense that SET var= val won't produce any error nor aborts testing. |
||
|
930e542f44 |
Changes made according to HLD/LLD.
The following is an excerption from the WL. 1. Change so that MIXED is default format 1.1 to change the default for command line --binlog-format 1.2 to alter global_system_variables.binlog_format calculation basing on command line --binlog-format parameter and its default. 2. Change test suite so that more testing is done by MIXED format. 2.1 to check if there are test cases requiring --binlog-foramt=statement via `source include/have_binlog_format_statement.inc' and affected by altering the latter to be "mixed". 2.2 to check the content of such vulnerable cases to find if extending to the mixed does not modify results. In that case simply substitute source arguments as explained. 2.3 if a test in mixed mode deals with features triggering row-binlogging then if necessary we can switch explicitly to statement mode or create another test to run with non-recommended STATEMENT mode Particullarily, extracting INSERT DELAYED binlogging subtest for statement mode is performed, and the snippet is moved into a separate test file. Note that since now all three modes verify this use case through 3 different tests. No changes in item 3 of HLD appeared to be needed. mysql-test/extra/binlog_tests/binlog.test: Moving INSERT DELAYED verification section into separate file. The latter is sourced from two different files: the current one and a newly created for STATEMENT mode check. mysql-test/extra/rpl_tests/rpl_loaddata.test: require mixed_or_statement mysql-test/extra/rpl_tests/rpl_stm_000001.test: require mixed_or_statement mysql-test/extra/rpl_tests/rpl_stm_charset.test: require mixed_or_statement mysql-test/r/binlog_stm_binlog.result: new result to correspond to MIXED mode. mysql-test/r/rpl_rbr_to_sbr.result: result changed mysql-test/t/archive.test: require mixed_or_statement mysql-test/t/binlog_stm_binlog.test: require exclusive mixed format because of INSERT DELAYED. mysql-test/t/binlog_stm_blackhole.test: require mixed_or_statement mysql-test/t/binlog_stm_ctype_cp932.test: require mixed_or_statement mysql-test/t/binlog_stm_ctype_ucs.test: require mixed_or_statement mysql-test/t/binlog_stm_drop_tmp_tbl.test: require mixed_or_statement mysql-test/t/binlog_stm_innodb_stat.test: require mixed_or_statement mysql-test/t/binlog_stm_insert_select.test: require mixed_or_statement mysql-test/t/binlog_stm_mix_innodb_myisam.test: require mixed_or_statement mysql-test/t/create_select_tmp.test: require mixed_or_statement mysql-test/t/ctype_cp932_binlog_stm.test: require mixed_or_statement mysql-test/t/date_formats.test: MIXED case appended to the replace instruction mysql-test/t/mysqlbinlog.test: require mixed_or_statement mysql-test/t/mysqlbinlog2.test: require mixed_or_statement mysql-test/t/ndb_multi.test: require mixed_or_statement mysql-test/t/rpl000013.test: require mixed_or_statement mysql-test/t/rpl_heap.test: require mixed_or_statement mysql-test/t/rpl_loaddata_s.test: require mixed_or_statement mysql-test/t/rpl_mixed_ddl_dml.test: require mixed_or_statement mysql-test/t/rpl_rbr_to_sbr.test: Rather meaningless line is discarded. The test does not loose anything without it and without considering the WL. mysql-test/t/rpl_rewrt_db.test: require mixed_or_statement mysql-test/t/rpl_rotate_logs.test: require mixed_or_statement mysql-test/t/rpl_stm_EE_err2.test: require mixed_or_statement mysql-test/t/rpl_stm_flsh_tbls.test: require mixed_or_statement mysql-test/t/rpl_stm_log.test: require mixed_or_statement mysql-test/t/rpl_stm_max_relay_size.test: require mixed_or_statement mysql-test/t/rpl_stm_multi_query.test: require mixed_or_statement mysql-test/t/rpl_stm_mystery22.test: require mixed_or_statement mysql-test/t/rpl_stm_no_op.test: require mixed_or_statement mysql-test/t/rpl_stm_reset_slave.test: require mixed_or_statement mysql-test/t/rpl_stm_until.test: require mixed_or_statement mysql-test/t/rpl_temp_table.test: require mixed_or_statement mysql-test/t/rpl_trigger.test: require mixed_or_statement mysql-test/t/rpl_trunc_temp.test: require mixed_or_statement mysql-test/t/user_var-binlog.test: require mixed_or_statement sql/mysqld.cc: Implementation of making BINLOG_FORMAT_MIXED to be the default of global_system_variables.binlog_format. Not in the case of embedded. mysql-test/extra/binlog_tests/binlog_insert_delayed.test: Snippend sourced from two tests to verify INSERT DELAYED in all three binlog formats. mysql-test/include/have_binlog_format_mixed.inc: Part of exclusive MIXED format requirement mysql-test/include/have_binlog_format_mixed_or_statement.inc: requirement to have mixed or statement. Most of the tests with STATEMENT format indeed are tolerant to MIXED format to yield the same result files. There are few exception because of features triggering RBR events when MIXED format. mysql-test/r/binlog_statement_insert_delayed.result: BitKeeper file /home/elkin/MySQL/TEAM/FIXES/5.1/wl3368_mixed_default/mysql-test/r/binlog_statement_insert_delayed.result mysql-test/r/have_binlog_format_mixed.require: Exclusive MIXED format mysql-test/t/binlog_statement_insert_delayed.test: BitKeeper file /home/elkin/MySQL/TEAM/FIXES/5.1/wl3368_mixed_default/mysql-test/t/binlog_statement_insert_delayed.test |
||
|
36815fa1ad |
Bug#16837 (Missing #ifdef cause compile problem --without-row-based-replication):
Added #ifdef's to make code work even when the system is built without row-based replication. mysql-test/r/create.result: Result change mysql-test/r/innodb_mysql.result: Result change mysql-test/t/create.test: Moving InnoDB specific test to innodb_mysql.test mysql-test/t/innodb_mysql.test: Moving InnoDB-specific test from create.test mysql-test/t/rpl_rbr_to_sbr.test: Test only sensible if we have row-based replication compiled in. mysql-test/t/rpl_row_basic_8partition.test: Test only sensible if we have row-based replication compiled in. sql/log.cc: Adding HAVE_ROW_BASED_REPLICATION guards on code to work without row-based replication. sql/set_var.cc: Adding HAVE_ROW_BASED_REPLICATION guards on code to work without row-based replication. sql/set_var.h: Adding HAVE_ROW_BASED_REPLICATION guards on code to work without row-based replication. sql/share/errmsg.txt: Adding HAVE_ROW_BASED_REPLICATION guards on code to work without row-based replication. sql/sql_base.cc: Adding HAVE_ROW_BASED_REPLICATION guards on code to work without row-based replication. sql/sql_class.cc: Adding HAVE_ROW_BASED_REPLICATION guards on code to work without row-based replication. sql/sql_class.h: Adding HAVE_ROW_BASED_REPLICATION guards on code to work without row-based replication. sql/sql_insert.cc: Adding HAVE_ROW_BASED_REPLICATION guards on code to work without row-based replication. sql/sql_parse.cc: Adding HAVE_ROW_BASED_REPLICATION guards on code to work without row-based replication. sql/sql_table.cc: Not running hooks |
||
|
a25060978f |
Re-enabling rpl_rbr_to_sbr.test as BUG#18108 was fixed
(nothing to document, this bug was not released). mysql-test/t/disabled.def: bug is fixed, enabling test case mysql-test/t/rpl_rbr_to_sbr.test: making test portable mysql-test/r/rpl_rbr_to_sbr.result: result update |
||
|
1b4516d1f4 |
WL#3171: Dynamic logging format
Removed error on seeing table map event when slave is in SBR mode and switching temporarily to RBR mode to replicate the rows. sql/log_event.cc: Settig binlog format to "row" on seeing a table map event. Resetting binlog format on error and seeing STMT_END_F. sql/sql_class.h: Adding method to unconditially set binlog format to "row". mysql-test/r/rpl_rbr_to_sbr.result: New BitKeeper file ``mysql-test/r/rpl_rbr_to_sbr.result'' mysql-test/t/rpl_rbr_to_sbr.test: New BitKeeper file ``mysql-test/t/rpl_rbr_to_sbr.test'' |