InnoDB now supports also FOREIGN KEY (...) REFERENCES ...(...)
[ON UPDATE CASCADE | ON UPDATE SET NULL | ON UPDATE RESTRICT
| ON UPDATE NO ACTION].
Tables and indexes now reserve 4 % less space in the tablespace.
Also existing tables reserve less space. By upgrading to 4.0.8
you will see more free space in "InnoDB free" in SHOW TABLE STATUS.
Fixed bugs: updating the PRIMARY KEY of a row would generate a
foreign key error on all FOREIGN KEYs which referenced secondary
keys of the row to be updated. Also, if a referencing
FOREIGN KEY constraint only referenced the first columns in an
index, and there were more columns in that index, updating the
additional columns generated a foreign key error.
Fixed a bug: if an index contains some column twice, and that
column is updated, the table will become corrupt. From now on
InnoDB prevents creation of such indexes.
Fixed a bug: removed superfluous error 149 and 150 printouts
from the .err log when a locking SELECT caused a deadlock or a
lock wait timeout.
Fixed a bug: an assertion in btr0sea.c, in function
btr_search_info_update_slow could theoretically fail in a race of 3 threads.
Fixed a bug: one could not switch a session transaction isolation
level back to REPEATABLE READ after setting it to something else.