This is a new Beta development release, fixing recently discovered bugs.
This Beta release, as any other pre-production release, should not be installed on production level systems or systems with critical data. It is good practice to back up your data before installing any new version of software. Although MySQL has worked very hard to ensure a high level of quality, protect your data by making a backup as you would for any software beta release. Please refer to our bug database at http://bugs.mysql.com/ for more details about the individual bugs fixed in this version.
This section documents all changes and bug fixes that have been applied since the last official MySQL release. If you would like to receive more fine-grained and personalized update alerts about fixes that are relevant to the version and features you use, please consider subscribing to MySQL Enterprise (a commercial MySQL offering). For more details, please see (http://www.mysql.com/products/enterprise).
Functionality Added or Changed
Incompatible Change; MySQL Cluster:
The internal specifications for columns in
NDB tables has changed to enable
compatibility with future MySQL Cluster releases that are
expected to permit online adding and dropping of columns. This
change is not backward compatible with earlier versions of MySQL
See Internal column specification changes, for important information prior to upgrading a MySQL Cluster to MySQL 5.1.18 or later from MySQL 5.1.17 or earlier.
References: See also Bug #28205.
Incompatible Change; Replication:
mysql.event tables have been changed to
facilitate replication of events. When upgrading to MySQL
5.1.18, you must run mysql_upgrade prior to
working with events. Until you have done so, any statement
relating to the Event Scheduler or these tables (including
SHOW EVENTS) will fail with the
errors Expected field status at position 12 to have
type enum ('ENABLED','SLAVESIDE_DISABLED','DISABLED'), found
enum('ENABLED','DISABLED') and Table
mysql.event is damaged. Can not open.
These changes were made as part of fixes for the following bugs:
The effects of scheduled events were not replicated (that is, binary logging of scheduled events did not work).
Effects of scheduled events on a replication master were both replicated and executed on the slave, causing double execution of events.
CREATE FUNCTION statements
and their effects were not replicated correctly.
For more information, see Replication of Invoked Features. (Bug #17857, Bug #16421, Bug #20384, Bug #17671)
Incompatible Change; Cluster Replication:
The definition of the
table has changed such that an online upgrade is not possible
from MySQL 5.1.17 or earlier for a replication slave cluster;
you must shut down all SQL nodes as part of the upgrade
Upgrading and Downgrading MySQL Cluster, before
For more information about the changes to
MySQL Cluster Replication Schema and Tables.
Prior to this release, when
values were compared with
DATETIME values, the time portion
DATETIME value was
ignored, or the comparison could be performed as a string
compare. Now a
DATE value is
coerced to the
DATETIME type by
adding the time portion as
00:00:00. To mimic
the old behavior, use the
function as shown in this example:
date_col = CAST(NOW() AS DATE) FROM
The plugin interface and its handling of system variables was
changed. Command-line options such as
now cause an error if
InnoDB is not built-in
or plugin-loaded. You should use
--loose-skip-innodb if you do not want any
error even if
InnoDB is not available. The
--loose prefix modifier should be used for all
command-line options where you are uncertain whether the plugin
exists and when you want the operation to proceed even if the
option is necessarily ignored due to the absence of the plugin.
(For a description of how
--loose works, see
Using Options on the Command Line.)
Important Change: When upgrading to MySQL 5.1.18 or later from a previous MySQL version and scheduled events have been used, the upgrade utilities do not accommodate changes in event-related system tables. As a workaround, you can dump events before the upgrade, then restore them from the dump afterward. This issue was fixed in MySQL 5.1.20.
References: See also Bug #28521.
MySQL Cluster: The behavior of the ndb_restore utility has been changed as follows:
It is now possible to restore selected databases or tables using ndb_restore.
Several options have been added for use with
facilitate the creation of structured data dump files. These
options can be used to make dumps made using
ndb_restore more like those produced by
For details of these changes, see ndb_restore — Restore a MySQL Cluster Backup. (Bug #26899, Bug #26900)
MySQL Cluster: The following changes were made in the ndb_size.pl utility:
When ndb_size.pl calculates a value for a given configuration parameter that is less than the default value, it now suggests the default value instead.
The dependency on
removed, with the result that the file
ndb_size.tmpl is no longer needed or
(Bug #24227, Bug #24228)
Replication; Cluster Replication: Some circular replication setups are now supported for MySQL Cluster. See Known Issues in MySQL Cluster Replication, for detailed information. (Bug #17095, Bug #25688)
The MGM API now supports explicit setting of network timeouts
function. A utility function
is also implemented to facilitate calculation of timeouts based
on the number of management servers in the cluster.
mysqld_multi now understands the
option is deprecated; if given, it is treated like
If a set function
S with an outer
ANSI SQL mode is enabled.
If you use SSL for a client connection, you can tell the client
not to authenticate the server certificate by specifying neither
--ssl-capath. The server still
verifies the client according to any applicable requirements
statements for the client, and it still uses any
values that were passed to server at startup time.
CHANGE MASTER TO
statement, and a
Master_SSL_Verify_Server_Cert output column
SHOW SLAVE STATUS
statement. The option value also is written to the
old_mode system variable to
The mysql_create_system_tables script was removed because mysql_install_db no longer uses it.
for mysqlcheck. This option is enabled by
default, but can be given as
OPTIMIZE TABLE, and
REPAIR TABLE statements generated
by mysqlcheck not to be written to the binary
log. (Bug #26262)
Storage engine plugins may now be uninstalled at run time.
However, a plugin is not actually uninstalled until after its
reference count drops to zero. The
default_storage_engine system variable
consumes a reference count, so uninstalling will not complete
until said reference is removed.
variable has been removed. The impact of this change should be
low because the variable was unused, anyway.
New command-line options: To alleviate ambiguities in variable
names, all variables related to plugins can be specified using a
plugin part in the name. For example, every
time where we used to have
innodb in the
command-line options, you can now write
Furthermore, this is the preferred syntax. It helps to avoid
ambiguities when a plugin, say,
wait, has an
--wait-timeout will still set a system
--plugin-wait-timeout will set
the plugin variable. Also, there is a new command-line option
--plugin-load to install or load
plugins at initialization time without using the
--pre-query, options for
mysqlslap. Removed the
If a stored routine was declared using
INVOKER, a user who invoked the routine could gain
(Bug #27337, CVE-2007-2692)
MySQL Cluster: The cluster waited 30 seconds instead of 30 milliseconds before reading table statistics. (Bug #28093)
MySQL Cluster: Under certain rare circumstances, ndbd could get caught in an infinite loop when one transaction took a read lock and then a second transaction attempted to obtain a write lock on the same tuple in the lock queue. (Bug #28073)
MySQL Cluster: Under some circumstances, a node restart could fail to update the Global Checkpoint Index (GCI). (Bug #28023)
NULL values in unique
MySQL Cluster: The name of the month “March” was given incorrectly in the cluster error log. (Bug #27926)
NDB tables having
MEDIUMINT AUTO_INCREMENT columns were not
restored correctly by ndb_restore, causing
spurious duplicate key errors. This issue did not affect
BIGINT columns with
NDB tables with indexes whose names
contained space characters were not restored correctly by
ndb_restore (the index names were truncated).
References: This bug was introduced by Bug #20612.
It was not possible to add a unique index to an
NDB table while in single user
MySQL Cluster: Memory usage of a mysqld process grew even while idle. (Bug #27560)
Using more than 16GB for
problems with variable-size columns.
MySQL Cluster: A data node failing while another data node was restarting could leave the cluster in an inconsistent state. In certain rare cases, this could lead to a race condition and the eventual forced shutdown of the cluster. (Bug #27466)
When using the
configuration parameter to generate periodic reports of memory
usage in the cluster log,
DataMemory usage was not
always reported for all data nodes.
MySQL Cluster: Performing a delete followed by an insert during a local checkpoint could cause a Rowid already allocated error. (Bug #27205)
MySQL Cluster: Error messages displayed when running in single user mode were inconsistent. (Bug #27021)
On Solaris, the value of an
table column declared as
BIT(33) was always
ALTER TABLE ... ENGINE=MERGE on an
NDB table caused
mysqld to crash.
NDBCLUSTER table handler did
not set bits in null bytes correctly.
In some cases,
AFTER UPDATE and
AFTER DELETE triggers on
NDB tables that referenced subject
table did not see the results of operation which caused
invocation of the trigger, but rather saw the row as it was
prior to the update or delete operation.
This was most noticeable when an update operation used a
subquery to obtain the rows to be updated. An example would be
UPDATE tbl1 SET col2 = val1 WHERE tbl1.col1 IN (SELECT
col3 FROM tbl2 WHERE c4 = val2) where there was an
AFTER UPDATE trigger on table
tbl1. In such cases, the trigger failed to
The problem occurred because the actual update or delete
operations were deferred to be able to perform them later as one
batch. The fix for this bug solves the problem by disabling this
optimization for a given update or delete if the table has an
AFTER trigger defined for this operation.
Joins on multiple tables containing
BLOB columns could cause data
nodes run out of memory, and to crash with the error
NdbObjectIdMap::expand unable to expand.
START BACKUP NOWAIT caused a spurious
Out of backup record error in the
management client (
START BACKUP and
START BACKUP WAIT STARTED performed
MySQL Cluster: When a cluster data node suffered a “hard” failure (such as a power failure or loss of a network connection) TCP sockets to the missing node were maintained indefinitely. Now socket-based transporters check for a response and terminate the socket if there is no activity on the socket after 2 hours. (Bug #24793)
MySQL Cluster: The ndb_resize.pl utility did not calculate memory usage for indexes correctly. (Bug #24229)
MySQL Cluster: While a data node was stopped, dropping a table then creating an index on a different table caused that node to fail during restart. This was due to the re-use of the dropped table's internal ID for the index without verifying that the index now referred to a different database object. (Bug #21755)
When trying to create tables on an SQL node not connected to the
cluster, a misleading error message Table
tbl_name' already exists
was generated. The error now generated is Could not
connect to storage engine.
(Bug #11217, Bug #18676)
Replication; Cluster Replication: An SQL node acting as a replication master server could be a single point of failure; that is, if it failed, the replication slave had no way of knowing this, which could result in a mismatch of data between the master and the slave. (Bug #21494)
Replication: Out-of-memory errors were not reported. Now they are written to the error log. (Bug #26844)
Replication: Improved out-of-memory detection when sending logs from a master server to slaves, and log a message when allocation fails. (Bug #26837)
Replication: Aborting a statement on the master that applied to a nontransactional statement broke replication. The statement was written to the binary log but not completely executed on the master. Slaves receiving the statement executed it completely, resulting in loss of data synchrony. Now an error code is written to the error log so that the slaves stop without executing the aborted statement. (That is, replication stops, but synchrony to the point of the stop is preserved and you can investigate the problem.) (Bug #26551)
RAND() was called multiple
times inside a stored procedure, the server did not write the
correct random seed values to the binary log, resulting in
Replication: Restoration of the default database after stored routine or trigger execution on a slave could cause replication to stop if the database no longer existed. (Bug #25082)
If a rotate event occurred in the middle of a nontransaction
group, the group position would be updated by the rotate event
indicating an illegal group start position that was effectively
inside a group. This can happen if, for example, a rotate occurs
Intvar event and the associated
Query event, or between the table map events
and the rows events when using row-based replication.
Row-based replication of
MyISAM tables did not work correctly for
BIT columns. This has been
corrected, but the fix introduces an incompatibility into the
binary log format. (The incompatibility is corrected by the fix
for Bug #27779.)
Disk Data; Cluster Replication: An issue with replication of Disk Data tables could in some cases lead to node failure. (Bug #28161)
Disk Data: Changes to a Disk Data table made as part of a transaction could not be seen by the client performing the changes until the transaction had been committed. (Bug #27757)
Disk Data: When in single user mode, it was possible to create log file groups and tablespaces from any SQL node connected to the cluster. (Bug #27712)
Disk Data: When restarting a data node following the creation of a large number of Disk Data objects (approximately 200 such objects), the cluster could not assign a node ID to the restarting node. (Bug #25741)
Disk Data: Creating an excessive number of Disk Data tables (1000 or more) could cause data nodes to fail. (Bug #24951)
Changing a column specification or issuing a
TRUNCATE TABLE statement on a
Disk Data table caused the table to become an in-memory table.
This fix supersedes an incomplete fix that was made for this issue in MySQL 5.1.15. (Bug #24667, Bug #25296)
Setting the value of the
UNDO BUFFER SIZE to
64K or less in a
GROUP statement led to failure of cluster data nodes.
Disk Data: Creating an excessive number of data files for a single tablespace caused data nodes to crash. (Bug #24521)
It was possible to drop the last remaining datafile in a
TABLESPACE, even when there was still an empty table
using the tablespace.
The datafile could be not dropped if the table still contained any rows, so this bug involved no loss of data.
Cluster Replication: Some queries that updated multiple tables were not backed up correctly. (Bug #27748)
Cluster Replication: It was possible for API nodes to begin interacting with the cluster subscription manager before they were fully connected to the cluster. (Bug #27728)
Cluster Replication: Under very high loads, checkpoints could be read or written with checkpoint indexes out of order. (Bug #27651)
Trying to replicate a large number of frequent updates with a
relatively small relay log
max-relay-log-size set to 1M or less) could
cause the slave to crash.
sql_log_bin to zero did
not disable binary logging.
This issue affected only the
BLOB reads on operations with
LM_CommittedRead, the lock mode was
not upgraded to
LM_Read before the state of
BLOB had already been
NDB API methods
affected by this problem included the following:
write data in the middle of an existing blob value (that is,
updating the value) could overwrite some data past the end of
the data to be changed.
A performance degradation was observed for outer join queries to which a not-exists optimization was applied. (Bug #28188)
SELECT * INTO OUTFILE ... FROM
INFORMATION_SCHEMA.SCHEMATA failed with an
Access denied error, even for a user who
NULL-filtering optimization did not
eq_ref table access.
Nongrouped columns were permitted by
ONLY_FULL_GROUP_BY SQL mode.
Some equi-joins containing a
that included a
NOT IN subquery caused a
An error message suggested the use of mysql_fix_privilege_tables after an upgrade, but the recommended program is now mysql_upgrade. (Bug #27818)
Debug builds on Windows generated false alarms about uninitialized variables with some Visual Studio runtime libraries. (Bug #27811)
Certain queries that used uncorrelated scalar subqueries caused
EXPLAIN to crash.
UNION on two views
ORDER BY clauses resulted in an
Unknown column error.
mysql_install_db is supposed to detect existing system tables and create only those that do not exist. Instead, it was exiting with an error if tables already existed. (Bug #27783)
A memory leak in the event scheduler was uncovered by Valgrind. (Bug #27733)
mysqld did not check the length of option values and could crash with a buffer overflow for long values. (Bug #27715)
Comparisons using row constructors could fail for rows
mysqldump could not connect using SSL. (Bug #27669)
DISTINCT could return incorrect results if the select
list contained duplicated columns.
InnoDB tables, a multiple-row
INSERT of the form
INSERT INTO t (id...) VALUES (NULL...) ON DUPLICATE KEY
UPDATE id=VALUES(id), where
AUTO_INCREMENT column, could cause
ERROR 1062 (23000): Duplicate entry... errors
or lost rows.
When MySQL logged slow query information to a
CSV table, it used an incorrect formula to
The XML output representing an empty result was an empty string
rather than an empty
References: See also Bug #32198.
Group relay log rotation updated only the log position and not the name, causing the slave to stop. (Bug #27583)
Incorrect results could be returned for some queries that
contained a select list expression with
BETWEEN together with an
ORDER BY or
GROUP BY on
the same expression using
NOT IN or
The fix for Bug #17212 provided correct sort order for misordered output of certain queries, but caused significant overall query performance degradation. (Results were correct (good), but returned much more slowly (bad).) The fix also affected performance of queries for which results were correct. The performance degradation has been addressed. (Bug #27531)
CRC32() function returns an
unsigned integer, but the metadata was signed, which could cause
certain queries to return incorrect results. (For example,
queries that selected a
value and used that value in the
An interaction between
STATUS and other concurrent statements that modify the
table could result in a divide-by-zero error and a server crash.
Evaluation of an
IN() predicate containing a
decimal-valued argument caused a server crash.
(Bug #27513, Bug #27362, CVE-2007-2583)
In out-of-memory conditions, the server might crash or otherwise not report an error to the Windows event log. (Bug #27490)
Passing nested row expressions with different structures to an
IN predicate caused a server crash.
decimal.h header file was incorrectly
omitted from binary distributions.
enabled, attempting to rename an
to a nonexistent database caused the server to exit.
Nested aggregate functions could be improperly evaluated. (Bug #27363)
A stored function invocation in the
clause was treated as a constant.
Failure to allocate memory associated with
cause a server crash.
A subquery could get incorrect values for references to outer query columns when it contained aggregate functions that were aggregated in outer context. (Bug #27321)
The server did not shut down cleanly. (Bug #27310)
In a view, a column that was defined using a
GEOMETRY function was treated as having the
LONGBLOB data type rather than
mysqldump crashed if it got no data from
SHOW CREATE PROCEDURE (for
example, when trying to dump a routine defined by a different
user and for which the current user had no privileges). Now it
prints a comment to indicate the problem. It also returns an
error, or continues if the
--force option is
Queries containing subqueries with
COUNT(*) aggregated in an outer
context returned incorrect results. This happened only if the
subquery did not contain any references to outer columns.
Use of an aggregate function from an outer context as an
a server crash.
String truncation upon insertion into an integer or year column did not generate a warning (or an error in strict mode). (Bug #27176, Bug #26359)
mysqlbinlog produced different output with
-R option than without it.
NULL values in spatial fields caused
excessive memory allocation and crashes on some systems.
Row equalities in
WHERE clauses could cause
ON DUPLICATE KEY UPDATE failed for a table
KEY on a primary key
GROUP BY on a
caused a server crash when there was at least one empty string
in the column.
SHOW CREATE TABLE could fail when
the table name was longer than the connection name.
mysql_install_db could terminate with an error after failing to determine that a system table already existed. (Bug #27022)
MEMORY table, using a
BTREE index to scan for updatable rows could
lead to an infinite loop.
make_win_bin_dist neglected to copy some
MyISAM table files.
InnoDB tables having a clustered index
that began with a
VARCHAR column, deleting a record
and then inserting another before the deleted record was purged
could result in table corruption.
mysqldump would not dump a view for which the
DEFINER no longer exists.
Duplicates were not properly identified among (potentially) long
strings used as arguments for
If the name of a table given to myisamchk -rq
was a packed table and the name included the
myisamchk incorrectly created a file with a
Creating a temporary table with
using the one-file-per-table setting, and when the host file
system for temporary tables was
cause an assertion within
mysqld. This was
due to the use of
O_DIRECT when opening the
temporary table file.
mysql_upgrade did not detect failure of external commands that it runs. (Bug #26639)
The range optimizer could cause the server to run out of memory. (Bug #26625)
The range optimizer could consume a combinatorial amount of
memory for certain classes of
mysqldump could crash or exhibit incorrect
behavior when some options were given very long values, such as
--fields-terminated-by=". The code has been cleaned up to
remove a number of fixed-sized buffers and to be more careful
about error conditions in memory allocation.
some very long
A possible buffer overflow in
PROCEDURE CODE was removed.
FEDERATED engine did not permit the local
and remote tables to have different names.
The temporary file-creation code was cleaned up on Windows to improve server stability. (Bug #26233)
COUNT(*) could return an
incorrect value if the
WHERE clause compared
TEXT column to the
empty string (
''). This happened if the
column contained empty strings and also strings starting with
control characters such as tab or newline.
... SELECT where index searches used column prefixes,
insert errors could occur when key value type conversion was
mysqlbinlog --base64-output produced invalid SQL. (Bug #26194)
DELETE FROM (with no
tbl_name ORDER BY
the server did not check whether
col_name was a valid column in the
INSERT ... SELECT ... FROM
INFORMATION_SCHEMA.GLOBAL_STATUS statement from within
an event caused a server crash.
mysqldump could not dump log tables. (Bug #26121)
On Windows, trying to use backslash (
characters in paths for
DATA DIRECTORY and
INDEX DIRECTORY when creating partitioned
tables caused MySQL to crash.
(You must use
/ characters when specifying
paths for these options, regardless of platform. See
Overview of Partitioning in MySQL, for an example using
absolute paths for
DATA DIRECTORY and
INDEX DIRECTORY when creating a partitioned
table on Windows.)
(Bug #26074, Bug #25141)
mysqldump crashed for
MERGE tables if the
-c) option was given.
Index hints (
FORCE INDEX) cannot be used
FULLTEXT indexes, but were not being
Setting a column to
NOT NULL with an
ON DELETE SET NULL clause foreign key crashes
MyISAM tables that have different
definitions in the
.MYI tables might cause a server crash.
CREATE TABLE t1
LIKE t2 failed due to a full disk, an empty
t2.frm file could be created but not
removed. This file then caused subsequent attempts to create a
t2 to fail. This is easily
corrected at the file system level by removing the
t2.frm file manually, but now the server
removes the file if the create operation does not complete
In certain situations,
MATCH ... AGAINST
returned false hits for
NULL values produced
LEFT JOIN when no full-text index was
On Windows, connection handlers did not properly decrement the server's thread count when exiting. (Bug #25621)
OPTIMIZE TABLE might fail on
Windows when it attempts to rename a temporary file to the
original name if the original file had been opened, resulting in
loss of the
INNODB STATUS, the
INFORMATION was not always cleared properly.
mysql_stmt_fetch() did an
invalid memory deallocation when used with the embedded server.
mysql_upgrade did not pass a password to mysqlcheck if one was given. (Bug #25452)
On Windows, mysql_upgrade was sensitive to lettercase of the names of some required components. (Bug #25405)
During a call to
authentication fails or the database to change to is unknown, a
subsequent call to any function that does network communication
leads to packets out of order. This problem was introduced in
Difficult repair or optimization operations could cause an assertion failure, resulting in a server crash. (Bug #25289)
For storage engines that permit the current auto-increment value
to be set, using
ALTER TABLE ... ENGINE to
convert a table from one such storage engine to another caused
loss of the current value. (For storage engines that do not
support setting the value, it cannot be retained anyway when
changing the storage engine.)
Duplicate entries were not assessed correctly in a
MEMORY table with a
primary key on a
Several math functions produced incorrect results for large
incorrect results or a crash for a large number-of-decimals
The result set of a query that used
DISTINCT could lack some
rollup rows (rows with
NULL values for
grouping attributes) if the
GROUP BY list
contained constant expressions.
For queries that used
ORDER BY with
InnoDB tables, if the optimizer chose an
index for accessing the table but found a covering index that
ORDER BY to be skipped, no
results were returned.
SQL mode was not enforced for partitioned tables.
MBRWithin() were inadvertently omitted from
recent versions of MySQL (5.1.14 to 5.1.17).
my_pwrite() to table files larger than 2GB
could fail on some systems.
MBROverlaps() returned incorrect values in
A problem in handling of aggregate functions in subqueries caused predicates containing aggregate functions to be ignored during query execution. (Bug #24484)
MERGE storage engine could return
incorrect results when several index values that compare
equality were present in an index (for example,
which are considered equal but have different lengths).
Some upgrade problems are detected and better error messages suggesting that mysql_upgrade be run are produced. (Bug #24248)
The test for the
MYSQL_OPT_SSL_VERIFY_SERVER_CERT option for
mysql_options() was performed
incorrectly. Also changed as a result of this bug fix: The
arg option for the
mysql_options() C API function
was changed from
char * to
Some views could not be created even when the user had the requisite privileges. (Bug #24040)
A damaged or missing
mysql.event table caused
SHOW VARIABLES to fail.
SHOW CREATE VIEW qualified
references to stored functions in the view definition with the
function's database name, even when the database was the default
database. This affected mysqldump (which uses
SHOW CREATE VIEW to dump views)
because the resulting dump file could not be used to reload the
database into a different database.
CREATE VIEW now suppresses the database name for
references to stored functions in the default database.
AUTO_INCREMENT value would not be
correctly reported for
InnoDB tables when
SHOW CREATE TABLE statement
or mysqldump command.
SQL mode enabled,
LAST_INSERT_ID() could return 0
ON DUPLICATE KEY UPDATE. Additionally, the next rows
inserted (by the same
INSERT with or
ON DUPLICATE KEY UPDATE), would
insert 0 for the auto-generated value if the value for the
AUTO_INCREMENT column was
NULL or missing.
SELECT COUNT(*) from a table containing a
DATETIME NOT NULL column could produce
spurious warnings with the
NO_ZERO_DATE SQL mode enabled.
SOUNDEX() returned an invalid
string for international characters in multibyte character sets.
return an incorrect rows-matched value if, during insertion of
rows into a temporary table, the table had to be converted from
MEMORY table to a
sometimes generated a spurious truncation warning.
yaSSL crashed on pre-Pentium Intel CPUs. (Bug #21765)
A slave that used
could not connect to the master.
Database and table names have a maximum length of 64 characters (even if they contain multibyte characters), but were truncated to 64 bytes.
This improves on a previous fix made for this bug in MySQL 5.1.12.
InnoDB: The first read statement, if served
from the query cache, was not consistent with the
READ COMMITTED isolation
On Windows, if the server was installed as a service, it did not auto-detect the location of the data directory. (Bug #20376)
utf8 column in an
InnoDB table to a shorter length did not
shorten the data values.
In some cases, the optimizer preferred a range or full index scan access method over lookup access methods when the latter were much cheaper. (Bug #19372)
DATETIME values in
numeric contexts sometimes did not produce a double
INSERT...ON DUPLICATE KEY UPDATE could cause
Error 1032: Can't find record in ... for
inserts into an
InnoDB table unique index
using key column prefixes with an underlying
utf8 string column.
EXECUTE privilege for
a routine in a database should make it possible to
USE that database, but the server
returned an error instead. This has been corrected. As a result
of the change,
SHOW TABLES for a
database in which you have only the
EXECUTE privilege returns an
empty set rather than an error.