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]

Reply via email to