Functionality Added or Changed
The pstack library was nonfunctional and has
been removed, along with the --with-pstack
option for configure. The
--enable-pstack option for
mysqld is deprecated and will be removed in
MySQL 5.5.
(Bug #57210)
Support for the IBMDB2I storage engine has
been removed.
(Bug #58079)
Bugs Fixed
Security Fix: A security bug was fixed. (Bug #58005)
Performance; InnoDB:
Improved concurrency when several ANALYZE
TABLE or SHOW TABLE
STATUS statements are run simultaneously for
InnoDB tables.
(Bug #53046)
InnoDB:
Dropping an InnoDB index used by a foreign
key constraint, while foreign_key_checks was
set to 0, could cause the server to crash with an assertion.
This operation now does not cause a crash. The foreign key
constraint can no longer be enforced once the associated index
is removed, so do not rely on it for referential integrity in
this case.
(Bug #11762483, Bug #55084)
InnoDB:
If the MySQL Server crashed immediately after creating an
InnoDB table, the server could quit with a
signal 11 during the subsequent restart. The
issue could occur if the server halted after
InnoDB created the primary index for the
table, but before the index definition was recorded in the MySQL
metadata.
(Bug #57616)
References: This bug is a regression of Bug #54582.
InnoDB:
For an InnoDB table created with
ROW_FORMAT=COMPRESSED or
ROW_FORMAT=DYNAMIC, a query using the
READ UNCOMMITTED isolation level could cause
the server to stop with an assertion error, if
BLOB or other large columns that use off-page
storage were being inserted at the same time.
(Bug #57799)
InnoDB:
An existing InnoDB table could be switched to
ROW_FORMAT=COMPRESSED implicitly by a
KEY_BLOCK_SIZE clause in an
ALTER TABLE statement. Now, the
row format is only switched to compressed if there is an
explicit ROW_FORMAT=COMPRESSED clause. on the
ALTER TABLE statement.
Any valid, nondefault ROW_FORMAT parameter
takes precedence over KEY_BLOCK_SIZE when
both are specified. KEY_BLOCK_SIZE only
enables ROW_FORMAT=COMPRESSED if
ROW_FORMAT is not specified on either the
CREATE TABLE or ALTER
TABLE statement, or is specified as
DEFAULT. In case of a conflict between
KEY_BLOCK_SIZE and
ROW_FORMAT clauses, the
KEY_BLOCK_SIZE is ignored if
innodb_strict_mode is off, and the statement
causes an error if innodb_strict_mode is on.
(Bug #56632)
InnoDB:
The clause KEY_BLOCK_SIZE=0 is now permitted
on CREATE TABLE and
ALTER TABLE statements for
InnoDB tables, regardless of the setting of
innodb_strict_mode. The zero
value has the effect of resetting the
KEY_BLOCK_SIZE table parameter to its default
value, depending on the ROW_FORMAT parameter,
as if it had not been specified. That default is 8 if
ROW_FORMAT=COMPRESSED. Otherwise,
KEY_BLOCK_SIZE is not used or stored with the
table parameters.
As a consequence of this fix,
ROW_FORMAT=FIXED is not permitted when
innodb_strict_mode is enabled.
(Bug #56628)
InnoDB:
InnoDB startup messages now include the start
and end times for buffer pool initialization, and the total
buffer pool size.
(Bug #48026)
Partitioning:
In debug builds, an
INSERT ... ON DUPLICATE
KEY UPDATE
statement on an col_name = 0AUTO_INCREMENT column caused
the server to crash.
(Bug #57890)
Partitioning:
An
ALTER
TABLE statement acting on table partitions that failed
while the affected table was locked could cause the server to
crash.
(Bug #56172)
Passing a string that was not null-terminated to
UpdateXML() or
ExtractValue() caused the server
to fail with an assertion.
(Bug #57279, Bug #11764447)
The find_files() function used by
SHOW statements performed
redundant and unnecessary memory allocation.
(Bug #51208)
Several compilation problems were fixed. (Bug #57992, Bug #57993, Bug #57994, Bug #57995, Bug #57996, Bug #57997, Bug #58057)
Queries executed using the Index Merge access method and a temporary file could return incorrect results. (Bug #56862)
Grouping by a TIME_TO_SEC()
function result could cause a server crash or incorrect results.
Grouping by a function returning a
BLOB could cause an unexpected
“Duplicate entry” error and incorrect result.
(Bug #52160)
The Windows sample option files contained values more appropriate for Linux. (Bug #50021)
An error in a stored procedure could leave the session in a different default database. (Bug #54375)
A failed RENAME TABLE operation
could prevent a FLUSH
TABLES WITH READ LOCK from completing.
(Bug #47924)
Valgrind warnings about overlapping memory when double-assigning the same variable were corrected. (Bug #56138)
