mariadb/sql
guilhem@mysql.com 759a3c1e3c 2 minor edits, plus
fix for BUG#1113 "INSERT into non-trans table SELECT ; ROLLBACK" does not send warning"
and
fix for BUG#873 "In transaction, INSERT to non-trans table is written too early to binlog".
Now we don't always write the non-trans update immediately to the binlog;
if there is something in the binlog cache we write it to the binlog cache
(because the non-trans update could depend on a trans table which was modified
earlier in the transaction); then in case of ROLLBACK, we write the binlog
cache to the binlog, wrapped with BEGIN/ROLLBACK.
This guarantees that the slave does the same updates.
For ROLLBACK TO SAVEPOINT: when we execute a SAVEPOINT command we write it
to the binlog cache. At ROLLBACK TO SAVEPOINT, if some non-trans table was updated,
we write ROLLBACK TO SAVEPOINT to the binlog cache; when the transaction
terminates (COMMIT/ROLLBACK), the binlog cache will be flushed to the binlog
(because of the non-trans update) so we'll have SAVEPOINT and ROLLBACK TO
SAVEPOINT in the binlog.

Apart from this rare case of updates of mixed table types in transaction, the
usual way is still clear the binlog cache at ROLLBACK, or chop it at
ROLLBACK TO SAVEPOINT (meaning the SAVEPOINT command is also chopped, which
is fine).
Note that BUG#873 encompasses subbugs 1) and 2) of BUG#333 "3 binlogging bugs when doing INSERT with mixed InnoDB/MyISAM".
2003-08-22 15:39:24 +02:00
..
share errmsg.txt: 2003-07-14 16:04:20 +03:00
.cvsignore
add_errmsg
cache_manager.cc Update copyright 2001-12-06 14:10:51 +02:00
cache_manager.h Update copyright 2001-12-06 14:10:51 +02:00
convert.cc New SET syntax & system variables. 2002-07-23 18:31:22 +03:00
custom_conf.h Update copyright 2001-12-06 14:10:51 +02:00
derror.cc Added macros for nice TIMESPEC usage. 2002-01-02 21:29:41 +02:00
des_key_file.cc Fixes for Netware 2003-01-28 08:38:28 +02:00
field.cc Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
field.h Another bugfix for #615 2003-06-24 10:53:21 +05:00
field_conv.cc Optimized old patches 2003-07-01 14:38:38 +03:00
filesort.cc filesort.cc, order_by.result: 2003-04-26 14:54:53 +03:00
frm_crypt.cc Update copyright 2001-12-06 14:10:51 +02:00
gen_lex_hash.cc merged 2003-03-13 13:44:03 +01:00
ha_berkeley.cc A lot of portability fixes. 2003-01-05 20:18:49 +02:00
ha_berkeley.h A lot of portability fixes. 2003-01-05 20:18:49 +02:00
ha_heap.cc Portability fix when using -DBIG_TABLES 2002-11-14 12:21:36 +02:00
ha_heap.h Fixes for valgrind 2003-04-23 21:52:16 +03:00
ha_innodb.cc Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
ha_innodb.h ha_innodb.h: 2003-07-14 15:53:50 +03:00
ha_isam.cc low-level error messages cleanup 2003-01-28 17:42:08 +01:00
ha_isam.h Fixed some bugs after last merge 2002-06-20 15:25:02 +03:00
ha_isammrg.cc Portability fixes for Fortre C++ 5.0 (on Sun) in 32 and 64 bit modes. 2002-11-07 03:54:00 +02:00
ha_isammrg.h Fix some ORDER BY ... DESC problems with InnoDB 2002-09-27 08:23:51 +03:00
ha_myisam.cc Fix for #712 with Serg's suggestions 2003-07-19 18:17:29 +05:00
ha_myisam.h merge 2002-07-23 20:39:36 +03:00
ha_myisammrg.cc low-level error messages cleanup 2003-01-28 17:42:08 +01:00
ha_myisammrg.h merge + order by (bug #515) temporary fix 2003-07-04 14:42:57 +02:00
handler.cc 2 minor edits, plus 2003-08-22 15:39:24 +02:00
handler.h Added thread variable max_seeks_for_key 2003-06-27 03:04:54 +03:00
hash_filo.cc Update copyright 2001-12-06 14:10:51 +02:00
hash_filo.h Portability fixes for Fortre C++ 5.0 (on Sun) in 32 and 64 bit modes. 2002-11-07 03:54:00 +02:00
hostname.cc Fixes for Netware 2003-01-28 08:38:28 +02:00
init.cc Added option --read-only (Thanks to Markus Benning) 2003-05-19 12:01:38 +03:00
item.cc Fixed problem when comparing a key for a multi-byte-character set. (bug 152) 2003-04-27 22:12:08 +03:00
item.h LEFT JOIN optimization: Change LEFT JOIN to normal join if possible 2003-06-26 05:38:19 +03:00
item_buff.cc Update copyright 2001-12-06 14:10:51 +02:00
item_cmpfunc.cc Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
item_cmpfunc.h make it clear for optimizer that XOR's are not optimizable at the moment (BUG#992) 2003-08-05 16:29:09 +02:00
item_create.cc CURRENT_USER() and "access denied" error messages now report hostname exactly as it was specified in the GRANT command (with wildcards, that is) 2003-04-29 00:15:18 +02:00
item_create.h Fix problem in MIN/MAX optimisation (from last patch) 2003-02-07 17:57:07 +02:00
item_func.cc Safety and speedup fixes: 2003-07-14 10:12:05 +03:00
item_func.h LEFT JOIN optimization: Change LEFT JOIN to normal join if possible 2003-06-26 05:38:19 +03:00
item_strfunc.cc Cleaned up code comment 2003-08-03 16:33:04 +03:00
item_strfunc.h merge with 3.23.56 to get patches for --lower-case-table-names and 2003-01-29 19:22:22 +02:00
item_sum.cc Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
item_sum.h Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
item_timefunc.cc Bug #792 combination of date-interval and between with mixed constant and non-constant 2003-08-06 15:37:22 +02:00
item_timefunc.h Bugfix for #614 2003-06-11 20:09:37 +05:00
item_uniq.cc Update copyright 2001-12-06 14:10:51 +02:00
item_uniq.h Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
key.cc Allow optimzation of multi-table-update also for InnoDB tables 2003-03-19 00:45:44 +02:00
lex.h sql_yacc.yy, sql_parse.cc, sql_lex.h, mysqld.cc, lex.h: 2003-06-06 04:18:58 +03:00
lex_symbol.h Update copyright 2001-12-06 14:10:51 +02:00
lock.cc Merge to get fix for LOCK TABLES + DROP TABLE in another thread 2003-03-07 01:20:56 +02:00
log.cc 2 minor edits, plus 2003-08-22 15:39:24 +02:00
log_event.cc 2 minor edits, plus 2003-08-22 15:39:24 +02:00
log_event.h First commit for fixing BUG#1100 2003-08-20 23:24:45 +02:00
Makefile.am - added $(EXEEXT) to gen_lex_hash generation/execution to fix a build 2003-06-20 15:19:51 +02:00
matherr.c Update copyright 2001-12-06 14:10:51 +02:00
mf_iocache.cc ChangeSet 1.1625 was faulty as regards sql/mf_iocache.cc and LOAD DATA LOCAL replication tests 2003-03-02 18:20:32 +01:00
mini_client.cc Review of changesets since last pull. 2003-08-07 20:16:37 +03:00
mini_client.h New SET syntax & system variables. 2002-07-23 18:31:22 +03:00
my_lock.c Fixes for Netware 2003-01-28 08:38:28 +02:00
mysql_priv.h Fix mutex handling in SHOW_VARIABLES (key_buffer_size was not properly protected) 2003-08-17 14:10:15 +03:00
mysqld.cc Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
net_pkg.cc Fixed multi-table-delete for InnoDB tables 2003-02-17 02:14:37 +02:00
net_serv.cc Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
nt_servc.cc Fix error msg. Bug #681 2003-06-19 12:38:14 -04:00
nt_servc.h Added optional NT service and fix the TZ variable bug 2002-10-16 21:51:03 -02:00
opt_ft.cc
opt_ft.h
opt_range.cc Cleanups to recent patches 2003-08-15 09:54:19 +03:00
opt_range.h Added START TRANSACTION syntax 2003-02-06 16:55:59 +02:00
opt_sum.cc sql_select.cc, opt_sum.cc: 2003-05-07 19:01:45 +03:00
password.c - renamed "rnd" to "my_rnd" as the name was too generic (and is an exported 2003-03-18 22:14:02 +01:00
procedure.cc Update copyright 2001-12-06 14:10:51 +02:00
procedure.h Removed wrong implementation of CUBE/ROLLUP 2002-07-24 19:55:08 +03:00
records.cc Fixes for valgrind 2003-04-23 21:52:16 +03:00
repl_failsafe.cc Fix for BUG#1086. Now we don't preserve event's log_pos through 2003-08-20 03:38:31 +04:00
repl_failsafe.h Clearer error message when one forgot to grant REPLICATION SLAVE : 2003-03-08 18:53:32 +01:00
set_var.cc Fix mutex handling in SHOW_VARIABLES (key_buffer_size was not properly protected) 2003-08-17 14:10:15 +03:00
set_var.h SET CHARACTER SET DEFAULT didn't work (Bug #462) 2003-06-29 12:58:43 +03:00
slave.cc Yesterday I removed process_io_create_file; I shouldn't have. 2003-08-21 10:24:37 +02:00
slave.h Merge bk-internal.mysql.com:/home/bk/mysql-4.0 2003-08-07 20:18:51 +03:00
sql_acl.cc Cleanups to recent patches 2003-08-15 09:54:19 +03:00
sql_acl.h SHOW GRANTS hided real grants when grants on both column and table (Bug 654) 2003-06-23 20:03:59 +03:00
sql_analyse.cc Fixed problem when comparing a key for a multi-byte-character set. (bug 152) 2003-04-27 22:12:08 +03:00
sql_analyse.h merge with 3.23 to get corrected error message files and rename of files in mysql-test 2003-02-26 00:22:35 +02:00
sql_base.cc Safety and speedup fixes: 2003-07-14 10:12:05 +03:00
sql_cache.cc Remove compiler warnings 2003-07-04 23:06:19 +03:00
sql_cache.h support of more then 255 tables dependence in query cache (fixed BUG#930) 2003-07-30 14:59:56 +03:00
sql_class.cc Fix for BUG#1086. Now we don't preserve event's log_pos through 2003-08-20 03:38:31 +04:00
sql_class.h 2 minor edits, plus 2003-08-22 15:39:24 +02:00
sql_crypt.cc - renamed "rnd" to "my_rnd" as the name was too generic (and is an exported 2003-03-18 22:14:02 +01:00
sql_crypt.h Update copyright 2001-12-06 14:10:51 +02:00
sql_db.cc Safety and speedup fixes: 2003-07-14 10:12:05 +03:00
sql_delete.cc Safety and speedup fixes: 2003-07-14 10:12:05 +03:00
sql_do.cc Minors changes for the Windows 3.23.47 release 2001-12-30 00:22:01 -02:00
sql_handler.cc Remove compiler warnings 2003-07-04 23:06:19 +03:00
sql_insert.cc 2 minor edits, plus 2003-08-22 15:39:24 +02:00
sql_lex.cc Added missing (char*) casts in bzero calls. 2003-07-03 01:08:34 +02:00
sql_lex.h Cleaner implementation if INSERT ... SELECT with same tables 2003-07-03 11:55:36 +03:00
sql_list.cc Don't install signal handler for SIGINT by default 2003-06-10 21:42:29 +03:00
sql_list.h Cleaner implementation if INSERT ... SELECT with same tables 2003-07-03 11:55:36 +03:00
sql_load.cc First commit for fixing BUG#1100 2003-08-20 23:24:45 +02:00
sql_manager.cc Portability fixes for Fortre C++ 5.0 (on Sun) in 32 and 64 bit modes. 2002-11-07 03:54:00 +02:00
sql_manager.h
sql_map.cc Update copyright 2001-12-06 14:10:51 +02:00
sql_map.h Update copyright 2001-12-06 14:10:51 +02:00
sql_olap.cc New multi-table-update code 2002-11-29 16:40:18 +02:00
sql_parse.cc 2 minor edits, plus 2003-08-22 15:39:24 +02:00
sql_rename.cc Safety and speedup fixes: 2003-07-14 10:12:05 +03:00
sql_repl.cc First commit for fixing BUG#1100 2003-08-20 23:24:45 +02:00
sql_repl.h Status query on killed mysql connection results in segmentation fault (Bug #738) 2003-07-04 03:18:15 +03:00
sql_select.cc Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
sql_select.h Fixes for valgrind 2003-04-23 21:52:16 +03:00
sql_show.cc fixed typo in last push 2003-08-17 14:37:26 +03:00
sql_sort.h
sql_string.cc Big code cleanup/review before 4.0.2 release. 2002-06-11 11:20:31 +03:00
sql_string.h Update copyright 2001-12-06 14:10:51 +02:00
sql_table.cc PRIMARY KEY can erroneously have HA_NULL_PART_KEY flag that breaks correct key sorting 2003-08-07 13:39:53 +02:00
sql_test.cc Allow optimzation of multi-table-update also for InnoDB tables 2003-03-19 00:45:44 +02:00
sql_udf.cc Only write to the error log if --log-error is specified and --console is not specified 2003-01-28 20:56:35 +02:00
sql_udf.h Update copyright 2001-12-06 14:10:51 +02:00
sql_union.cc Fixed some varnings from valgrind 2003-08-20 16:25:44 +03:00
sql_update.cc Safety and speedup fixes: 2003-07-14 10:12:05 +03:00
sql_yacc.yy Remove wrong bug fix when calling create_sort_index. 2003-08-10 05:14:16 +03:00
stacktrace.c - Fixed URL to Using_stack_trace.html (the old one still works, but gets 2003-03-05 12:42:10 +01:00
stacktrace.h
structs.h Fixed multi-table-delete for InnoDB tables 2003-02-17 02:14:37 +02:00
table.cc Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS 2003-07-08 23:58:04 +03:00
table.h Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS 2003-07-08 23:58:04 +03:00
thr_malloc.cc Update copyright 2001-12-06 14:10:51 +02:00
time.cc Fixed problem with mysql prompt when server disconnect. (Bug 356) 2003-05-27 16:40:14 +03:00
udf_example.cc Update mysql-test results after merge 2002-09-18 02:21:29 +03:00
uniques.cc Fixed memory allocation in Unique to not allocate too much memory 2003-06-26 07:56:55 +03:00
unireg.cc Change of internal key_field=NULL handling to avoid error messages. 2002-12-03 13:08:25 +02:00
unireg.h One-line fix for bug 576 (DBUG_ASSERT failure when using CHANGE MASTER TO RELAY_LOG_POS=4). 2003-06-03 23:13:06 +02:00
watchdog_mysqld