- 03 Dec, 2004 2 commits
-
-
unknown authored
(exactly, for the bug in 4.1 reported in this bug report). We just make Load_log_event work like Query_log_event for temp tables. sql/log_event.cc: For LOAD DATA INFILE to be preceded by SET PSEUDO_THREAD_ID if needed, in the mysqlbinlog output, we need to use the LOG_EVENT_THREAD_SPECIFIC_F flag in Load_log_event exactly like we already do in Query_log_event.
-
unknown authored
CREATE DATABASE statement used the current database instead of the database created when checking conditions for replication. CREATE/DROP/ALTER DATABASE statements are now replicated based on the manipulated database. mysql-test/t/rpl_until.test: Longer sleep to allow slave to stop. mysql-test/t/rpl_charset.test: Position change in binary file. mysql-test/r/drop_temp_table.result: Position change in binlog. mysql-test/r/rpl_loaddata_rule_m.result: Position change in binlog. mysql-test/r/rpl_charset.result: Position change in binlog. sql/log_event.h: Added new flag and parameter to suppress generation of USE statements. sql/log_event.cc: Added parameter and code to suppress generation of USE statements. sql/sql_db.cc: Suppress generation of USE before CREATE/ALTER/DROP DATABASE statements. sql/log.cc: Query_log_event have new extra parameter. sql/sql_table.cc: Query_log_event have new extra parameter. sql/sql_base.cc: Query_log_event have new extra parameter. sql/sql_update.cc: Query_log_event have new extra parameter. sql/sql_insert.cc: Query_log_event have new extra parameter. sql/sql_rename.cc: Query_log_event have new extra parameter. sql/sql_delete.cc: Query_log_event have new extra parameter. sql/sql_acl.cc: Query_log_event have new extra parameter. sql/handler.cc: Query_log_event have new extra parameter. sql/item_func.cc: Query_log_event have new extra parameter. sql/sql_parse.cc: Query_log_event have new extra parameter.
-
- 18 Nov, 2004 2 commits
-
-
unknown authored
post-conflict-merge fix (duplicate comment) sql/log_event.cc: post-conflict-merge fix (duplicate comment)
-
unknown authored
When mysqlbinlog prints LOAD DATA INFILE, let it print the thread id. Some customer would have benefited much from this in his recovery. All this change does is adding one commented (#) line before the LOAD DATA command, so it is quite innocuous.
-
- 15 Nov, 2004 1 commit
-
-
unknown authored
Replication using replicate-rewrite-db did not work for LOAD DATA INFILE. Now is does. There was one place in the code that used current database instead of the rewrite database. mysql-test/r/rpl_rewrite_db.result: New tests mysql-test/t/rpl_rewrite_db-slave.opt: New tests mysql-test/t/rpl_rewrite_db.test: New tests sql/log_event.cc: Added db to set_fields function so that current db is used. sql/log_event.h: Added db to set_fields function so that current db is used.
-
- 07 Nov, 2004 1 commit
-
-
unknown authored
Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root. This gives us the following benefits: - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases) - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT) - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root client/mysqltest.c: Remove some not needed defines (Things like this should be done in config-win.h) include/config-win.h: Added popen() and pclose() compatibility macros mysql-test/t/rpl_failed_optimize-master.opt: Portability fix sql/ha_berkeley.cc: New thd->memroot handling sql/item_cmpfunc.cc: Simpler arena swapping code sql/item_func.cc: Simpler arena swapping code sql/item_subselect.cc: Simpler arena swapping code New thd->mem_root handling sql/item_sum.cc: New thd->mem_root handling sql/item_timefunc.cc: Fixed not-initalized usage errors found by valgrind sql/log_event.cc: New thd->mem_root handling sql/mysql_priv.h: New thd->mem_root handling sql/mysqld.cc: New thd->mem_root handling sql/opt_range.cc: New thd->mem_root handling sql/repl_failsafe.cc: New thd->mem_root handling sql/set_var.cc: New thd->mem_root handling sql/sql_acl.cc: New thd->mem_root handling sql/sql_base.cc: Simpler arena swapping code New thd->mem_root handling sql/sql_class.cc: New thd->mem_root handling sql/sql_class.h: Simpler arena swapping code New thd->mem_root handling sql/sql_db.cc: New thd->mem_root handling sql/sql_error.cc: New thd->mem_root handling sql/sql_help.cc: New thd->mem_root handling sql/sql_insert.cc: New thd->mem_root handling sql/sql_parse.cc: New thd->mem_root handling Added some extra checking of return value of new sql/sql_prepare.cc: New thd->mem_root handling sql/sql_select.cc: New thd->mem_root handling sql/sql_select.h: New thd->mem_root handling sql/sql_union.cc: Simpler arena swapping code sql/sql_yacc.yy: New thd->mem_root handling sql/table.cc: New thd->mem_root handling sql/thr_malloc.cc: New thd->mem_root handling tests/client_test.c: Added drop table to some tests Changed some table names to 't1'
-
- 19 Oct, 2004 1 commit
-
-
unknown authored
as we already have db_len in Log_event. Only if rewrite_db() changed the db we need a strlen (so we now do the strlen() in rewrite_db). Plus a test (we had none for --replicate-rewrite-db :( ). sql/log_event.cc: The goal is to get of rid of one strlen() per replication event in slave: we don't need to compute strlen(thd->db) as we already have db_len in the event; only case where we need to do a strlen() is if rewrite_db() changed the db. Note that db_len is always a meaningful value. It's 0 if event's db is 0. sql/slave.cc: rewrite_db now returns the len of the returned db. print_slave_db_safe() needn't call rewrite_db() as rewrite_db() is already called by caller. sql/slave.h: declaration updates for slave.cc
-
- 23 Sep, 2004 1 commit
-
-
unknown authored
we do not increment rli->group_master_log_pos if we are just after a SET ONE_SHOT (it's not a standalone event) mysql-test/r/rpl_charset.result: testing interruption of slave SQL thread between SET CHARACTER_SET_SERVER... and the companion INSERT. mysql-test/t/rpl_charset.test: testing interruption of slave SQL thread between SET CHARACTER_SET_SERVER... and the companion INSERT. sql/log_event.cc: we do not increment rli->group_master_log_pos if we are just after a SET ONE_SHOT, because SET ONE_SHOT should not be separated from its following updating query.
-
- 07 Sep, 2004 1 commit
-
-
unknown authored
This does not fix any known bug, but is still a good idea. sql/log_event.cc: when we update thd->db in replication, it's safer to update thd->db_length too. sql/slave.cc: when we update thd->db in replication, it's safer to update thd->db_length too. sql/sql_db.cc: comment
-
- 29 Aug, 2004 1 commit
-
-
unknown authored
We must not reset the charset in slave after each statement, otherwise the SET CHARACTER SET is cancelled immediately. Instead, we write a SET CHARACTER SET DEFAULT to the master's binlog when needed (like we already do for SET FOREIGN_KEY_CHECKS); such writing is not necessary in 4.1 (in 4.1 the bug does not exist, as the SET ONE_SHOT syntax is used). I have written a test and it works, but I'm not pushing the test as it requires building with all charsets. I have noticed differences between what is inserted in the master's table in 4.0 and 4.1, and alerted Bar. sql/log.cc: When SET CHARACTER SET has been used, we must reset the charset after the writing the statement, in the binlog. In 4.1, this resetting is already achieved by the SET ONE_SHOT syntax. sql/log_event.cc: In slave, we must not simply reset the charset after each statement: if we do this, the charset gets immediately after executing the SET CHARACTER SET! (BUG#4500).
-
- 21 Jul, 2004 1 commit
-
-
unknown authored
-
- 20 Jul, 2004 1 commit
-
-
unknown authored
client code and replication slave code, as far as LOAD DATA INFILE and other queries' execution is concerned. Duplication of code leads to replication bugs, because the replication duplicate lags much behind. Fix for 2 Valgrind errors on slave replicating LOAD DATA INFILE - one serious (causing a random test failure in rpl_loaddata in 5.0) - one not serious (theoretically a bug but not dangerous): uninited thd->row_count sql/log_event.cc: Fix for 2 Valgrind errors: - one serious (causing a random test failure in rpl_loaddata in 5.0): uninited lex in replic of LOAD DATA INFILE on slave - one not serious (theoretically a bug but not dangerous): uninited thd->row_count in replication of LOAD DATA INFILE on slave. Sanja is likely to rework the fix to the 1st problem tomorrow.
-
- 08 Jul, 2004 1 commit
-
-
unknown authored
New handler::index_flags() definition to make it easy to check the full used key and a specific key part. Added key part to optimize_range() to fix problems when using fields in key parts. sql/examples/ha_archive.h: New handler::index_flags() definition sql/examples/ha_example.h: New handler::index_flags() definition sql/field.cc: New optimize_range() definition sql/field.h: New optimize_range() definition sql/ha_berkeley.cc: New handler::index_flags() definition sql/ha_berkeley.h: New handler::index_flags() definition sql/ha_heap.h: New handler::index_flags() definition sql/ha_innodb.h: New handler::index_flags() definition sql/ha_isam.h: New handler::index_flags() definition sql/ha_isammrg.h: New handler::index_flags() definition sql/ha_myisam.h: New handler::index_flags() definition sql/ha_myisammrg.h: New handler::index_flags() definition sql/ha_ndbcluster.cc: New handler::index_flags() definition sql/ha_ndbcluster.h: New handler::index_flags() definition sql/handler.h: ...
-
- 30 Jun, 2004 1 commit
-
-
unknown authored
processlist on slave": we now report in SHOW PROCESSLIST that we are writing to the temp files or loading the table. When we are writing to the tmp file: | 3 | system user | | | Connect | 6 | Making temp file /tmp/SQL_LOAD-2-1-2.data | and when we are actually loading the .data temp file into the table: | 3 | system user | | test | Connect | 2 | | LOAD DATA INFILE '/tmp/SQL_LOAD-2-1-2.data' INTO TABLE `t` <...> | sql/log_event.cc: Replication of LOAD DATA INFILE: we now report in SHOW PROCESSLIST that we are creating the temp files or loading the table. Plus removing a line which had a comment "should not be needed" and a guarding assertion which we have never heard fail (and logic says it should not fail).
-
- 08 Jun, 2004 1 commit
-
-
unknown authored
In mysqlbinlog, there was a problem with how we escaped the content of a string user variable. To be perfect, we should have escaped with character_set_client. But this charset is unknown to mysqlbinlog. So the simplest is to print the string in hex. This is unreadable but 100% safe with any charset (checked with Bar), no more need to bother with character_set_client. mysql-test/r/rpl_charset.result: hex strings mysql-test/r/rpl_user_variables.result: hex strings mysql-test/r/user_var.result: hex strings sql/log_event.cc: In mysqlbinlog, there was a problem with how we escaped the content of a string user variable. To be perfect, we should have escaped with character_set_client. But this charset is unknown to mysqlbinlog. So the simplest is to print the string in hex. This is unreadable but 100% safe with any charset (checked with Bar), no more need to bother with character_set_client.
-
- 03 Jun, 2004 1 commit
-
-
unknown authored
by binlogging some SET ONE_SHOT CHARACTER_SETetc, which will be enough until we have it more compact and more complete in 5.0. With the present patch, replication will work ok between 4.1.3 master and slaves, as long as: - master and slave have the same GLOBAL.COLLATION_SERVER - COLLATION_DATABASE and CHARACTER_SET_DATABASE are not used - application does not use the fact that table is created with charset of the USEd db (BUG#2326). all of which are not too hard to fulfill. ONE_SHOT is reserved for internal use of mysqlbinlog|mysql and works only for charsets, so we give error if used for non-charset vars. Fix for BUG#3875 "mysqlbinlog produces wrong ouput if query uses variables containing quotes" and BUG#3943 "Queries with non-ASCII literals are not replicated properly after SET NAMES". Detecting that master and slave have different global charsets or server ids. mysql-test/r/rpl_server_id1.result: it's normal to not run as I have added a test to compare server ids of master and slave at startup and stop if equal (unless --replicate-same-server-id) mysql-test/r/rpl_user_variables.result: result update (as we now print charset of user var). mysql-test/r/user_var.result: result update mysql-test/t/rpl_server_id1.test: no need to select as slave is not running mysql-test/t/user_var.test: testing if the content of user vars is escaped when mysqlbinlog prints them, and if the name is backquoted. sql/lex.h: new keyword ONE_SHOT sql/log.cc: when writing to the binlog, before writing the actual statement, write some SET ONE_SHOT CHARACTER_SET_CLIENT etc for the slave to know the charset variables (which are important as they affect the inserted data). sql/log_event.cc: print charset and collation of user var in mysqlbinlog and SHOW BINLOG EVENTS. escape the content of the var. Backquote its name. Will ask Bar to check that using my_charset_bin for escaping is ok. sql/set_var.cc: understand SET CHARACTER_SET_CLIENT=10 (don't require a string, accept a number). Refuse changing of GLOBAL CHARACTER_SET_SERVER/COLLATION_SERVER if binlog or slave, as it will make the master or slave make wrong assumptions. A function to catch SET ONE_SHOT on non-charset variables (which is forbidden) sql/set_var.h: no_support_one_shot to know if the var supports ONE_SHOT (only charset vars do, soon timezones). Accept int arg in SET CHARACTER_SET_etc sql/slave.cc: when I/O slave thread starts, verify that master's and slave charsets match. And by the way verify that server ids are different. Don't fail if UNIX_TIMESTAMP() can't be done on master (very old master), that's not fatal. sql/sql_class.cc: one_shot sql/sql_class.h: one_shot sql/sql_lex.h: one_shot sql/sql_parse.cc: when SET ONE_SHOT is used, verify that it's only used for charset/collation vars; otherwise refuse. sql/sql_yacc.yy: ONE_SHOT keyword in SET
-
- 26 May, 2004 1 commit
-
-
unknown authored
VC++Files/innobase/innobase.dsp: non-existent file removed client/mysql.cc: local opt_max_allowed_packet and opt_net_buffer_length introduced client/mysqldump.c: local opt_max_allowed_packet and opt_net_buffer_length introduced include/mysql.h: mysql_get_parameters() interface added #define max_allowed_packet added include/mysql_com.h: these should not be exported libmysql/libmysql.c: mysql_get_parameters implementations libmysql/libmysql.def: interface changed libmysql_r/Makefile.am: MYSQL_CLIENT define added libmysqld/lib_sql.cc: line moved to be above the '#include "mysql.cc"' libmysqld/libmysqld.c: mysql_get_parameters implementation (embedded) libmysqld/libmysqld.def: interface changed sql/log_event.cc: should be like that in this case tools/mysqlmanager.c: compiler warns on this line
-
- 17 May, 2004 1 commit
-
-
unknown authored
mysql-test/r/type_float.result: Fix result after merge sql/log_event.cc: Fixed typo
-
- 14 May, 2004 1 commit
-
-
unknown authored
Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query sql/sql_class.h: Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query sql/ha_innodb.cc: Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query sql/log_event.cc: Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query sql/slave.cc: Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query sql/sql_db.cc: Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query sql/sql_parse.cc: Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query sql/sql_show.cc: Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
-
- 04 May, 2004 1 commit
-
-
unknown authored
in hard-coded replication messages, always put small-length info (error codes, explanation of the error) at the beginning, so that it is not cut by truncation if the query is very long (which happens if the query goes first). sql/log_event.cc: in hard-coded replication messages, always put small-length info (error codes, explanation of the error) at the beginning, so that it is not cut by truncation if the query is very long (which happens if the query goes first).
-
- 07 Apr, 2004 2 commits
-
-
unknown authored
if you are printing LOAD DATA INFILE and its USE as comments, don't update 'last_db' (because you have not actually changed the db in the server). sql/log_event.cc: if you are printing LOAD DATA INFILE and its USE as comments, don't update 'last_db' (because you have not actually changed the db in the server).
-
unknown authored
sql/log_event.cc: non_cachable_table flag changed to cacheable_table sql/repl_failsafe.cc: non_cachable_table flag changed to cacheable_table sql/slave.cc: non_cachable_table flag changed to cacheable_table sql/sql_acl.cc: non_cachable_table flag changed to cacheable_table sql/sql_base.cc: non_cachable_table flag changed to cacheable_table sql/sql_cache.cc: non_cachable_table flag changed to cacheable_table sql/sql_help.cc: non_cachable_table flag changed to cacheable_table sql/sql_insert.cc: non_cachable_table flag changed to cacheable_table sql/sql_parse.cc: non_cachable_table flag changed to cacheable_table sql/sql_prepare.cc: renamed DEBUG tag sql/table.h: non_cachable_table flag changed to cacheable_table
-
- 06 Apr, 2004 1 commit
-
-
unknown authored
too big by 6 bytes. So I add code to substract 6 bytes if the master is 3.23. This is not perfect (because it won't work if the slave I/O thread has not noticed yet that the master is 3.23), but as long as the slave I/O thread starts Exec_master_log_pos will be ok. It must be merged to 4.1 but not to 5.0 (or it can be, because of #if MYSQL_VERSION_ID), because 5.0 already works if the master is 3.23 (and in a more natural way: in 5.0 we store the end_log_pos in the binlog and relay log). I had to move functions from slave.h to slave.cc to satisfy gcc. sql/log_event.cc: make the event's length 6 bytes shorter if the master is 3.23 sql/slave.cc: Moving several st_relay_log_info methods out of the declaration of the struct, because gcc complained that 'mi' was not declared. Substracting 6 bytes from the event's length in inc_pos() if the master is 3.23. sql/slave.h: moving several methods out of the declaration of st_relay_log_info. Removing 'inline', let's have the compiler decide.
-
- 05 Apr, 2004 1 commit
-
-
unknown authored
Fixed bugs in group_concat with ORDER BY and DISTINCT (Bugs #2695, #3381 and #3319) Fixed crash when doing rollback in slave and the io thread catched up with the sql thread Set locked_in_memory properly include/mysql_com.h: Fixed compiler warning libmysqld/emb_qcache.cc: Removed not used variable libmysqld/lib_sql.cc: Removed not used variable myisam/mi_locking.c: Added comment myisam/mi_rnext.c: Fixed bug in concurrent insert myisam/mi_rprev.c: Simple optimization mysql-test/r/func_gconcat.result: New tests mysql-test/t/func_gconcat.test: New tests mysql-test/t/func_group.test: Cleanup sql-common/client.c: Removed compiler warning sql/derror.cc: Better comments sql/field.cc: Removed not used function/variable sql/field.h: Removed not needed variable sql/ha_innodb.cc: Removed not used function sql/item.cc: Fixed compiler warning sql/item_cmpfunc.cc: Fixed compiler warning sql/item_func.cc: Fixed compiler warning sql/item_geofunc.cc: Fixed ...
-
- 04 Apr, 2004 1 commit
-
-
unknown authored
fixed error code in union test mysql-test/t/union.test: right code worr 4.1 error sql/log_event.cc: assign non-cachable for Item status for all stack tables for safety sql/repl_failsafe.cc: assign non-cachable for Item status for all stack tables for safety sql/slave.cc: assign non-cachable for Item status for all stack tables for safety sql/sql_acl.cc: assign non-cachable for Item status for all stack tables for safety sql/sql_base.cc: assign non-cachable for Item status for all stack tables for safety non-cachable status processing sql/sql_cache.cc: assign non-cachable for Item status for all stack tables for safety sql/sql_class.cc: removed ald way to prevent using stack tables for caching Items in PS sql/sql_class.h: removed old way to prevent using stack tables for caching Items in PS sql/sql_help.cc: assign non-cachable for Item status for all stack tables for safety sql/sql_insert.cc: assign non-cachable for Item status for all stack tables for safety removed old way to prevent using stack tables for caching Items in PS sql/table.h: non-cachable for Item status for tables
-
- 12 Mar, 2004 1 commit
-
-
unknown authored
sql/log_event.cc: Cast for VC++ compiler error sql/opt_range.cc: Cast for VC++ compiler error
-
- 11 Mar, 2004 1 commit
-
-
unknown authored
We introduce a new function mysql_test_parse_for_slave(). If the slave sees that the query got a really bad error on master (killed e.g.), then it calls this function to know if this query can be ignored because of replicate-*-table rules (do not worry about replicate-*-db rules: they are checked so early that they have no bug). If the answer is yes, it skips the query and continues. If it's no, then it stops and say "fix your slave data manually" (like it did before this change). mysql-test/r/rpl_error_ignored_table.result: result update mysql-test/t/rpl_error_ignored_table-slave.opt: ignore more tables mysql-test/t/rpl_error_ignored_table.test: we test if a killed query on the master, is ignored on the slave if the tables it involves should be excluded because of replicate-*-table rules. sql/log_event.cc: If the query got a really bad error on the master (thread killed etc), parse it to test the table names: if the replicate-*-do|ignore-table rules say "this query must be ignored" then we exit gracefully; otherwise we warn about the bad error and tell DBA to check/fix it. Before this change, we always warned and stopped. sql/mysql_priv.h: new function sql/slave.cc: don't print error immediately as we need to do one more test to be sure. sql/sql_parse.cc: we add a function mysql_test_parse_for_slave(), to be used only by the slave if it wants to know if the query should be ignored or not; so this function only parses the query, does not execute it.
-
- 10 Mar, 2004 2 commits
-
-
unknown authored
- the one about BUG#2921 - the one about relay log flushing Both will be rewritten in a next changeset (this one will not be pushed before the next changeset). sql/log.cc: undo sql/log_event.cc: undo sql/repl_failsafe.cc: undo sql/slave.cc: undo sql/slave.h: undo sql/sql_repl.cc: undo
-
unknown authored
BUILD/compile-pentium-debug-max: Added --with-raid configure.in: Removed -DFN_NO_CASE_SENCE for Mac OS X as this is not always true mysql-test/install_test_db.sh: Added --skip-warnings mysql-test/mysql-test-run.sh: Fixes to get --gdb and --ddd to work mysql-test/r/lowercase_table2.result: Test for lower_case_table_names=2 and temporary tables mysql-test/r/lowercase_table3.result: Fixed error message mysql-test/r/multi_update.result: Test of behaviour of multi-table-delete and alias mysql-test/t/lowercase_table2.test: Test for lower_case_table_names=2 and temporary tables mysql-test/t/lowercase_table3.test: Fixed error mysql-test/t/multi_update.test: Test of behaviour of multi-table-delete and alias (Bug #2940) mysys/mf_iocache.c: Renamed _flush_io_cache to my_b_flush_io_cache sql/ha_myisam.cc: Added comment sql/lock.cc: Extra debugging sql/log.cc: New parameter to flush_relay_log_info sql/log_event.cc: New...
-
- 08 Mar, 2004 1 commit
-
-
unknown authored
INSERT DELAYED works only for one-row inserts (in latest 4.0 versions at least). So killing a delayed_insert thread does not spoil replication: the rows which actually went into the table are exactly those listed in the binlog. So when the delayed_insert thread is killed, don't log it as 'killed', because it causes superfluous stops on the slave. sql/log_event.cc: INSERT DELAYED works only for one-row inserts (in latest 4.0 versions at least). So killing a delayed_insert thread does not spoil replication: the rows which actually went into the table are exactly those listed in the binlog. So when the delayed_insert thread is killed, don't log it as 'killed', because it causes superfluous stops on the slave.
-
- 01 Mar, 2004 1 commit
-
-
unknown authored
"(binlog, position) stored by InnoDB for a replication slave can be wrong". This code contains conditional #if to distinguish between versions; it should be merged into 4.1 and 5.0. sql/ha_innodb.cc: correcting the binlog position stored in InnoDB in a slave. sql/log_event.cc: better code to store the binlog position in InnoDB for a slave. sql/slave.h: Better code for storing the binlog position in InnoDB for a slave.
-
- 29 Feb, 2004 1 commit
-
-
unknown authored
"wrong Relay_Log_Pos if Rotate is in the middle of a transaction in relay log" increment 'pending' instead of 'relay_log_pos'. mysql-test/r/rpl_trunc_binlog.result: result update sql/log_event.cc: - corrected error message - in Rotate_log_event::exec_event(), if we're in a transaction (which can happen if the I/O slave thread reconnected while reading a transaction), don't increment relay_log_pos but pending instead. Otherwise, relay_log_pos becomes garbage (and so if slave stops at that moment, it will never restart).
-
- 27 Feb, 2004 1 commit
-
-
unknown authored
VC++Files/innobase/innobase.dsp: odbc0odbc.c was removed from the tree. VC++Files/libmysql/libmysql.dsp: strxnmov.c is needed in this module. sql/log_event.cc: Cast required to resolve compile error on Windows - byte * is not equivalent to char *. sql/opt_range.cc: Cast to const char * required to resolve compile error on Windows. BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
-
- 17 Feb, 2004 1 commit
-
-
unknown authored
mysql-test/r/subselect.result: test suite for BUG#2838 mysql-test/t/subselect.test: test suite for BUG#2838 sql/item.cc: revision of fix_fields() calls removed unnecessary variabl, and used correct last parameter of fix_fields() sql/item_cmpfunc.cc: revision of fix_fields() calls (BUG#2838) sql/item_func.cc: revision of fix_fields() calls sql/item_row.cc: changed for efficience (and to be similar for Item_func::fix_fields) sql/item_subselect.cc: fixed last arguments for fix_fields call sql/item_sum.cc: layout fixed revision of fix_fields() calls sql/log_event.cc: revision of fix_fields() calls sql/set_var.cc: revision of fix_fields() calls sql/sql_base.cc: revision of fix_fields() calls sql/sql_class.cc: revision of fix_fields() calls sql/sql_handler.cc: revision of fix_fields() calls
-
- 16 Feb, 2004 1 commit
-
-
unknown authored
Added more DBUG statements Ensure that we are comparing end space with BINARY strings Use 'any_db' instead of '' to mean any database. (For HANDLER command) Only strip ' ' when comparing CHAR, not other space-like characters (like \t) BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685: Delete: mysql-test/r/ctype_tis620.result-old BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba: Delete: mysql-test/t/ctype_tis620.test-old client/mysqlbinlog.cc: Added DBUG statements Added call of my_end() to free all used memory on exit heap/hp_info.c: After merge fixes heap/hp_open.c: After merge fixes include/heap.h: After merge fixes include/m_ctype.h: Use pchar instead of 'int' for character parameters. Added 'my_binary_compare()' include/m_string.h: Fixed wrong define innobase/ibuf/ibuf0ibuf.c: After merge fixes innobase/srv/srv0start.c: After merge fixes mysql-test/r/alter_table.result: Fixed results after merge mysql-test/r/auto_increment.result:...
-
- 13 Feb, 2004 1 commit
-
-
unknown authored
Always use all LOAD DATA options in replication. Fixed problem in mysqlbinlog where LOAD DATA options could be overwritten. client/mysqlbinlog.cc: Ensure that we don't call init_dynamic_array() before my_init() has been done configure.in: Always use libtool with "--preserve-dup-deps" to prevent link problems with g++ mysql-test/r/mysqlbinlog.result: new results mysql-test/r/range.result: new results mysql-test/t/range.test: add missing DROP TABLE sql/log_event.cc: Always use all LOAD DATA options. This is needed to handle commands of type "FIELDS TERMINATED BY ''" Allocate memory for Create_file_log_event options as these may be overwritten in mysqlbinlog sql/log_event.h: Free buffer
-
- 06 Feb, 2004 1 commit
-
-
unknown authored
client/mysqlbinlog.cc: fixed bug #1378 "mysqlbinlog for remote host is broken" by using shared part of code for local and remote variant (function process_event) mysql-test/r/mysqlbinlog.result: fixed results for remote variant (they are the same as for local now) mysql-test/t/mysqlbinlog.test: discarded note 'V. Vagin should ...' because V.Vagin done sql/log_event.cc: added special local_fname flag to Load_log_event for using in Load_log_event::check_fname_outside_temp_buf instead of ugly condition sql/log_event.h: added special local_fname flag to Load_log_event for using in Load_log_event::check_fname_outside_temp_buf instead of ugly condition
-
- 28 Jan, 2004 1 commit
-
-
unknown authored
reset errors (in thd) before executing the event. Otherwise if an event is ignored because of replicate-*-table rules (error ER_SLAVE_IGNORED_TABLE) this error code may remain in thd->net and the next event may pick it. sql/log_event.cc: Reset errors (in thd) before executing the event. Otherwise if an event is ignored because of replicate-*-table rules (error ER_SLAVE_IGNORED_TABLE) this error code may remain in thd->net and the next event may pick it.
-
- 21 Dec, 2003 1 commit
-
-
unknown authored
Fixed bug in ORDER BY on a small column (Bug #2147) Fixed error from pthread_mutex_destroy() when one had wrong errmsg file client/mysqltest.c: Added handling of error on query send (Needed for init_connection.test) mysql-test/mysql-test-run.sh: Added tracing of mysqldump and mysqlbinlog mysql-test/r/init_connect.result: Updated tests mysql-test/r/order_by.result: Added test for bug filesort bug mysql-test/t/init_connect-master.opt: Added proper quoting (for Solaris and OSF) mysql-test/t/init_connect.test: Portability fix mysql-test/t/order_by.test: Added test for bug #2147 (bug in filesort) sql/filesort.cc: Fixed bug in filesort (Bug #2147) sql/item.h: Clear 'fixed' on cleanup (For prepared statements) sql/item_func.cc: Protect mutex destroy. (Fixed error from pthread_mutex_destroy() when one had wrong errmsg file) sql/log_event.cc: Portability fix sql/sql_class.h: Fixed compiler warning sql/sql_prepare.cc: Portability fi...
-
- 16 Dec, 2003 1 commit
-
-
unknown authored
"EE_ error codes (EE_DELETE, EE_WRITE) end up in the binlog, making slave stop". The problem was that during execution of the command on the master, an error can occur (for example, not space left on device, then mysqld waits and when there is space it completes successfully: so finally it worked but the error EE_WRITE remains in thd->net.last_errno and thd->net.last_error). To know if finally the command succeeded, we test the 'error' variable in every place, and if it shows no failure we reset thd->net.last_err* using the function THD::clear_error() which is backported from 4.1. A new test to see if now only real errors get to the binlog (note: the test uses "rm"). Also a bit of memory free/alloc saving in log_event.cc (do not free the whole mem_root after every query in the slave SQL thread: we can keep the initial block of it; which will be freed when the thread terminates). sql/log_event.cc: In the slave SQL thread, it's a waste to free the initial block of the mem_root after every query. We can instead keep it. It will be freed when the thread terminates (in THD::~THD()). sql/sql_acl.cc: clear the error in thd->net.last_errno as there was no error sql/sql_base.cc: clear the error in thd->net.last_errno as there was no error sql/sql_class.h: Backport of THD::clear_error() from 4.1: clears the error in thd->net.last_errno sql/sql_db.cc: clear the error in thd->net.last_errno as there was no error sql/sql_delete.cc: clear the error in thd->net.last_errno as there was no error sql/sql_insert.cc: clear the error in thd->net.last_errno as there was no error sql/sql_parse.cc: clear the error in thd->net.last_errno as there was no error sql/sql_rename.cc: clear the error in thd->net.last_errno as there was no error sql/sql_table.cc: clear the error in thd->net.last_errno as there was no error sql/sql_update.cc: clear the error in thd->net.last_errno as there was no error
-