mirror of
https://github.com/MariaDB/server.git
synced 2025-05-04 06:05:05 +03:00
5 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
62554f812e |
This is the final commit for Worklog tasks:
* A more dynamic binlog format which allows small changes (1064) * Log session variables in Query_log_event (1063) It contains a few bugfixes (which I made when running the testsuite). I carefully updated the results of the testsuite (i.e. I checked for every one, if the difference between .reject and .result could be explained). Apparently mysql-test-run --manager is broken in 4.1 and 5.0 currently, so I could neither run the few tests which require --manager, nor check that they pass nor modify their .result. But for builds, we don't run with --manager. Apart from --manager, the full testsuite passes, with Valgrind too (no errors). I'm going to push in the next minutes. Remains: update the manual. Note: by chance I saw that (in 4.1, in 5.0) rpl_get_lock fails when run alone; this is normal at it makes assumptions on thread ids. I will fix this one day in 4.1. mysql-test/r/rpl000015.result: result update mysql-test/r/rpl_change_master.result: result update mysql-test/r/rpl_error_ignored_table.result: result update mysql-test/r/rpl_flush_log_loop.result: result update mysql-test/r/rpl_flush_tables.result: result update mysql-test/r/rpl_loaddata.result: result update mysql-test/r/rpl_loaddata_rule_m.result: result update mysql-test/r/rpl_loaddata_rule_s.result: result update mysql-test/r/rpl_log.result: result update mysql-test/r/rpl_log_pos.result: result update mysql-test/r/rpl_max_relay_size.result: result update mysql-test/r/rpl_relayrotate.result: result update mysql-test/r/rpl_replicate_do.result: result update mysql-test/r/rpl_reset_slave.result: result update mysql-test/r/rpl_rotate_logs.result: result update mysql-test/r/rpl_session_var.result: result update mysql-test/r/rpl_temporary.result: result update mysql-test/r/rpl_trunc_binlog.result: result update mysql-test/r/rpl_until.result: result update mysql-test/r/rpl_user_variables.result: result update mysql-test/t/rpl000010-slave.opt: need to wait 2 events, because now we receive a Format_desc on top of the Rotate, when replication starts. mysql-test/t/rpl000015.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_change_master.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_empty_master_crash.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_error_ignored_table.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_flush_log_loop.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_loaddata.test: position update mysql-test/t/rpl_loaddata_rule_m.test: position update mysql-test/t/rpl_loaddata_rule_s.test: position update mysql-test/t/rpl_log.test: position update mysql-test/t/rpl_log_pos.test: position update mysql-test/t/rpl_max_relay_size.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_openssl.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_redirect.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_relayrotate-slave.opt: better options for this test mysql-test/t/rpl_relayrotate.test: using max() is better for debugging (it shows at which place the slave SQL thread resumed) mysql-test/t/rpl_replicate_do.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_reset_slave.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_rotate_logs.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_session_var.test: 100 because password() is longer than 10 chars mysql-test/t/rpl_trunc_binlog.test: relay log information is not repeatable in general (if a reconnection happens because --sleep=10 for example), so we hide these columns. mysql-test/t/rpl_until.test: position update mysql-test/t/rpl_user_variables.test: position update sql/log.cc: Ensure that the Format_desc propagated on next relay logs does not trigger undue actions (like incrementing some positions or clearing some files). sql/log_event.cc: * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of a transaction (then these were written by the slave itself to its relay log), it should not increment rli->group* variables, but only rli->event* ones. * When the slave SQL thread finds a Format_desc not to be ignored (not the same server id as the slave's), if it has log_pos==0 it must not trigger "unfinished transaction in master's binlog" (log_pos==0 is always a marker in the relay log to mean "this event was not at this place in the master's binlog": it's for fake Rotate events, and for Format_description events which the master had to send us for replication to start). * In the Query_log_event on disk, catalog is now terminated by '\0'. * thd->catalog must be set to 0 when some exec_event() terminate (otherwise double free). sql/slave.cc: * Fixes for a few bugs when ignoring events in the slave SQL thread: - do not decrement rli->slave_skip_counter if the event is an event related to the binlog or relay log itself (FORMAT_DESCRIPTION, ROTATE, STOP) because these events should never be skipped (or the slave will be confused). Usually the user wants to skip a query, not a Rotate... - when we (re)connect to the master, we must free description_event_for_queue (otherwise memory leak when we reconnect). * Changed a bit the code where we change description_event_for_queue, to make it look "safer". * Moved 'created=0' to log.cc where it is safer. * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of a transaction (then these were written by the slave itself to its relay log), it should not increment rli->group* variables, but only rli->event* ones. sql/sql_class.h: a warning comment sql/sql_repl.cc: A mistake: I had passed a char* instead of char** |
||
|
031b6b5fbb |
fix for BUG#1331: "Unexistent user variable is not replicated".
When an update query is to be written to the binlog, and it reads unset user variables (example: INSERT INTO t VALUEs(@a) where @a does not exist), we create the variable like if it had been set with SET before, and we loop (i.e. we redo the steps of logging, now that the variable exists). mysql-test/r/rpl_user_variables.result: result update. mysql-test/t/rpl_user_variables.test: test to see if unset user variables are written to the binlog sql/item_func.cc: When an update query is to be written to the binlog, and it reads unset user variables (example: INSERT INTO t VALUEs(@a) where @a does not exist), we create the variable like if it had been set with SET before, and we loop (i.e. we redo the steps of logging, now that the variable exists). |
||
|
4a07a2b1db |
Test's result update because std_data/words.dat has been lengthened by 500 bytes.
Increased some tests' robustness a bit : - Added RESET MASTER to all tests who do SHOW BINLOG EVENTS, to make them independent from previous tests. - Added save_master_pos to these tests to wait for the slave to start before purging its binary logs. mysql-test/r/rpl_log.result: Updated SHOW BINLOG EVENTS's positions as Monty lengthened std_data/words.dat by 500 bytes. mysql-test/r/rpl_temporary.result: Added RESET MASTER to make positions shown by SHOW BINLOG EVENTS independent of any previous test. mysql-test/r/rpl_user_variables.result: Added RESET MASTER to make positions shown by SHOW BINLOG EVENTS independent of any previous test. mysql-test/t/rpl_log.test: Added save_master_pos to wait for the slave to have started before purging its binary logs. Otherwise, we could purge before the slave finishes starting, and then the slave could log events implicitly provoked by previous tests. mysql-test/t/rpl_temporary.test: Added RESET MASTER to make positions shown by SHOW BINLOG EVENTS independent of any previous test. mysql-test/t/rpl_user_variables.test: Added RESET MASTER to make positions shown by SHOW BINLOG EVENTS independent of any previous test. BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted |
||
|
5a12dff30b |
Fixed problem when connecting to user without a password.
Fixed problem with LIKE and BINARY BitKeeper/etc/ignore: added scripts/fill_help_tables client/mysqltest.c: Better error messages libmysql/libmysql.c: Simple code cleanup Simplified connect() and change_user() by using sub function libmysqld/lib_sql.cc: Ensure that new fields in MYSQL_FIELD structure is used mysql-test/r/rpl_user_variables.result: Cleaned up test mysql-test/r/type_blob.result: New test mysql-test/t/rpl_user_variables.test: Cleaned up test mysql-test/t/type_blob.test: New test sql/item.cc: Fixed that Item_ref returns the right character set sql/item_cmpfunc.cc: Fixed problem with LIKE and BINARY sql/item_func.cc: Don't store end ASCII(0) for string user variables (Made some other code easier) sql/log_event.cc: Don't store end ASCII(0) for string user variables. Fixed comment style Some optimizations sql/log_event.h: Optimized type sql/mini_client.cc: Indentation changes sql/mysql_priv.h: Made is_update_query extern sql/protocol.cc: Simple code cleanup sql/sql_acl.cc: Code cleanup Fixed problem when connecting to user without a password. sql/sql_lex.h: Fixed problem with uninitialized memory sql/sql_parse.cc: Fixed problem with user without passwords Fixed some connect problems. sql/time.cc: removed reference to uninitialized memory |
||
|
6828a4c0a1 |
'Replicate user variables' task
include/my_sys.h: Addet reset_dinamic BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted |