- 10 Mar, 2008 1 commit
-
-
unknown authored
safe. Fix: Move sql_mode: from the section of the test where safe variables are tested, to the section where unsafe variables are tested. mysql-test/suite/binlog/r/binlog_unsafe.result: Updated result file of modified test.
-
- 07 Mar, 2008 2 commits
-
-
unknown authored
Problem: in mixed and statement mode, a query that refers to a system variable will use the slave's value when replayed on slave. So if the value of a system variable is inserted into a table, the slave will differ from the master. Fix: mark statements that refer to a system variable as "unsafe", meaning they will be replicated by row in mixed mode and produce a warning in statement mode. There are some exceptions: some variables are actually replicated. Those should *not* be marked as unsafe. BUG#34732: mysqlbinlog does not print default values for auto_increment variables Problem: mysqlbinlog does not print default values for some variables, including auto_increment_increment and others. So if a client executing the output of mysqlbinlog has different default values, replication will be wrong. Fix: Always print default values for all variables that are replicated. I need to fix the two bugs at the same time, because the test cases would fail if I only fixed one of them. include/m_ctype.h: Added definition of ILLEGAL_CHARSET_INFO_NUMBER. We just need a symbol for a number that will never be used by any charset. ~0U should be safe since charset numbers are sequential, starting from 0. mysql-test/include/commit.inc: Upated test to avoid making statements unsafe. mysql-test/r/commit_1innodb.result: Updated test needs updated result file. mysql-test/r/mysqlbinlog.result: Updated result file. mysql-test/r/mysqlbinlog2.result: Updated result file. mysql-test/r/user_var-binlog.result: Updated result file. mysql-test/suite/binlog/r/binlog_base64_flag.result: Updated result file. mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result: Updated result file. mysql-test/suite/binlog/r/binlog_unsafe.result: Modified test file needs modified result file. mysql-test/suite/binlog/t/binlog_base64_flag.test: Need to filter out pseudo_thread_id from result since it is nondeterministic. mysql-test/suite/binlog/t/binlog_unsafe.test: Add tests that using variables is unsafe. The 'CREATE VIEW' tests didn't make sense, so I removed them. SHOW WARNINGS is not necessary either, because we get warnings for each statement in the result file. mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result: Updated result file. mysql-test/suite/rpl/r/rpl_skip_error.result: Updated result file. mysql-test/suite/rpl/t/rpl_skip_error.test: The test used @@server_id, which is not safe to replicate, so it would have given a warning. The way it used @@server_id was hackish (issue a query on master that removes rows only on master), so I replaced it by a more robust way to do the same thing (connect to slave and insert the rows only there). Also clarified what the test case does. mysql-test/t/mysqlbinlog2.test: Use --short-form instead of manually filtering out nondeterministic stuff from mysqlbinlog (because we added the nondeterministic @@pseudo_thread_id to the output). sql/item_func.cc: Added method of Item_func_get_system_var that indicates whether the given system variable will be written to the binlog or not. sql/item_func.h: Added method of Item_func_get_system_var that indicates whether the given system variable will be written to the binlog or not. sql/log_event.cc: - auto_increment_offset was not written to the binlog if auto_increment_increment=1 - mysqlbinlog did not output default values for some variables (BUG#34732). In st_print_event_info, we remember for each variable whether it has been printed or not. This is achieved in different ways for different variables: - For auto_increment_*, lc_time_names, charset_database_number, we set the default values in st_print_event_info to something illegal, so that it will look like they have changed the first time they are seen. - For charset, sql_mode, pseudo_thread_id, we add a flag to st_print_event_info which indicates whether the variable has been printed. - Since pseudo_thread_id is now printed more often, and its value is not guaranteed to be constant across different runs of the same test script, I replaced it by a constant if --short-form is used. - Moved st_print_event_info constructor from log_event.h to log_event.cc, since it now depends on ILLEGAL_CHARSET_NUMBER, which is defined in m_ctype.h, which is better to include from a .cc file than from a header file. sql/log_event.h: Added fields to st_print_event_info that indicate whether some of the variables have been written or not. Since the initialization of charset_database_number now depends on ILLEGAL_CHARSET_INFO_NUMBER, which is defined in a header file, which we'd better not include from this header file -- I moved the constructor from here to log_event.cc. sql/set_var.cc: System variables now have a flag binlog_status, which indicates if they are written to the binlog. If nothing is specified, all variables are marked as not written to the binlog (NOT_IN_BINLOG) when created. In this file, the variables that are written to the binlog are marked with SESSION_VARIABLE_IN_BINLOG. sql/set_var.h: Added flag binlog_status to class sys_var. Added a getter and a constructor parameter that sets it. Since I had to change sys_var_thd_enum constructor anyways, I simplified it to use default values of arguments instead of three copies of the constructor. sql/sql_yacc.yy: Mark statements that refer to a system variable as "unsafe", meaning they will be replicated by row in mixed mode. Added comment to explain strange piece of code just above. mysql-test/include/diff_tables.inc: New auxiliary test file that tests whether two tables (possibly one on master and one on slave) differ. mysql-test/suite/rpl/r/rpl_variables.result: New test case needs new result file. mysql-test/suite/rpl/r/rpl_variables_stm.result: New test file needs new result file. mysql-test/suite/rpl/t/rpl_variables.test: Test that INSERT of @@variables is replicated correctly (by switching to row-based mode). mysql-test/suite/rpl/t/rpl_variables_stm.test: Test that replication of @@variables which are replicated explicitly works as expected in statement mode (without giving warnings).
-
unknown authored
merging and post-make-test changes. mysql-test/suite/rpl/r/rpl_report.result: results changed mysql-test/suite/rpl/t/rpl_report.test: correcting test because of non-deterministic select's result sql/set_var.cc: compilation issue
-
- 06 Mar, 2008 3 commits
-
-
unknown authored
Merge mysql1000.(none):/home/andrei/MySQL/FIXES/5.1/bug22234-Extra_Slave_Col_Slave_should_stop_on_Error_Field into mysql1000.(none):/home/andrei/MySQL/MERGE/5.1 sql/log_event.cc: manual merge
-
unknown authored
into mysql1000.(none):/home/andrei/MySQL/MERGE/5.1 sql/set_var.cc: Auto merged
-
unknown authored
There was a failure in that show slave status displayed a wrong message when slave stopped at processing a row event inserting to a default-less column. The problem seem to have ceased after recent fixes in rbr code. However, the test was not updated to carry testing of the case commented-out. Uncommenting and editing the test. Notice, Bug#23907 is most probably a duplicate of this one. mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test: uncommenting the test that previously failed. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: results changed due to the correct expected error message of an added test is displayed. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: results changed to reflect the test changes mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: results changed to reflect the uncommented test sql/log_event.cc: correcting of a merge with bug#12713 to use the correct object holding the error code.
-
- 05 Mar, 2008 6 commits
-
-
unknown authored
mysql-test/suite/binlog/r/binlog_unsafe.result: Result change. mysql-test/suite/binlog/t/binlog_unsafe.test: Dropping view created in test.
-
unknown authored
mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result: Result file change.
-
unknown authored
There was no way to see if report-{host,port,user,password} were set up. Fixed with introducing new global variables. The variables are made read-only because of a possible need to change them most probably require the slave server restart. Todo: transform the startup options to be CHANGE master parameters - i.e to deprecate `report-' options, and to change the new vars to be updatable at time of CHANGE master executes with new values. sql/set_var.cc: Adding associations of the server init arguments with the new global read-only variables. mysql-test/suite/rpl/r/rpl_report.result: new results file mysql-test/suite/rpl/t/rpl_report-slave.opt: options initialize the new global variables. mysql-test/suite/rpl/t/rpl_report.test: The new test to check SHOW-ability and SELECT-ablity for the report global vars.
-
unknown authored
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
-
unknown authored
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl mysql-test/r/mysqldump.result: Auto merged mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result: Auto merged mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result: Auto merged mysql-test/t/mysqldump.test: Auto merged sql/log.cc: Auto merged sql/slave.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_delete.cc: Auto merged sql/handler.cc: Manual merge. sql/sql_update.cc: Manual merge.
-
unknown authored
into dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl
-
- 04 Mar, 2008 3 commits
-
-
unknown authored
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl mysql-test/r/mysqldump.result: Manual merge. mysql-test/t/mysqldump.test: Manual merge.
-
unknown authored
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
-
unknown authored
mysql-test/lib/mtr_report.pl: Filtering out benign warning that can be generated during server shutdown.
-
- 03 Mar, 2008 3 commits
- 02 Mar, 2008 2 commits
- 29 Feb, 2008 3 commits
-
-
unknown authored
mysql-test/suite/rpl/t/disabled.def: enable test mysql-test/suite/rpl/t/rpl_drop_temp.test: added sync slave with master mysql-test/suite/rpl/t/rpl_flushlog_loop.test: added sync slave with master
-
unknown authored
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
-
unknown authored
READ_ONLY token was accidentally placed into wrong place ('ident' rule). The proper place is in the 'keyword_sp' rule. The manual should be re-generated after this patch, because the manual depends on the 'keyword_sp' rule. sql/sql_yacc.yy: Move READ_ONLY token to the 'keyword_sp' rule.
-
- 28 Feb, 2008 8 commits
-
-
unknown authored
into buzz.(none):/home/davi/mysql-5.1-runtime mysql-test/r/ps.result: Auto merged mysql-test/t/limit.test: Auto merged mysql-test/t/ps.test: Auto merged sql/item.h: Auto merged sql/item_func.cc: Auto merged sql/sql_class.h: Auto merged sql/item.cc: Auto merged mysql-test/suite/rpl/r/rpl_user_variables.result: Manual merge mysql-test/suite/rpl/t/rpl_user_variables.test: Manual merge sql/sql_yacc.yy: Manual merge
-
unknown authored
must match the order which they were declared in the class definition. sql/item.cc: Fix initialization order, parameter was the last one declared.
-
unknown authored
mysql-test/suite/binlog/r/binlog_multi_engine.result: updated result mysql-test/suite/binlog/t/binlog_multi_engine.test: fix for bug#32663 mysql-test/suite/binlog/t/disabled.def: updated mysql-test/suite/rpl/r/rpl_invoked_features.result: updated result mysql-test/suite/rpl/t/disabled.def: updated mysql-test/suite/rpl/t/rpl_invoked_features.test: fix for bug#33045 mysql-test/suite/bugs/r/rpl_bug23533.result: result file mysql-test/suite/bugs/t/rpl_bug23533.test: test case for bug#23533
-
unknown authored
Rename client_last_error to last_error and client_last_errno to last_errno to not break connectors which use the internal net structure for error handling. include/mysql_com.h: Rename client_last_error to last_error, client_last_errno to last_errno. include/mysql_h.ic: Rename client_last_error to last_error, client_last_errno to last_errno. libmysql/libmysql.c: Rename client_last_error to last_error, client_last_errno to last_errno. libmysql/manager.c: Rename client_last_error to last_error, client_last_errno to last_errno. libmysqld/lib_sql.cc: Rename client_last_error to last_error, client_last_errno to last_errno. libmysqld/libmysqld.c: Rename client_last_error to last_error, client_last_errno to last_errno. server-tools/instance-manager/mysql_connection.cc: Rename client_last_error to last_error, client_last_errno to last_errno. sql/log_event.cc: Rename client_last_error to last_error, client_last_errno to last_errno. sql-common/client.c: Rename client_last_error to last_error, client_last_errno to last_errno. sql/log_event_old.cc: Rename client_last_error to last_error, client_last_errno to last_errno. sql/net_serv.cc: Rename client_last_error to last_error, client_last_errno to last_errno. sql/repl_failsafe.cc: Rename client_last_error to last_error, client_last_errno to last_errno.
-
unknown authored
The problem is that passing anything other than a integer to a limit clause in a prepared statement would fail. This limitation was introduced to avoid replication problems (e.g: replicating the statement with a string argument would cause a parse failure in the slave). The solution is to convert arguments to the limit clause to a integer value and use this converted value when persisting the query to the log. mysql-test/r/limit.result: Update test case result. mysql-test/r/ps.result: Add test case result for Bug#33851 mysql-test/r/rpl_user_variables.result: Test case result for replication of prepared statement with limit clause. mysql-test/t/limit.test: Test parameters to limit clause. mysql-test/t/ps.test: Add test case for Bug#33851 mysql-test/t/rpl_user_variables.test: Test replication of a parameter which value is converted. sql/item.cc: Convert value to integer if it's a parameter to a limit clause. sql/item.h: Flag signal that item is a parameter to a limit clause. sql/item_func.cc: Const member functions, object is not mutated. sql/sql_class.h: Const member functions, object is not mutated. sql/sql_yacc.yy: Flag that item is a parameter to a limit clause.
-
unknown authored
sporadically. mysql-test/r/sp_notembedded.result: Disable test case. mysql-test/t/sp_notembedded.test: Disable test case.
-
unknown authored
(show_check.test fails sporadically). Fix test case for Bug#12183 to make it stable. mysql-test/r/show_check.result: Fix result file. mysql-test/t/show_check.test: Make test case for Bug#12183 stable.
-
unknown authored
mysql-test/suite/rpl/r/rpl_flushlog_loop.result: updated result mysql-test/suite/rpl/r/rpl_row_view01.result: updated result mysql-test/suite/rpl/t/rpl_change_master.test: replace sleep mysql-test/suite/rpl/t/rpl_drop_temp.test: replace sleep mysql-test/suite/rpl/t/rpl_flushlog_loop.test: replace sleep mysql-test/suite/rpl/t/rpl_relayspace.test: replace waiting of state to wait_for_slave_param.inc mysql-test/suite/rpl/t/rpl_row_view01.test: replace sleep mysql-test/suite/rpl/t/rpl_trunc_temp.test: replace sleep mysql-test/include/wait_for_binlog_event.inc: New primitive: waiting an event in binlog on master
-
- 27 Feb, 2008 9 commits
-
-
unknown authored
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
-
unknown authored
to reach the desired value. mysql-test/r/flush_read_lock_kill.result: Update test case result. mysql-test/t/flush_read_lock_kill.test: Wait for the debug synchronization point to be reached.
-
unknown authored
into quad.:/mnt/raid/alik/MySQL/devel/5.1-rt-build tests/mysql_client_test.c: Manually merged.
-
unknown authored
-
unknown authored
-
unknown authored
Disable the test case. tests/mysql_client_test.c: Disable test case.
-
unknown authored
-
unknown authored
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
-
unknown authored
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test: The test unnecessarily refused to run in non-debug mode. It can safely run in non-debug mode and produces the same result, so I removed the restriction. mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result: Updated result file. It is a little unclear what the best thing to put in the binlog is, but the present results for this particular test are enough to replicate. Mats will figure out more as he fixes BUG#29020. After BUG#34768 has been fixed, these statements should be marked unsafe and not allowed in statement mode. mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result: Updated result file. It is a little unclear what the best thing to put in the binlog is, but the present results for this particular test are enough to replicate. Mats will figure out more as he fixes BUG#29020. After BUG#34768 has been fixed, these statements should be marked unsafe and not allowed in statement mode.
-