Functionality Added or Changed
There is a new
innodb_autoinc_lock_mode system
variable to configure the locking behavior that
InnoDB uses for generating auto-increment
values. The default behavior now is slightly different from
before, which involves a minor incompatibility for multiple-row
inserts that specify an explicit value for the auto-increment
column in some but not all rows. See
AUTO_INCREMENT Handling in InnoDB.
Bugs Fixed
MySQL Cluster; Replication:
(Replication): Multi-master replication setups did not handle
--log-slave-updates correctly.
(Bug #30017)
MySQL Cluster:
Backups of TIMESTAMP columns made
with ndb_restore on a MySQL Cluster using
data nodes hosts of one endian could not be used to restore the
cluster's data to data node hosts of the other endian.
(Bug #30134)
Replication: Operations that used the time zone replicated the time zone only for successful operations, but did not replicate the time zone for errors that need to know it. (Bug #29536)
Replication: Row-based replication from a pre-5.1.22 MySQL Server to a MySQL 5.1.22 was unstable due to an uninitialized variable. (Bug #31076)
For an InnoDB table if a
SELECT was ordered by the primary
key and also had a WHERE field = value clause
on a different field that was indexed, a DESC
order instruction would be ignored.
(Bug #31001)
Tables using the InnoDB storage engine
incremented AUTO_INCREMENT values incorrectly
with ON DUPLICATE KEY UPDATE.
(Bug #28781)
When using a combination of HANDLER... READ
and DELETE on a table, MySQL
continued to open new copies of the table every time, leading to
an exhaustion of file descriptors.
(Bug #29474)
References: This bug was introduced by Bug #21587.
Nonrange queries of the form SELECT ... FROM ... WHERE
sometimes were unnecessarily
blocked waiting for a lock if another transaction was using
keypart1=constant,
...,
keypartN=constant
ORDER BY ... FOR UPDATESELECT ... FOR
UPDATE on the same table.
(Bug #28570)
Using KILL QUERY
or KILL
CONNECTION to kill a
SELECT statement caused a server
crash if the query cache was enabled.
(Bug #30201)
mysql_install_db could fail to find its message file. (Bug #30678)
The mysql_list_fields() C API
function incorrectly set
MYSQL_FIELD::decimals for some view columns.
(Bug #29306)
Under some circumstances, a UDF initialization function could be passed incorrect argument lengths. (Bug #29804)
mysqldump from the MySQL 5.1.21 distribution could not be used to create a dump from a MySQL 5.1.20 or older server. (Bug #30123)
The server created temporary tables for filesort operations in
the working directory, not in the directory specified by the
tmpdir system variable.
(Bug #30287)
Read lock requests that were blocked by a pending write lock request were not permitted to proceed if the statement requesting the write lock was killed. (Bug #21281)
CONNECTION_ID() always returned 0
for the embedded server (libmysqld).
(Bug #30389)
Memory corruption occurred for some queries with a top-level
OR operation in the WHERE
condition if they contained equality predicates and other
sargable predicates in disjunctive parts of the condition.
(Bug #30396)
On Windows, symbols for yaSSL and taocrypt were missing from
mysqlclient.lib, resulting in unresolved
symbol errors for clients linked against that library.
(Bug #27861)