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.