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 should 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 becomes 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.