summaryrefslogtreecommitdiff
path: root/innobase
Commit message (Collapse)AuthorAgeFilesLines
* manually mergedunknown2004-08-1819-36/+265
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BitKeeper/etc/logging_ok: auto-union BitKeeper/deleted/.del-mytest-old.c~5237697b30cf59e4: Auto merged Build-tools/Bootstrap: Auto merged Build-tools/mysql-copyright: Auto merged configure.in: Auto merged BitKeeper/deleted/.del-mysql_fix_privilege_tables.sql: Auto merged VC++Files/innobase/innobase.dsp: Auto merged client/mysql.cc: Auto merged include/my_global.h: Auto merged innobase/dict/dict0crea.c: Auto merged innobase/dict/dict0dict.c: Auto merged innobase/include/mtr0log.h: Auto merged innobase/include/mtr0log.ic: Auto merged innobase/include/srv0srv.h: Auto merged innobase/include/ut0dbg.h: Auto merged innobase/lock/lock0lock.c: Auto merged innobase/os/os0file.c: Auto merged innobase/row/row0mysql.c: Auto merged innobase/row/row0sel.c: Auto merged innobase/srv/srv0srv.c: Auto merged innobase/ut/ut0dbg.c: Auto merged innobase/ut/ut0mem.c: Auto merged libmysql/Makefile.am: Auto merged libmysql/Makefile.shared: Auto merged libmysql/conf_to_src.c: Auto merged libmysql/dll.c: Auto merged libmysql/errmsg.c: Auto merged libmysql/manager.c: Auto merged libmysql_r/Makefile.am: Auto merged myisam/mi_key.c: Auto merged mysql-test/Makefile.am: Auto merged mysql-test/mysql-test-run.sh: Auto merged mysql-test/r/having.result: Auto merged mysql-test/r/heap.result: Auto merged mysql-test/r/type_date.result: Auto merged mysql-test/r/type_float.result: Auto merged mysql-test/t/having.test: Auto merged mysql-test/t/heap.test: Auto merged mysql-test/t/type_date.test: Auto merged mysql-test/t/type_float.test: Auto merged mysql-test/t/type_uint.test: Auto merged scripts/make_binary_distribution.sh: Auto merged scripts/make_win_src_distribution.sh: Auto merged sql/Makefile.am: Auto merged sql/field.h: Auto merged sql/ha_heap.cc: Auto merged sql/item_func.cc: Auto merged sql/item_func.h: Auto merged sql/item_sum.h: Auto merged sql/lock.cc: Auto merged sql/log.cc: Auto merged sql/protocol.cc: Auto merged sql/repl_failsafe.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_analyse.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_parse.cc: Auto merged sql/share/czech/errmsg.txt: Auto merged sql/share/danish/errmsg.txt: Auto merged sql/share/dutch/errmsg.txt: Auto merged sql/share/english/errmsg.txt: Auto merged sql/share/estonian/errmsg.txt: Auto merged sql/share/french/errmsg.txt: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/share/greek/errmsg.txt: Auto merged sql/share/hungarian/errmsg.txt: Auto merged sql/share/japanese/errmsg.txt: Auto merged sql/share/korean/errmsg.txt: Auto merged sql/share/norwegian-ny/errmsg.txt: Auto merged sql/share/norwegian/errmsg.txt: Auto merged sql/share/polish/errmsg.txt: Auto merged sql/share/portuguese/errmsg.txt: Auto merged sql/share/romanian/errmsg.txt: Auto merged sql/share/russian/errmsg.txt: Auto merged sql/share/slovak/errmsg.txt: Auto merged sql/share/spanish/errmsg.txt: Auto merged sql/share/swedish/errmsg.txt: Auto merged sql/share/ukrainian/errmsg.txt: Auto merged
| * srv0start.c, ut0mem.c, ut0dbg.c, ut0dbg.h, srv0start.h:unknown2004-08-185-9/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri) mysqld.cc, ha_innodb.cc: Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri) sql/ha_innodb.cc: Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri) sql/mysqld.cc: Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri) innobase/include/srv0start.h: Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri) innobase/include/ut0dbg.h: Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri) innobase/ut/ut0dbg.c: Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri) innobase/ut/ut0mem.c: Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri) innobase/srv/srv0start.c: Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
| * row0mysql.c:unknown2004-08-131-0/+24
| | | | | | | | | | | | | | | | Fix bug: if we RENAME a table, InnoDB forgot to load the foreign key constraints that reference the new table name, and forgot to check that they are compatible with the table innobase/row/row0mysql.c: Fix bug: if we RENAME a table, InnoDB forgot to load the foreign key constraints that reference the new table name, and forgot to check that they are compatible with the table
| * os0file.c:unknown2004-08-101-2/+3
| | | | | | | | | | | | | | | | os_file_create_tmpfile(): display errno in case of failure innobase/os/os0file.c: os_file_create_tmpfile(): display errno in case of failure
| * InnoDB: Use create_temp_file() when availableunknown2004-08-102-22/+54
| | | | | | | | | | | | | | | | | | | | innobase/include/os0file.h: Improve the comment of os_file_create_tmpfile() innobase/os/os0file.c: os_file_create_tmpfile(): Use create_temp_file() via innobase_mysql_tmpfile() unless UNIV_HOTBACKUP is defined sql/ha_innodb.cc: Added innobase_mysql_tmpfile(), a wrapper around create_temp_file()
| * InnoDB: Add option for disabling innodb_status.<pid> files.unknown2004-08-067-17/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | InnoDB: Implement tmpfile() differently on Windows (Bug #3998) innobase/dict/dict0dict.c: Check the return value of os_file_create_tmpfile(), as it can now return NULL innobase/include/os0file.h: Note that os_file_create_tmpfile() can now return NULL innobase/include/srv0srv.h: Add a new server flag (srv_innodb_status) to disable the creation of innodb_status.<pid> files innobase/lock/lock0lock.c: Check the return value of os_file_create_tmpfile(), as it can now return NULL innobase/os/os0file.c: os_file_create_tmpfile(): separate implementation for Win32; errors will be reported but will not cause assertion failure innobase/srv/srv0srv.c: Add a new server flag (srv_innodb_status) to disable the creation of innodb_status.<pid> files innobase/srv/srv0start.c: innobase_start_or_create_for_mysql(): create srv_monitor_file with tmpfile() or with a visible name "innodb_status.<pid>", depending on the setting of the flag srv_innodb_status. sql/ha_innodb.cc: innobase_init(): initialize srv_innodb_status update_table_comment(), get_foreign_key_create_info(): replace tmpfile() with os_file_create_tmpfile() sql/ha_innodb.h: Add new Boolean flag, innobase_create_status_file. sql/mysqld.cc: Add new Boolean flag, innodb_status_file
| * dyn0dyn.h:unknown2004-08-023-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | dyn_array_open(): mention the size limit mtr0log.ic, mtr0log.h: mlog_open(): mention the size limit innobase/include/mtr0log.h: mlog_open(): mention the size limit innobase/include/mtr0log.ic: mlog_open(): mention the size limit innobase/include/dyn0dyn.h: dyn_array_open(): mention the size limit
| * Merge marko@build.mysql.com:/home/bk/mysql-4.0unknown2004-07-302-2/+13
| |\ | | | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/marko/k/mysql-4.0
| | * row0sel.c, page0page.ic:unknown2004-07-302-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add still more diagnostic code to track buffer pool corruption in one AMD64/Linux computer innobase/include/page0page.ic: Add still more diagnostic code to track buffer pool corruption in one AMD64/Linux computer innobase/row/row0sel.c: Add still more diagnostic code to track buffer pool corruption in one AMD64/Linux computer
| * | dict0crea.c:unknown2004-07-301-0/+1
| |/ | | | | | | | | | | | | | | Restore accidentally deleted comment to dict_create_sys_tables_tuple() innobase/dict/dict0crea.c: Restore accidentally deleted comment to dict_create_sys_tables_tuple()
| * buf0flu.c, os0file.c:unknown2004-07-272-0/+57
| | | | | | | | | | | | | | | | | | | | Add more diagnostic code to determine when an lsn field gets corrupt; tracks a crash reported from one Itanium computer innobase/os/os0file.c: Add more diagnostic code to determine when an lsn field gets corrupt; tracks a crash reported from one Itanium computer innobase/buf/buf0flu.c: Add more diagnostic code to determine when an lsn field gets corrupt; tracks a crash reported from one Itanium computer
| * row0sel.c, page0page.ic:unknown2004-07-272-1/+10
| | | | | | | | | | | | | | | | | | | | Add diagnostic code to print hex dumps and track corruption of next record offsets in an index page innobase/include/page0page.ic: Add diagnostic code to print hex dumps and track corruption of next record offsets in an index page innobase/row/row0sel.c: Add diagnostic code to print hex dumps and track corruption of next record offsets in an index page
* | InnoDB: Make UNIV_LOG_DEBUG workunknown2004-08-112-2/+13
| | | | | | | | | | | | | | | | innobase/buf/buf0flu.c: buf_flush_write_block_low(): Warn about UNIV_LOG_DEBUG only once innobase/log/log0recv.c: log_block_checksum_is_ok_or_old_format(): Disable the check if UNIV_LOG_DEBUG is defined
* | row0mysql.c:unknown2004-08-091-1/+0
| | | | | | | | | | | | | | | | | | | | row_drop_table_for_mysql(): Removed a ut_ad() assertion that failed when a DROP TABLE is executed in the background. innobase/row/row0mysql.c: row_drop_table_for_mysql(): Removed a ut_ad() assertion that failed when a DROP TABLE is executed in the background.
* | fil0fil.c:unknown2004-07-301-0/+2
| | | | | | | | | | | | | | | | Restore accidentally deleted comment of fil_create_directory_for_tablename() innobase/fil/fil0fil.c: Restore accidentally deleted comment of fil_create_directory_for_tablename()
* | Merge jlindstrom@build.mysql.com:/home/bk/mysql-4.1unknown2004-07-213-7/+81
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/jan/mysql-4.1 innobase/include/srv0srv.h: Auto merged innobase/srv/srv0srv.c: Auto merged sql/ha_innodb.cc: Auto merged
| * | Added innodb_locks_unsafe_for_binlog option. This option turns off Innodb unknown2004-07-203-7/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | next-key locking. Using this option the locks InnoDB sets on index records do not affect the ``gap'' before that index record. Thus, this option allows phantom problem. innobase/include/srv0srv.h: Added srv_locks_unsafe_for_binlog for innodb_locks_unsafe_for_binlog option. innobase/row/row0sel.c: If innodb_locks_unsafe_for_binlog option is used, we lock only the record, i.e. next-key locking is not used. Therefore, setting lock to the index record do not affect the ``gap'' before that index record. Thus, this option allows phantom problem, because concurrent insert operations are allowed inside the select range. innobase/srv/srv0srv.c: Added srv_locks_unsafe_for_binlog for innodb_locks_unsafe_for_binlog option. sql/ha_innodb.cc: Added innobase_locks_unsafe_for_binlog and srv_locks_unsafe_for_binlog for innodb_locks_unsafe_for_binlog option. sql/ha_innodb.h: Added innobase_locks_unsafe_for_binlog for innodb_locks_unsafe_for_binlog option. sql/mysqld.cc: Added OPT_INNODB_LOCKS_UNSAFE_FOR_BINLOG, innobase_locks_unsafe_for_binlog for innodb_locks_unsafe_for_binlog option. sql/set_var.cc: Added innodb_locks_unsafe_for_binlog and innobase_locks_unsafe_for_binlog for innodb_locks_unsafe_for_binlog option. BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
* | | manual merged (blame me!)unknown2004-07-2013-56/+138
|\ \ \ | |/ / |/| / | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Build-tools/Do-compile: Auto merged Docs/Makefile.am: Auto merged innobase/btr/btr0cur.c: Auto merged innobase/include/lock0lock.h: Auto merged innobase/include/row0mysql.h: Auto merged innobase/include/srv0srv.h: Auto merged innobase/include/sync0arr.h: Auto merged innobase/include/trx0trx.h: Auto merged innobase/lock/lock0lock.c: Auto merged innobase/srv/srv0srv.c: Auto merged innobase/srv/srv0start.c: Auto merged innobase/sync/sync0arr.c: Auto merged innobase/trx/trx0trx.c: Auto merged sql/ha_innodb.cc: Auto merged sql/sql_insert.cc: Auto merged mysql-test/r/innodb.result: to be fixed after the merge
| * InnoDB: limit the recursion depth for ON (UPDATE|DELETE) CASCADEunknown2004-07-151-13/+65
| | | | | | | | | | | | | | | | | | | | | | | | (Bug #4446) innobase/row/row0ins.c: row_ins_foreign_check_on_constraint(): limit recursion for UPDATE too mysql-test/r/innodb.result: Add test for recursion depth limit mysql-test/t/innodb.test: Add test for recursion depth limit
| * btr0cur.c:unknown2004-07-151-2/+9
| | | | | | | | | | | | | | | | Do not add + 1 to the InnoDB index cardinality estimate if the B-tree just contains one page; the fix made in March 2004 caused InnoDB systematically to overestimate the cardinality of empty or small tables by 1 innobase/btr/btr0cur.c: Do not add + 1 to the InnoDB index cardinality estimate if the B-tree just contains one page; the fix made in March 2004 caused InnoDB systematically to overestimate the cardinality of empty or small tables by 1
| * lock0lock.c:unknown2004-07-131-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | Decrement n_lock_table_exp in lock_table_remove_low() instead of lock_table_dequeue(). Do not empty lock_heap in lock_release_tables_off_kernel(). innobase/lock/lock0lock.c: Decrement n_lock_table_exp in lock_table_remove_low() instead of lock_table_dequeue(). Do not empty lock_heap in lock_release_tables_off_kernel().
| * InnoDB: LOCK TABLES clean-up, part 2unknown2004-07-121-2/+4
| | | | | | | | | | innobase/lock/lock0lock.c: Decrement n_lock_table_exp in lock_table_dequeue(), not elsewhere
| * InnoDB: LOCK TABLE clean-upunknown2004-07-126-28/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/include/lock0lock.h: Improve comments regarding LOCK_TABLE_EXP innobase/include/row0mysql.h: Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql() and improve its comment innobase/include/trx0trx.h: Rename n_tables_locked to n_lock_table_exp innobase/lock/lock0lock.c: Rename n_tables_locked to n_lock_table_exp Increment n_lock_table_exp already in lock_table_create() Replace some ut_ad() assertions with ut_a() innobase/row/row0mysql.c: Rename n_tables_locked to n_lock_table_exp Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql() and improve its comment innobase/trx/trx0trx.c: Rename n_tables_locked to n_lock_table_exp sql/ha_innodb.cc: Rename n_tables_locked to n_lock_table_exp Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
| * InnoDB: Increment the lock wait watchdog timeout during CHECK TABLEunknown2004-07-125-7/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Bug #2694) innobase/include/srv0srv.h: Add srv_fatal_semaphore_wait_threshold innobase/include/sync0arr.h: Improve comment of sync_array_print_long_waits() innobase/row/row0mysql.c: Lengthen the srv_fatal_semaphore_wait_threshold by 2 hours during CHECK TABLE innobase/srv/srv0srv.c: Add srv_fatal_semaphore_wait_threshold innobase/sync/sync0arr.c: Improve comment of sync_array_print_long_waits(). Replace the fixed timeout of 600 seconds with srv_fatal_semaphore_wait_threshold.
| * srv0start.c:unknown2004-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | innobase_start_or_create_for_mysql(): Rename innodb.status.<pid> to innodb_status.<pid> to avoid problems on VMS innobase/srv/srv0start.c: innobase_start_or_create_for_mysql(): Rename innodb.status.<pid> to innodb_status.<pid> to avoid problems on VMS
* | Merge with 4.0 to get the latest bug patches to 4.1unknown2004-06-257-120/+170
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BitKeeper/etc/ignore: added sql/mysql_tzinfo_to_sql BitKeeper/etc/logging_ok: auto-union acinclude.m4: Auto merged extra/perror.c: Auto merged include/mysql.h: Auto merged innobase/include/mach0data.ic: Auto merged innobase/include/mtr0log.h: Auto merged innobase/include/mtr0log.ic: Auto merged innobase/mem/mem0dbg.c: Auto merged innobase/pars/lexyy.c: Auto merged BitKeeper/deleted/.del-4.0.XX-gpl.ipr~f5909a9e9bd8094: Auto merged BitKeeper/deleted/.del-Clients and Tools.fgl~bf0f776883577f02: Auto merged BitKeeper/deleted/.del-Development.fgl~6392ce285e73f5fc: Auto merged mysql-test/mysql-test-run.sh: Auto merged mysql-test/r/innodb_cache.result: Auto merged mysql-test/r/lowercase_table2.result: Auto merged mysql-test/t/innodb_cache.test: Auto merged mysql-test/t/lowercase_table2.test: Auto merged sql/ha_berkeley.cc: Auto merged sql/handler.cc: Auto merged scripts/make_win_src_distribution.sh: Auto merged sql/sql_base.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_yacc.yy: Auto merged libmysql/libmysql.c: Merge with 4.0 mysql-test/r/bdb.result: Merge with 4.0 mysql-test/r/range.result: Merge with 4.0 mysql-test/t/bdb.test: Merge with 4.0 mysys/hash.c: Merge with 4.0 scripts/mysql_install_db.sh: Merge with 4.0 sql/field.cc: Merge with 4.0 sql/field.h: Merge with 4.0 sql/mysql_priv.h: Merge with 4.0 sql/sql_handler.cc: Merge with 4.0 sql/sql_select.cc: Merge with 4.0 sql/sql_table.cc: Merge with 4.0
| * lexyy.c, pars0lex.l:unknown2004-06-222-113/+158
| | | | | | | | | | | | | | | | | | | | Document the handling of quoted strings innobase/pars/pars0lex.l: Document the handling of quoted strings innobase/pars/lexyy.c: Document the handling of quoted strings
| * Merge marko@build.mysql.com:/home/bk/mysql-4.0unknown2004-06-211-1/+2
| |\ | | | | | | | | | | | | | | | | | | into hundin.mysql.fi:/home/marko/k/mysql-4.0
| | * mem0dbg.c:unknown2004-06-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | InnoDB with UNIV_MEM_DEBUG did not compile because a global variable was forgotten when we put back mem_print_info() functions 2 days ago; add that variable innobase/mem/mem0dbg.c: InnoDB with UNIV_MEM_DEBUG did not compile because a global variable was forgotten when we put back mem_print_info() functions 2 days ago; add that variable
| * | mach0data.ic, mach0data.h:unknown2004-06-184-7/+11
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve documentation of mach_*write_*compressed() mtr0log.ic, mtr0log.h: Improve documentation of mlog_write_initial_log_record_fast() innobase/include/mtr0log.h: Improve documentation of mlog_write_initial_log_record_fast() innobase/include/mtr0log.ic: Improve documentation of mlog_write_initial_log_record_fast() innobase/include/mach0data.h: Improve documentation of mach_*write_*compressed() innobase/include/mach0data.ic: Improve documentation of mach_*write_*compressed()
* | Merge gbichot@213.136.52.20:/home/bk/mysql-4.1unknown2004-06-232-10/+36
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into mysql.com:/home/mysql_src/mysql-4.1-1717 client/mysqltest.c: Auto merged innobase/trx/trx0sys.c: Auto merged mysql-test/mysql-test-run.sh: Auto merged sql/ha_innodb.cc: Auto merged sql/ha_innodb.h: Auto merged sql/log.cc: Auto merged sql/mysqld.cc: Auto merged sql/sql_class.h: Auto merged
| * | Robustness feature.unknown2004-06-202-10/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Won't be pushed as is - separate email sent for internal review. WL#1717 "binlog-innodb consistency". Now when mysqld starts, if InnoDB does a crash recovery, we use the binlog name and position retrieved from InnoDB (corresponding to the last transaction successfully committed by InnoDB) to cut any rolled back transaction from the binary log. This is triggered by the --innodb-safe-binlog option. Provided you configure mysqld to fsync() InnoDB at every commit (using flush_log_at_trx_commit) and to fsync() the binlog at every write (using --sync-binlog=1), this behaviour guarantees that a master always has consistency between binlog and InnoDB, whenever the crash happens. 6 tests to verify that it works. client/mysqltest.c: New command require_os (only "unix" accepted for now). innobase/include/trx0sys.h: when InnoDB does crash recovery, we now save the binlog coords it prints, into variables for later use. innobase/trx/trx0sys.c: when InnoDB does crash recovery, we now save the binlog coords it prints, into variables for later use. mysql-test/mysql-test-run.sh: The tests which check that the binlog is cut at restart, need to not delete those binlogs, of course. And not delete replication info, so that we can test that the slave does not receive anything wrong from the cut binlog. sql/ha_innodb.cc: methods to read from InnoDB the binlog coords stored into it sql/ha_innodb.h: ethods to read from InnoDB the binlog coords stored into it sql/log.cc: Added my_sync() when we create a binlog (my_sync of the binlog and of the index file); this is always done, whether --sync-binlog or not (binlog creation is rare, so no speed problem, and I like to have the existence of the binlog always reliably recorded, even if later content is not). If --crash-binlog-innodb, crash between the binlog write and the InnoDB commit. New methods: - report_pos_in_innodb() to store the binlog name and position into InnoDB (used only when we create a new binlog: at startup and at FLUSH LOGS) - cut_spurious_tail() to possibly cut the tail of a binlog based on the info we read from InnoDB (does something only if InnoDB has just done a crash recovery). sql/mysql_priv.h: new option, to crash (use for testing only) sql/mysqld.cc: New option --innodb-safe-binlog and --crash-binlog-innodb (the latter is for testing, it makes mysqld crash). Just after opening the logs and opening the storage engines, cut any wrong statement from the binlog, based on info read from InnoDB. sql/sql_class.h: new methods for MYSQL_LOG.
* | | mergeunknown2004-06-2175-442/+955
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BitKeeper/etc/ignore: auto-union BitKeeper/etc/logging_ok: auto-union Build-tools/Do-compile: Auto merged include/my_global.h: Auto merged innobase/row/row0ins.c: Auto merged libmysql/libmysql.c: Auto merged libmysqld/Makefile.am: Auto merged mysql-test/mysql-test-run.sh: Auto merged mysql-test/r/func_time.result: Auto merged mysql-test/r/subselect.result: Auto merged scripts/mysql_install_db.sh: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/mysqld.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Auto merged innobase/fil/fil0fil.c: merge (Use heikki's code)
| * | After merge fixesunknown2004-06-213-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Return NULL if a time argument is given to date_add(). (Warning will be shown after Dimitri's timezone patch is pushed) client/mysqltest.c: Added MAX_VAR_NAME which was lost in merge Added more debugging Fixed bug in 'eval' innobase/data/data0type.c: After merge fix innobase/fil/fil0fil.c: After merge fix innobase/log/log0recv.c: After merge fix myisam/mi_unique.c: Better checksum handling mysql-test/r/func_time.result: Return NULL if a time argument is given to date_add() mysql-test/r/rpl_free_items.result: After merge fix mysql-test/r/rpl_get_lock.result: Test was depending on when server was restarted. mysql-test/r/type_date.result: After merge fix mysql-test/r/type_decimal.result: After merge fix mysql-test/t/func_time.test: Removed comment that is not needed anymore (After Dimitri's timezone patch is pushed, we should get a warning for the date_add(time...) entry) mysql-test/t/rpl_get_lock.test: Test was depending on when server was restarted. mysql-test/t/type_date.test: Addded missing explanation for bug netware/mysqld_safe.c: Removed end \r Run program through indent-ex to get MySQL indentation sql-common/client.c: After merge fix sql/field.cc: Fixed that get_date(time) gives a warning sql/field.h: After merge fix sql/net_serv.cc: More debugging (if DEBUG_DATA_PACKETS is set) sql/sql_class.cc: Removed compiler warning sql/table.cc: Better comment
| * | Merge with 4.0.21unknown2004-06-1874-439/+954
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BitKeeper/etc/logging_ok: auto-union Build-tools/mysql-copyright-2: Auto merged include/violite.h: Auto merged innobase/btr/btr0btr.c: Auto merged innobase/buf/buf0buf.c: Auto merged innobase/buf/buf0flu.c: Auto merged innobase/buf/buf0lru.c: Auto merged innobase/dict/dict0dict.c: Auto merged innobase/dict/dict0mem.c: Auto merged innobase/fsp/fsp0fsp.c: Auto merged innobase/fut/fut0lst.c: Auto merged innobase/ha/hash0hash.c: Auto merged innobase/include/buf0buf.ic: Auto merged innobase/include/buf0lru.h: Auto merged innobase/include/data0data.h: Auto merged innobase/include/dict0dict.h: Auto merged innobase/include/dict0mem.h: Auto merged innobase/include/fsp0fsp.h: Auto merged innobase/include/hash0hash.h: Auto merged innobase/include/lock0lock.h: Auto merged innobase/include/log0log.h: Auto merged innobase/include/log0log.ic: Auto merged innobase/include/mem0dbg.ic: Auto merged innobase/include/mem0pool.h: Auto merged innobase/include/mtr0mtr.h: Auto merged innobase/include/sync0rw.h: Auto merged innobase/include/sync0sync.h: Auto merged innobase/include/trx0roll.h: Auto merged innobase/include/trx0trx.h: Auto merged innobase/include/ut0mem.h: Auto merged innobase/lock/lock0lock.c: Auto merged innobase/log/log0log.c: Auto merged innobase/mem/mem0dbg.c: Auto merged innobase/mem/mem0pool.c: Auto merged innobase/mtr/mtr0mtr.c: Auto merged innobase/pars/lexyy.c: Auto merged innobase/pars/pars0opt.c: Auto merged innobase/que/que0que.c: Auto merged innobase/rem/rem0cmp.c: Auto merged innobase/row/row0ins.c: Auto merged innobase/row/row0mysql.c: Auto merged innobase/row/row0upd.c: Auto merged innobase/srv/srv0srv.c: Auto merged innobase/srv/srv0start.c: Auto merged innobase/sync/sync0rw.c: Auto merged innobase/sync/sync0sync.c: Auto merged innobase/thr/thr0loc.c: Auto merged innobase/trx/trx0purge.c: Auto merged innobase/trx/trx0roll.c: Auto merged innobase/trx/trx0sys.c: Auto merged innobase/trx/trx0trx.c: Auto merged innobase/usr/usr0sess.c: Auto merged innobase/ut/ut0mem.c: Auto merged mysql-test/r/func_if.result: Auto merged mysql-test/r/type_date.result: Auto merged mysql-test/t/type_date.test: Auto merged mysql-test/t/type_decimal.test: Auto merged mysys/mf_tempfile.c: Auto merged netware/BUILD/nwbootstrap: Auto merged netware/Makefile.am: Auto merged scripts/mysqld_safe.sh: Auto merged sql/item_cmpfunc.cc: Auto merged mysql-test/t/func_if.test: Auto merged sql/mysqld.cc: Auto merged sql/opt_range.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_parse.cc: Auto merged support-files/my-innodb-heavy-4G.cnf.sh: Auto merged Build-tools/Do-compile: Merge with 4.0 Build-tools/mysql-copyright: Merge with 4.0 client/mysqltest.c: Merge with 4.0 include/my_global.h: Merge with 4.0 innobase/buf/buf0rea.c: Merge with 4.0 innobase/data/data0type.c: Merge with 4.0 innobase/ibuf/ibuf0ibuf.c: Merge with 4.0 innobase/include/buf0buf.h: Merge with 4.0 innobase/include/data0type.h: Merge with 4.0 innobase/include/mem0mem.h: Merge with 4.0 innobase/include/mem0mem.ic: Merge with 4.0 innobase/log/log0recv.c: Merge with 4.0 libmysql/libmysql.c: Merge with 4.0 libmysqld/Makefile.am: Merge with 4.0 mysql-test/r/range.result: Merge with 4.0 mysql-test/r/type_decimal.result: Merge with 4.0 mysql-test/t/range.test: Merge with 4.0 netware/BUILD/mwenv: Merge with 4.0 netware/mysql_test_run.c: Merge with 4.0 scripts/mysql_install_db.sh: Merge with 4.0 sql/field.cc: Merge with 4.0 sql/field.h: Merge with 4.0 sql/item_cmpfunc.h: Merge with 4.0 support-files/my-huge.cnf.sh: Merge with 4.0 support-files/my-large.cnf.sh: Merge with 4.0 support-files/my-medium.cnf.sh: Merge with 4.0 support-files/my-small.cnf.sh: Merge with 4.0 support-files/mysql.spec.sh: Merge with 4.0
| | * mem0dbg.h, mem0dbg.c:unknown2004-06-172-0/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Put back mem_print_info() functions that are used to analyze memory leaks; Marko removed them by accident in his Feb 20th, 2004 patch; these functions are very important for debugging, and should always be kept in the source code base innobase/mem/mem0dbg.c: Put back mem_print_info() functions that are used to analyze memory leaks; Marko removed them by accident in his Feb 20th, 2004 patch; these functions are very important for debugging, and should always be kept in the source code base innobase/include/mem0dbg.h: Put back mem_print_info() functions that are used to analyze memory leaks; Marko removed them by accident in his Feb 20th, 2004 patch; these functions are very important for debugging, and should always be kept in the source code base
| | * que0que.c, srv0que.c:unknown2004-06-172-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Put asserts that make sure srv_que_task_enqueue() is never called under MySQL innobase/srv/srv0que.c: Put asserts that make sure srv_que_task_enqueu() is never called under MySQL innobase/que/que0que.c: Put asserts that make sure srv_que_task_enqueu() is never called under MySQL
| | * log0recv.c:unknown2004-06-171-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Revert the patch that put log debug code behind UNIV_LOG_DEBUG innobase/log/log0recv.c: Revert the patch that put log debug code behind UNIV_LOG_DEBUG
| | * log0log.h:unknown2004-06-174-61/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert the patch that put log debug code behind UNIV_LOG_DEBUG log0log.ic, log0recv.c, log0log.c, log0log.h: Revert 1.1730.18.1 about UNIV_LOG_DEBUG: debug code is often needed in debugging the production version innobase/log/log0log.c: Revert 1.1730.18.1 about UNIV_LOG_DEBUG: debug code is often needed in debugging the production version innobase/log/log0recv.c: Revert 1.1730.18.1 about UNIV_LOG_DEBUG: debug code is often needed in debugging the production version innobase/include/log0log.ic: Revert 1.1730.18.1 about UNIV_LOG_DEBUG: debug code is often needed in debugging the production version innobase/include/log0log.h: Revert the patch that put log debug code behind UNIV_LOG_DEBUG
| | * Cset exclude: marko@hundin.mysql.fi|ChangeSet|20040316101802|63386unknown2004-06-173-3/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/include/que0que.h: Exclude innobase/include/que0que.ic: Exclude innobase/que/que0que.c: Exclude
| | * Cset exclude: marko@hundin.mysql.fi|ChangeSet|20040311211202|05613unknown2004-06-1714-70/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase/trx/trx0sys.c: Remove #ifdef UNIV_HOT_BACKUP: best to keep the codebase as uniform as possible innobase/dict/dict0dict.c: Exclude innobase/dict/dict0mem.c: Exclude innobase/ha/hash0hash.c: Exclude innobase/include/data0data.h: Exclude innobase/include/dict0mem.h: Exclude innobase/include/hash0hash.h: Exclude innobase/include/hash0hash.ic: Exclude innobase/include/mtr0mtr.h: Exclude innobase/include/row0ins.h: Exclude innobase/include/row0upd.h: Exclude innobase/row/row0ins.c: Exclude innobase/row/row0upd.c: Exclude innobase/thr/thr0loc.c: Exclude
| | * srv0que.c:unknown2004-06-172-0/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert Marko's untested changeset 1.1844.1.6 to the stable 4.0 version; stable 4.0 must NOT BE modified except in case of bugs srv0que.c, srv0que.h: new file innobase/srv/srv0que.c: Revert Marko's untested changeset 1.1844.1.6 to the stable 4.0 version; stable 4.0 must NOT BE modified except in case of bugs
| | * Cset exclude: marko@hundin.mysql.fi|ChangeSet|20040525171209|56870unknown2004-06-1712-101/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BitKeeper/deleted/.del-srv0que.c~d1feebb77b5a9b96: Exclude BitKeeper/deleted/.del-srv0que.h~f12ecb4b5afe203e: Exclude innobase/include/que0que.h: Exclude innobase/include/trx0roll.h: Exclude innobase/include/trx0trx.h: Exclude innobase/include/usr0sess.h: Exclude innobase/que/que0que.c: Exclude innobase/srv/Makefile.am: Exclude innobase/include/Makefile.am: Exclude innobase/srv/srv0srv.c: Exclude innobase/trx/trx0purge.c: Exclude innobase/trx/trx0roll.c: Exclude innobase/trx/trx0trx.c: Exclude innobase/usr/usr0sess.c: Exclude
| | * ut0mem.c:unknown2004-06-161-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | Remove printf's that were accidentally pushed in the last push innobase/ut/ut0mem.c: Remove printf's that were accidentally pushed in the last push
| | * ut0mem.h, ut0mem.c:unknown2004-06-164-18/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement ut_realloc lexyy.c, pars0lex.l: Start using ut_malloc, ut_free, ut_realloc in pars0lex.l and lexyy.c; mem_realloc was broken; eliminate possible memcpy(NULL, ..., 0) from string_append() innobase/pars/pars0lex.l: Start using ut_malloc, ut_free, ut_realloc in pars0lex.l and lexyy.c; mem_realloc was broken; eliminate possible memcpy(NULL, ..., 0) from string_append() innobase/pars/lexyy.c: Start using ut_malloc, ut_free, ut_realloc in pars0lex.l and lexyy.c; mem_realloc was broken; eliminate possible memcpy(NULL, ..., 0) from string_append() innobase/ut/ut0mem.c: Implement ut_realloc innobase/include/ut0mem.h: Implement ut_realloc
| | * mem0mem.ic, mem0mem.h:unknown2004-06-162-41/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove broken mem_realloc(); a patch to remove its uses in pars0lex.l and fil0fil.c will soon follow innobase/include/mem0mem.h: Remove broken mem_realloc(); a patch to remove its uses in pars0lex.l and fil0fil.c will soon follow innobase/include/mem0mem.ic: Remove broken mem_realloc(); a patch to remove its uses in pars0lex.l and fil0fil.c will soon follow
| | * InnoDB bug fix: mem_realloc() didn't preserve the block contentsunknown2004-06-161-3/+15
| | | | | | | | | | | | | | | innobase/include/mem0mem.ic: mem_realloc(): preserve the old buffer contents
| | * InnoDB: Revert most of ChangeSet@1.1772, as the debug functions mayunknown2004-06-1636-140/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | be needed when testing production releases innobase/btr/btr0btr.c: Remove #ifdef UNIV_DEBUG around debug code innobase/buf/buf0buf.c: Remove #ifdef UNIV_DEBUG around debug code innobase/buf/buf0flu.c: Remove #ifdef UNIV_DEBUG around debug code innobase/buf/buf0lru.c: Remove #ifdef UNIV_DEBUG around debug code innobase/buf/buf0rea.c: Remove #ifdef UNIV_DEBUG around debug code innobase/data/data0type.c: Remove #ifdef UNIV_DEBUG around debug code innobase/dict/dict0dict.c: Remove #ifdef UNIV_DEBUG around debug code innobase/fsp/fsp0fsp.c: Remove #ifdef UNIV_DEBUG around debug code innobase/fut/fut0lst.c: Remove #ifdef UNIV_DEBUG around debug code innobase/ibuf/ibuf0ibuf.c: Remove #ifdef UNIV_DEBUG around debug code innobase/include/btr0btr.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/buf0buf.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/buf0buf.ic: Remove #ifdef UNIV_DEBUG around debug code innobase/include/buf0flu.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/buf0lru.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/data0type.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/dict0dict.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/fsp0fsp.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/fut0lst.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/lock0lock.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/mem0dbg.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/mem0dbg.ic: Remove #ifdef UNIV_DEBUG around debug code innobase/include/mem0pool.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/mtr0mtr.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/pars0opt.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/sync0rw.h: Remove #ifdef UNIV_DEBUG around debug code innobase/include/sync0sync.h: Remove #ifdef UNIV_DEBUG around debug code innobase/lock/lock0lock.c: Remove #ifdef UNIV_DEBUG around debug code innobase/mem/mem0dbg.c: Remove #ifdef UNIV_DEBUG around debug code innobase/mem/mem0pool.c: Remove #ifdef UNIV_DEBUG around debug code innobase/mtr/mtr0mtr.c: Remove #ifdef UNIV_DEBUG around debug code innobase/pars/pars0opt.c: Remove #ifdef UNIV_DEBUG around debug code innobase/srv/srv0start.c: Remove #ifdef UNIV_DEBUG around debug code innobase/sync/sync0rw.c: Remove #ifdef UNIV_DEBUG around debug code innobase/sync/sync0sync.c: Remove #ifdef UNIV_DEBUG around debug code innobase/trx/trx0roll.c: Remove #ifdef UNIV_DEBUG around debug code
| | * InnoDB bug fix (row0mysql.c): make reserved table names innodb_* special againunknown2004-06-151-17/+33
| | | | | | | | | | | | | | | | | | innobase/row/row0mysql.c: row_create_table_for_mysql(), row_drop_table_for_mysql(): Make InnoDB recognize the special table names innodb_* again.
| | * InnoDB cleanup: Remove debug functionunknown2004-06-021-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | cmp_debug_dtuple_rec_with_match() unless #ifdef UNIV_DEBUG innobase/rem/rem0cmp.c: Remove cmp_debug_dtuple_rec_with_match() unless #ifdef UNIV_DEBUG