Do not allow dropping a table referenced by a FOREIGN
KEY constraint, unless the user does SET
FOREIGN_KEY_CHECKS=0. The error message here is
somewhat misleading “Cannot delete or update a parent
row...,” and must be changed in a future version 4.1.x.
Make InnoDB to remember the
CONSTRAINT name given by a user for a
FOREIGN KEY.
Change the print format of FOREIGN KEY
constraints spanning multiple databases to
`.
But when parsing them, we must also accept
db_name`.`tbl_name``,
because that was the output format in < 4.0.18.
db_name.tbl_name`
An optimization in locking: If
AUTOCOMMIT=1, then we do not need to make a
plain SELECT set shared locks even on the
SERIALIZABLE isolation level, because we
know that the transaction is read only. A read-only
transaction can always be performed on the REPEATABLE
READ level, and that does not endanger the
serializability.
Implement an automatic downgrade from >= 4.1.1 -> 4.0.18
if the user has not created tables in
.ibd files or used other 4.1.x features.
Consult the manual section on
multiple tablespaces
carefully if you want to downgrade!
Fixed a bug: MySQL should not allow REPLACE
to internally perform an UPDATE if the
table is referenced by a FOREIGN KEY. The
MySQL manual states that REPLACE must
resolve a duplicate-key error semantically with
DELETE + INSERT, and not
by an UPDATE. In versions < 4.0.18 and
< 4.1.2, MySQL could resolve a duplicate key conflict in
REPLACE by doing an
UPDATE on the existing row, and
FOREIGN KEY checks could behave in a
semantically wrong way. (Bug#2418)
Fixed a bug: generate FOREIGN KEY
constraint identifiers locally for each table, in the form
db_name/tbl_name_ibfk_number. If
the user gives the constraint name explicitly, then remember
it. These changes should ensure that foreign key id's in a
slave are the same as in the master, and DROP FOREIGN
KEY does not break replication. (Bug#2167)
Fixed a bug: allow quoting of identifiers in InnoDB's
FOREIGN KEY definitions with a backtick (`)
and a double quote ("). You can now use also spaces in table
and column names, if you quote the identifiers. (Bug#1725,
Bug#2424)
Fixed a bug: FOREIGN KEY ... ON UPDATE/DELETE NO
ACTION must check the foreign key constraint, not
ignore it. Since we do not have deferred constraints in
InnoDB, this bugfix makes
InnoDB to check NO
ACTION constraints immediately, like it checks
RESTRICT constraints.
Fixed a bug: InnoDB crashed in
RENAME TABLE if
db_name.tbl_name is shorter than 5
characters. (Bug#2689)
Fixed a bug: in SHOW TABLE STATUS,
InnoDB row count and index cardinality
estimates wrapped around at 512 million in 32-bit computers.
Note that unless MySQL is compiled with the
BIG_TABLES option, they still wrap around
at 4 billion.
Fixed a bug: If there was a UNIQUE
secondary index, and NULL values in that
unique index, then with the IS
NULL predicate, InnoDB returned
only the first matching row, though there can be many. This
bug was introduced in 4.0.16. (Bug#2483)

User Comments
Add your own comment.