Previously, MySQL Server distributions included the MySQL Reference Manual in Info format (the Docs/mysql.info file). Because the license for the manual restricts redistribution, its inclusion in Community packages caused problems for downstream redistributors, such as those who create Linux distributions. Community distributions of MySQL Server no longer include the mysql.info file, to make the repackaging and redistribution process easier (for example, the source tarball and its checksum can be used directly). This change applies to all source and binary Community packaging formats. Commercial (Enterprise) distributions are unchanged.
For those who wish to continue using the MySQL Reference Manual in Info format, we have made it available at http://dev.mysql.com/doc/.
Functionality Added or Changed
A new CMake option,
WITH_ASAN, permits enabling
AddressSanitizer for compilers that support it.
Attempts to use the
variable (which has an effect only for Solaris 8 and earlier)
now indicate that it has no effect when that is the case.
(Bug #67944, Bug #16032946)
INNODB STATUS on one connection thread and killing
that thread by running a
statement from a different connection thread would result in a
CHECK TABLE would ignore the
In debug builds, test case failures would occur due to
ibuf_contract_ext performing merges and
dict_stats_update returning evicted pages
back into the buffer pool while
ibuf_change_buffering_debug is enabled.
InnoDB failed to return an error when
attempting to run a query after discarding the tablespace.
When the change buffer is enabled,
failed to write a transaction log record when merging a record
from the insert buffer to a secondary index page if the insert
was performed as an “update-in-place”.
(Bug #16752251, Bug #69122)
index_read_map is called for an exact
search and fails to return a record due to non-matching search
criteria, the cursor would be positioned on the next record
after the searched key. A subsequent call to
would return the next record instead of returning the
previous non-matching row, thereby skipping a record.
(Bug #14621190, Bug #15965874, Bug #17314241, Bug #70038, Bug #17413093, Bug #12860669, Bug #60220, Bug #17565888)
Converting a table with a large number of columns from
InnoDB would cause an assertion due
to insufficient log buffer space. Instead of asserting,
InnoDB now attempts to increase log buffer
size automatically if the redo log size is too large.
(Bug #11758196, Bug #50366)
The storage engine was set incorrectly during a rebuild of a
partition; the table storage engine was ignored and the default
storage engine used instead. Thus, in MySQL 5.1, it was possible
REBUILD PARTITION to change the partition
storage engine from
MyISAM, and for the reverse
(rebuilding partitions of
causing the partitions to use
occurin MySQL 5.5 and later. Now, when rebuilding partitions,
the storage engine actually used by the table is checked and
used by the handler for the rebuild operation, so that the
partition storage engine is not inadvertently changed.
After disabling the parent table's indexes with
ALTER TABLE ...
DISABLE KEYS, rebuilding any of its partitions enabled
the indexes on those partitions, leading
MyISAM to fail with an error when
the optimizer tried to use one of the affected indexes.
Now in such cases, we check for disabled indexes on the table before rebuilding any of its partitions. If the indexes have been disabled, then we disable them on the partition following the rebuild. (Bug #16051817)
Replication: A replication master did not handle correctly the disabling of the semisync plugin on the master and the slave, with a subsequent stopping of the slave. (Bug #17460821, Bug #70349)
The final argument in the
SET clause of a
LOAD DATA ...
SET statement was repeated in the binary log.
(Bug #17429677, Bug #70277)
Replication: When an error encountered by the dump thread while reading events from the active binary log file was a temporary error, so that the dump thread tried to read the event, it was possible for the dump thread to seek the wrong position, which could cause one or more events to be resent. To prevent this, the thread's position is obtained after each correct read of an event.
In addition, with this fix, only binary logs that are not closed normally are marked as possibly being corrupted.
Finally, two warnings are added; these are now returned when a dump thread encounters a temporary error. (Bug #17402313)
while the master was waiting for a reply from the slave could in
some cases cause the master to fail.
(Bug #17327454, Bug #70045)
The value of
not correctly replicated when filtering rules were used on the
(Bug #17234370, Bug #69861)
Enabling Index Merge optimizer switches and setting a small
sort_buffer_size value could
lead to a server exit.
Some license and documentation files were missing from Windows MSI packages. (Bug #17584523)
mysql_options() C API
function could leak memory if called more than once with the
CONV() function could call
abs(INT_MIN), which is undefined, and cause a
An error array in the SSL code was missing a comma, leading to implicit concatenation of adjacent messages and a resulting off-by-one error in the relationship between error numbers and messages. (Bug #17294150)
filesort implementation sometimes failed
to allocate enough buffer space, leading to a server exit.
GROUP_CONCAT() with an invalid
separator could cause a server exit.
InnoDB string routine could write
past the end of a buffer.
Using the binary client/server protocol, the second execution of
a prepared statement for a query with parameters in the
LIMIT clause raised an assertion.
The usual failed-login attempt accounting was not applied to
(Bug #16241992, Bug #17357535)
Very long database names in queries could cause the server to exit. (Bug #15912213, Bug #16900358)
Standalone Windows MSI packages did not have the
ALLUSERS property set. They now set
ALLUSERS=1. For earlier MSI packages in this
MySQL series, a workaround is to use the following command:
my_b_vprintf() function could produce
incorrect results for long integers on 64-bit systems.
(Bug #67386, Bug #16978278)
COUNT(DISTINCT) should not count
NULL values, but they were counted when the
optimizer used Loose Index Scan.
(Bug #69841, Bug #17222452)
For queries of the form
UPDATE ... WHERE
, incorrect rows could be updated. Unique keys
unique_key ORDER BY ... LIMIT
NULL values, but the
optimizer did not always consider all of them.
(Bug #68656, Bug #16482467)
Host names in grant tables are stored in lowercase, but
mysql_install_db could fail to observe this
convention, leading to accounts that could not be dropped with
(Bug #62255, Bug #12917164, Bug #62254, Bug #12917151)
Killing a query that is performing a
operation resulted in an
shutdown in progess) error.
(Bug #18256, Bug #11745656)