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 SELECTs 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.