InnoDB
Tables
SAVEPOINT
and ROLLBACK TO SAVEPOINT
SQL statements. See http://www.innodb.com/ibman.html#Savepoints for
the syntax.
CREATE TABLE t (a BLOB, INDEX (a(10)))
.
O_DIRECT
as the innodb_flush_method
on the
latest versions of Linux and FreeBSD. Beware of possible bugs in those
operating systems, though.
InnoDB: Warning: an inconsistent page in the doublewrite buffer InnoDB: space id 2552202359 page number 8245, 127'th page in dblwr buf.but that is not dangerous and can be ignored.
SHOW INNODB STATUS
to print detailed info
on the latest UNIQUE KEY
error, but storing that info could
slow down REPLACE
significantly. We no longer store or print
the info.
SET FOREIGN_KEY_CHECKS=0
was not replicated properly
in the MySQL replication. The fix will not be backported to 3.23.
innodb_max_dirty_pages_pct
forgot to
take into account the free pages in the buffer pool. This could lead
to excessive flushing even though there were lots of free pages in
the buffer pool. Workaround: SET GLOBAL
innodb_max_dirty_pages_pct = 100
.
AUTOCOMMIT=1
then inside LOCK TABLES
MySQL
failed to do the commit after an updating SQL statement if binlogging was
not on, and for SELECT
s did not commit regardless of binlogging state.
FOREIGN KEY
with an UPDATE CASCADE
clause the parent column was of a different internal storage length
than the child column, then a cascaded update would make the column
length wrong in the child table and corrupt the child table. Because
of MySQL's 'silent column specification changes' a fixed-length
CHAR
column can change internally to a VARCHAR
and cause
this error.
latin1
character set was used and if in a
FOREIGN KEY
the parent column was of a different internal storage
length than the child column, then all inserts to the child table would
fail in a foreign key error.
SELECT
coincided.
SELECT
was used
inside LOCK TABLES
.
DELETE
statement first managed to delete
some rows and then failed in a FOREIGN KEY
error or a
'Table is full error', MySQL did not roll back the whole SQL statement
as it should, and also wrote the failed statement to the binlog, reporting
there a non-zero error_code.
CREATE TABLE
, and a subsequent
INSERT
or SELECT
from that table could cause an assertion.