Hi! InnoDB is a MySQL table type that provides FOREIGN KEY constraints, transactions, row level locking and multiversioned concurrency control to MySQL, as well as a commercial hot backup tool.
Release 4.0.20 is mainly a bugfix release, but there are also some important functional changes. Release 4.0.19 was completely skipped over because Bug #3596 might have caused segmentation faults on some platforms. The changelog below lists all the changes since 4.0.18. Functionality added or changed: * Make MySQL table locks (LOCK TABLES ... ) aware of InnoDB row locks on the same table. The MySQL table lock request now has to wait until conflicting InnoDB row locks are released. (Bug #3299) * Better error message when the server has to crash because the buffer pool is exhausted by the lock table or the adaptive hash index. * Print always the count of pending pread() and pwrite() calls if there is a long semaphore wait. Often a mysqld hang is caused by bugs in the operating system, or a hardware fault, and this can reveal it. * Improve space utilization when rows of 1,500 to 8,000 bytes are inserted in the order of the primary key. * Remove potential buffer overflow errors by sending diagnostic output to stderr or files instead of stdout or fixed-size memory buffers. As a side effect, the output of SHOW INNODB STATUS will be written to a file `<datadir>/innodb.status.<pid>' every 15 seconds. An outstanding bug: * If you configure innodb_additional_mem_pool_size so small that InnoDB memory allocation spills over from it, then every 4 billionth spill may cause memory corruption. A symptom is a printout like below in the .err log. The fix to this bug will be in 4.0.21. The workaround is to make innodb_additional_mem_pool_size big enough to hold all memory allocation. Use SHOW INNODB STATUS to determine that there is plenty of free space available in the additional mem pool, and the total allocated memory stays rather constant. " InnoDB: Error: Mem area size is 0. Possibly a memory overrun of the InnoDB: previous allocated area! InnoDB: Apparent memory corruption: mem dump len 500; hex " Bugs fixed: * Fixed race conditions in SHOW INNODB STATUS: it could cause a seg fault in innobase_mysql_print_thd(). A similar bug may have caused seg faults in MySQL's SHOW PROCESSLIST (Bug #3596) * Fixed a bug: DROP DATABASE did not work if FOREIGN KEY references were defined within the database. (Bug #3058) * Remove unnecessary files, functions and variables. Many of these were needed in the standalone version of InnoDB. * Remove debug functions and variables from non-debug build. * Add diagnostic code to analyze an assertion failure in ha_innodb.cc on line 2020 reported by a user. (Bug #2903) * Fixed a bug: in a FOREIGN KEY, ON UPDATE CASCADE was not triggered if the update changed a string to another value identical in alphabetical ordering, e.g., `abc' -> `aBc'. * Protect the reading of the latest foreign key error explanation buffer with a mutex; in theory, a race condition could cause SHOW INNODB STATUS print garbage characters after the error info. * Fixed a bug: The row count and key cardinality estimate was grossly too small if each clustered index page only contained one record. * Parse CONSTRAINT FOREIGN KEY correctly. (Bug #3332) * Fixed a memory corruption bug on Windows. The bug is present in all InnoDB versions in Windows, but it depends on how the linker places a static array in srv0srv.c, whether the bug shows itself. 4 bytes were overwritten with a pointer to a statically allocated string `get windows aio return value'. * Fix a glitch reported by Philippe Lewicki on the general mailing list: do not print a warning to the `.err' log if read_key fails with a lock wait timeout error 146. * Allow quotes to be embedded in strings in the private SQL parser of InnoDB, so that `'' can be used in InnoDB table and column names. Display quotes within identifiers properly. * Debugging: Allow UNIV_SYNC_DEBUG to be disabled while UNIV_DEBUG is enabled. * Debugging: Handle magic numbers in a more consistent way. Best regards, Heikki Tuuri Innobase Oy http://www.innodb.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]