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
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
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
(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
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
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().
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()
(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.
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
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
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
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()
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
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
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
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
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
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
Inside LOCK TABLES, use either LOCK_S or LOCK_X in locking reads; an improvent over the previous patch
sql/ha_innodb.cc:
Inside LOCK TABLES, use either LOCK_S or LOCK_X in locking reads; an improvent over the previous patch
innobase/include/row0mysql.h:
Inside LOCK TABLES, use either LOCK_S or LOCK_X in locking reads; an improvent over the previous patch
innobase/row/row0mysql.c:
Inside LOCK TABLES, use either LOCK_S or LOCK_X in locking reads; an improvent over the previous patch
configure.in:
Ensure that innodb gets system specific CFLAGS and CXXFLAGS
innobase/os/os0file.c:
Don't use pread/pwrite on systems where these are not working.
This fixes a bug on HPUX, where InnoDB didn't create the ibdata1 file correctly.
Update of VC++ project files.
VC++Files/mysqlmanager/childfrm.cpp:
Rename: VC++Files/mysqlmanager/CHILDFRM.CPP -> VC++Files/mysqlmanager/childfrm.cpp
VC++Files/mysqlmanager/childfrm.h:
Rename: VC++Files/mysqlmanager/CHILDFRM.H -> VC++Files/mysqlmanager/childfrm.h
VC++Files/mysqlmanager/mainfrm.cpp:
Rename: VC++Files/mysqlmanager/MAINFRM.CPP -> VC++Files/mysqlmanager/mainfrm.cpp
VC++Files/mysqlmanager/mainfrm.h:
Rename: VC++Files/mysqlmanager/MAINFRM.H -> VC++Files/mysqlmanager/mainfrm.h
VC++Files/mysqlmanager/mysqlmanager.dsp:
Rename: VC++Files/mysqlmanager/MySqlManager.dsp -> VC++Files/mysqlmanager/mysqlmanager.dsp
VC++Files/mysqlmanager/mysqlmanager.mak:
Rename: VC++Files/mysqlmanager/MySqlManager.mak -> VC++Files/mysqlmanager/mysqlmanager.mak
VC++Files/mysqlmanager/resource.h:
Rename: VC++Files/mysqlmanager/RESOURCE.H -> VC++Files/mysqlmanager/resource.h
VC++Files/mysqlmanager/stdafx.cpp:
Rename: VC++Files/mysqlmanager/STDAFX.CPP -> VC++Files/mysqlmanager/stdafx.cpp
VC++Files/mysqlmanager/stdafx.h:
Rename: VC++Files/mysqlmanager/STDAFX.H -> VC++Files/mysqlmanager/stdafx.h
VC++Files/mysqlmanager/toolsql.cpp:
Rename: VC++Files/mysqlmanager/TOOLSQL.CPP -> VC++Files/mysqlmanager/toolsql.cpp
VC++Files/mysqlmanager/toolsql.h:
Rename: VC++Files/mysqlmanager/TOOLSQL.H -> VC++Files/mysqlmanager/toolsql.h
VC++Files/mysqlmanager/RES/bitmap1.bmp:
Rename: VC++Files/mysqlmanager/RES/BITMAP1.BMP -> VC++Files/mysqlmanager/RES/bitmap1.bmp
VC++Files/mysqlmanager/RES/bitmap3.bmp:
Rename: VC++Files/mysqlmanager/RES/BITMAP3.BMP -> VC++Files/mysqlmanager/RES/bitmap3.bmp
VC++Files/mysqlmanager/RES/bmp00001.bmp:
Rename: VC++Files/mysqlmanager/RES/BMP00001.BMP -> VC++Files/mysqlmanager/RES/bmp00001.bmp
VC++Files/mysqlmanager/RES/bmp00002.bmp:
Rename: VC++Files/mysqlmanager/RES/BMP00002.BMP -> VC++Files/mysqlmanager/RES/bmp00002.bmp
VC++Files/mysqlmanager/RES/database.bmp:
Rename: VC++Files/mysqlmanager/RES/DATABASE.BMP -> VC++Files/mysqlmanager/RES/database.bmp
VC++Files/mysqlmanager/RES/fontd.bmp:
Rename: VC++Files/mysqlmanager/RES/FONTD.BMP -> VC++Files/mysqlmanager/RES/fontd.bmp
VC++Files/mysqlmanager/RES/fontu.bmp:
Rename: VC++Files/mysqlmanager/RES/FONTU.BMP -> VC++Files/mysqlmanager/RES/fontu.bmp
VC++Files/mysqlmanager/RES/query_ex.bmp:
Rename: VC++Files/mysqlmanager/RES/QUERY_EX.BMP -> VC++Files/mysqlmanager/RES/query_ex.bmp
VC++Files/mysqlmanager/RES/toolbar.bmp:
Rename: VC++Files/mysqlmanager/RES/TOOLBAR.BMP -> VC++Files/mysqlmanager/RES/toolbar.bmp
BUILD/compile-pentium-valgrind-max:
Use MYSQL_SERVER_SUFFIX
VC++Files/bdb/bdb.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/client/mysql.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/client/mysqladmin.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/client/mysqldump.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/client/mysqlimport.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/client/mysqlshow.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/copy_mysql_files.bat:
Assume we are in correct directory
VC++Files/innobase/innobase.dsp:
Use new version of MYSQL_SERVER_SUFFIX
Remove old files
VC++Files/isamchk/isamchk.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/libmysqld/libmysqld.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/my_print_defaults/my_print_defaults.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/myisamchk/myisamchk.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/myisamlog/myisamlog.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/myisampack/myisampack.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/mysql.dsw:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/mysqlbinlog/mysqlbinlog.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/mysqlcheck/mysqlcheck.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/mysys/mysys.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/pack_isam/pack_isam.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/perror/perror.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/replace/replace.dsp:
Use new version of MYSQL_SERVER_SUFFIX
VC++Files/sql/mysqld.dsp:
Use new version of MYSQL_SERVER_SUFFIX
include/my_global.h:
Added QUOTE and STRINGIFY
include/mysql_version.h.in:
New MYSQL_SERVER_SUFFIX handling
innobase/eval/eval0eval.c:
Fixed compiler warning
libmysql/libmysql.c:
Use STRINGIFY()
sql/mysqld.cc:
New MYSQL_SERVER_SUFFIX handling
sql/mysqld_suffix.h:
New MYSQL_SERVER_SUFFIX handling
sql/set_var.cc:
Use STRINGIFY()
zlib/contrib/asm386/zlibvc.dsp:
Updated for 4.0
Ensured that all projects compile
Removed compiler warnings
Better setting of server_version variable.
Fix that make_win_src_distribution creates the privilege tables.
VC++Files/bdb/bdb.dsp:
Small, automatic changes
VC++Files/client/mysql.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/client/mysqladmin.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/client/mysqlclient.dsp:
Removed files that should only be used with mysql command line client
VC++Files/client/mysqldump.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/client/mysqlimport.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/client/mysqlshow.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/comp_err/comp_err.dsp:
Automatic changes
VC++Files/dbug/dbug.dsp:
Automatic changes
VC++Files/heap/heap.dsp:
automatic changes
VC++Files/innobase/innobase.dsp:
Automatic changes
VC++Files/isam/isam.dsp:
Automatic changes
VC++Files/isamchk/isamchk.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/libmysql/libmysql.dsp:
Automatic changes
VC++Files/libmysqld/examples/test_libmysqld.dsp:
Add missing files
VC++Files/libmysqld/libmysqld.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/libmysqltest/myTest.dsp:
Automatic changes
VC++Files/merge/merge.dsp:
Automatic changes
VC++Files/my_print_defaults/my_print_defaults.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/myisam/myisam.dsp:
automatic changes
VC++Files/myisam_ftdump/myisam_ftdump.dsp:
automatic changes
VC++Files/myisamchk/myisamchk.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/myisamlog/myisamlog.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/myisammrg/myisammrg.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/myisampack/myisampack.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/mysql.dsw:
Automatic changes
VC++Files/mysqlbinlog/mysqlbinlog.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/mysqlcheck/mysqlcheck.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/mysqldemb/mysqldemb.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/mysqlserver/mysqlserver.dsp:
Automatic changes
VC++Files/mysqlshutdown/mysqlshutdown.dsp:
Automatic changes
VC++Files/mysqlwatch/mysqlwatch.dsp:
Automatic changes
VC++Files/mysys/mysys.dsp:
Automatic changes
VC++Files/pack_isam/pack_isam.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/perror/perror.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/regex/regex.dsp:
Automatic changes
VC++Files/replace/replace.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/sql/mysqld.dsp:
Added support for projects 'classic', 'classic nt', 'pro' and 'pro nt'
VC++Files/strings/strings.dsp:
Removed duplicate code for strnlen
VC++Files/test1/test1.dsp:
Automatic changes
VC++Files/thr_test/thr_test.dsp:
Automatic changes
VC++Files/vio/vio.dsp:
Automatic changes
VC++Files/zlib/contrib/asm386/zlibvc.dsp:
Automatic changes
VC++Files/zlib/zlib.dsp:
Automatic changes
extra/my_print_defaults.c:
Fixed bug in --verbose
include/m_string.h:
Portability fix
include/mysql_embed.h:
Better setting of server_version variable
include/mysql_version.h.in:
Better license text handling
innobase/pars/pars0lex.l:
Remove compiler warnings
innobase/trx/trx0sys.c:
Remove compiler warnings
libmysqld/lib_sql.cc:
Better setting of server_version variable
libmysqld/libmysqld.def:
Add functions needed for mysql command line client
myisam/myisam_ftdump.c:
Remove compiler warnings
mysys/sha1.c:
Remove compiler warnings
scripts/make_win_src_distribution.sh:
Safety fix
scripts/mysql_install_db.sh:
Backport from 4.1 to allow make_win_src_distribution create the privilege tables
sql/Makefile.am:
Add new file mysqld_suffix.h
Remove not used file sql_olap.h
sql/ha_innodb.cc:
Remove not used variable
sql/mysqld.cc:
Better setting of server_version variable
sql/set_var.cc:
Fixed bug when showing lower_case_file_system
strings/ctype-tis620.c:
Remove compiler warnings
Fix a memory corruption bug: in 32-bit computers, every 4 billionth malloc outside innodb_additional_mem_pool_size was mistreated when freeing the memory; this could corrupt the InnoDB additional mem pool and could have caused crashes anywhere, also inside MySQL, or even database corruption! the bug exists also in 3.23 and 4.1; workaround: configure innodb_additional_mem_pool_size big enough
innobase/mem/mem0pool.c:
Fix a memory corruption bug: in 32-bit computers, every 4 billionth malloc outside innodb_additional_mem_pool_size was mistreated when freeing the memory; this could corrupt the InnoDB additional mem pool and could have caused crashes anywhere, also inside MySQL, or even database corruption! the bug exists also in 3.23 and 4.1; workaround: configure innodb_additional_mem_pool_size big enough
Allocate the table name buffer from the mem heap of a foreign key object rather than pointing to the name buffer in the table object; even though this apparently caused no bugs in RENAME, DROP, ALTER TABLE, or elsewhere, this convention was very prone to memory allocation bugs
innobase/dict/dict0dict.c:
Allocate the table name buffer from the mem heap of a foreign key object rather than pointing to the name buffer in the table object; even though this apparently caused no bugs in RENAME, DROP, ALTER TABLE, or elsewhere, this convention was very prone to memory allocation bugs
Reserve the MySQL LOCK_thread_count mutex when printing thd->query of
an arbitrary transaction; if we are printing thd->query of a transaction that
we know is currently executing inside InnoDB, then we know that MySQL cannot
meanwhile change thd->query, and no need to reserve the MySQL mutex; note
that this patch still leaves open the possibility of races in MySQL's
thd->query_len
innobase/trx/trx0trx.c:
Reserve the MySQL LOCK_thread_count mutex when printing thd->query of an arbitrary transaction; if we are printing thd->query of the a transaction that we know is currently executing inside InnoDB, then we know that MySQL cannot meanwhile change thd->query, and no need to reserve the MySQL mutex; note that thsi patch still leaves aopen the possibility of races in MySQL's thd->query_len
innobase/lock/lock0lock.c:
Reserve the MySQL LOCK_thread_count mutex when printing thd->query of an arbitrary transaction; if we are printing thd->query of the a transaction that we know is currently executing inside InnoDB, then we know that MySQL cannot meanwhile change thd->query, and no need to reserve the MySQL mutex; note that thsi patch still leaves aopen the possibility of races in MySQL's thd->query_len
innobase/include/trx0trx.h:
Reserve the MySQL LOCK_thread_count mutex when printing thd->query of an arbitrary transaction; if we are printing thd->query of the a transaction that we know is currently executing inside InnoDB, then we know that MySQL cannot meanwhile change thd->query, and no need to reserve the MySQL mutex; note that thsi patch still leaves aopen the possibility of races in MySQL's thd->query_len
sql/ha_innodb.cc:
Reserve the MySQL LOCK_thread_count mutex when printing thd->query of an arbitrary transaction; if we are printing thd->query of the a transaction that we know is currently executing inside InnoDB, then we know that MySQL cannot meanwhile change thd->query, and no need to reserve the MySQL mutex; note that thsi patch still leaves aopen the possibility of races in MySQL's thd->query_len