InnoDB Plugin Notes
InnoDB Plugin has been upgraded to version
1.0.9. This version is considered of General Availability (GA)
In this release, the
InnoDB Plugin is
included in source and binary distributions, except RHEL3,
RHEL4, SuSE 9 (x86, x86_64, ia64), generic Linux RPM packages,
and any builds produced with the
compiler. It also does not work for FreeBSD 6 and HP-UX or for
Linux on generic ia64.
Functionality Added or Changed
Security Fix: A security bug was fixed. (Bug #53907)
Security Fix: A security bug was fixed. (Bug #52357)
Security Fix: A security bug was fixed. (Bug #48157)
Important Change; Replication:
MyISAM transactions replicated to a
transactional slave left the slave in an unstable condition.
This was due to the fact that, when replicating from a
nontransactional storage engine to a transactional engine with
autocommit disabled, no
COMMIT statements were written to
the binary log; thus, on the slave, a never-ending transaction
The fix for this issue includes enforcing
autocommit mode on the slave by
autocommit=1 statements from
Reading from a table that used a self-logging storage engine and
updating a table that used a transactional engine (such as
InnoDB) generated changes that were written
to the binary log using statement format which could make slaves
diverge. However, when using mixed logging format, such changes
should be written to the binary log using row format. (This
issue did not occur when reading from tables using a
self-logging engine and updating
tables, as this was already handled by checking for combinations
of nontransactional and transactional engines.) Now such
statements are classified as unsafe, and in mixed mode, cause a
switch to row-based logging.
The server could crash with a message
failure in thread ,
typically during shutdown on a Windows system.
Adding a unique key on multiple columns, where one of the
NULL, could mistakenly report
duplicate key errors.
Fixed a checksum error reported for compressed tables when the
--innodb_checksums option is enabled.
Although the message stated that the table was corrupted, the
table is actually fine.
Corrected the handling of the setting
appropriate default value is different between MySQL 5.1 and
Multi-statement execution could fail with an error about foreign
key constraints. This problem could affect calls to
CALL statements that invoke stored
InnoDB: If a crash occurs while creating an index using the InnoDB “Fast Index Creation” mechanism, the partially created index is dropped during the crash recovery processing when the database is restarted.
TABLE statements that cause table partitions to be
renamed or dropped (such as
ALTER TABLE ... ADD
ALTER TABLE ... DROP
ALTER TABLE ... REORGANIZE
PARTITION) — when run concurrently with queries
— could fail, cause the affected partitioned tables to
become unusable, or both. This was due to the fact that the
INFORMATION_SCHEMA database ignored the name
lock imposed by the
statement on the partitions affected. In particular, this led to
InnoDB would accept the
rename operation, but put it in a background queue, so that
subsequent rename operations failed when
InnoDB was unable to find the
correct partition. Now,
honors name locks imposed by ongoing
TABLE statements that cause partitions to be renamed
References: See also Bug #47343, Bug #45808.
It was possible to execute a
CREATE TEMPORARY TABLE tmp
LIKE pt statement, where
pt is a
partitioned table, even though partitioned temporary tables are
not permitted. This caused the server to crash. Now a check is
performed to prevent such statements from being executed.
When attempting to perform DDL on a partitioned table and the
.par file could not be found,
the server returned the inaccurate error message Out
of memory; restart server and try again (needed 2
bytes). Now in such cases, the server returns the
error Failed to initialize partitions from .par
In some cases, attempting to update a column with a value of an
incompatible type resulted in a mismatch between master and
slave because the column value was set to its implicit default
value on the master (as expected), but the same column on the
slave was set to
When using a nontransactional table on the master with
autocommit disabled, no
was recorded in the binary log following a statement affecting
this table. If the slave's copy of the table used a
transactional storage engine, the result on the slave was as
though a transaction had been started, but never completed.
References: See also Bug #29288.
MySQL incorrectly processed
special` UPGRADE DATA
.., or a sequence starting with
../. It used the
server data directory (which contains other regular databases)
as the database directory.
(Bug #53804, CVE-2010-2008)
statements that used quick select and index scan simultaneously
caused a server crash or assertion failure.
Incorrect results could be returned for
with an impossible
DEFAULT produced an incorrect
In the debug version of the server, the
FreeState() function could in some
circumstances be called twice, leading to an assertion failure.
Aggregate functions could incorrectly return
NULL in outer join queries.
For outer joins, the optimizer could fail to properly calculate table dependencies. (Bug #52005)
The Loose Index Scan optimization method assumed that it could depend on the partitioning engine to maintain interval endpoint information, as if it were a storage engine. (Bug #50939)
Calculation of intervals for Event Scheduler events was not portable. (Bug #50087)
On Intel x86 machines, the optimizer could choose different execution plans for a query depending on the compiler version and optimization flags used to build the server binary. (Bug #48537)
When the transaction isolation level was
REPEATABLE READ and binary
logging used statement or mixed format,
SELECT statements with subqueries
unnecessarily acquired shared locks on rows in these tables.
Using an initial command with
...) that generated multiple result sets (such as a
stored procedure or a multi-statement command) left the