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).
Incompatible Change; Cluster Replication: Two major changes have taken place with regard to the MySQL Cluster system tables. These are:
cluster database is no longer used.
The tables formerly found in the
cluster database are now in the
mysql database, and have been renamed
mysql.ndb_schema tables (formerly
cluster.schema are now created by
ndb_restore, in the event that they do
not already exist on the slave cluster.
When upgrading from versions of MySQL previous to 5.1.14 to
5.1.14 or later,
merely creates a new
table, but does not remove the existing
cluster database (or, if upgrading from
MySQL 5.1.7 or earlier, the existing
cluster_replication database), nor any of
the tables in it.
For more information, see MySQL Cluster Replication Schema and Tables. (Bug #14612)
Incompatible Change; Cluster Replication:
cluster database is no longer used. The
tables formerly found in the
are now in the
mysql database, and have been
Previously, you could create a user-defined function (UDF) or
stored function with the same name as a built-in function, but
could not invoke the UDF. Now an error occurs if you try to
create such a UDF. The server also now generates a warning if
you create a stored function with the same name as a built-in
function. It is not considered an error to create a stored
function with the same name as a built-in function because you
can invoke the function using
See Function Name Parsing and Resolution, for the rules describing how the server interprets references to different kinds of functions. (Bug #22619, Bug #18239)
Important Change; Disk Data: The output of mysqldump now includes by default all tablespace and logfile group definitions used by any tables or databases that are dumped.
The working of the
-Y option for mysqldump
remains unaffected by this change.
MySQL Cluster: Backup messages are now printed to the Cluster log. (Bug #24544)
Setting the configuration parameter
had no effect.
MySQL Cluster: The error message Management server closed connection, when recorded in the MySQL error log, now includes a timestamp indicating when the error took place. (Bug #21519)
It is now possible to create a unique hashed index on a column
that is not defined as
This change applies only to tables using the
NDB storage engine.
Unique indexes on columns in
tables do not store null values because they are mapped to
primary keys in an internal index table (and primary keys cannot
Normally, an additional ordered index is created when one
creates unique indexes on
columns; this can be used to search for
values. However, if
USING HASH is specified
when such an index is created, no ordered index is created.
The reason for permitting unique hash indexes with null values
is that, in some cases, the user wants to save space if a large
number of records are pre-allocated but not fully initialized.
This also assumes that the user will not
try to search for null values. Since MySQL does not support
indexes that are not permitted to be searched in some cases, the
NDB storage engine uses a full
table scan with pushed conditions for the referenced index
columns to return the correct result.
A warning is returned if one creates a unique nullable hash
index, since the query optimizer should be provided a hint not
to use it with
NULL values if this can be
DROP TRIGGER now supports an
IF EXISTS clause.
The XPath operators
>, as implemented in the
ExtractValue() function, operated
and mysqlshow now accept the
--debug-info option, which displays debugging
information and memory and CPU usage statistics at program exit.
Evaluation of subqueries that require the filesort algorithm
were allocating and freeing the
sort_buffer_size buffer many
times, resulting in slow performance. Now the buffer is
allocated once and reused.
MySQL Cluster; Replication:
(Replication): If errors occurred during purging of the binary
logs, extraneous rows could remain left in the
MySQL Cluster: The failure of a data node failure during a schema operation could lead to additional node failures. (Bug #24752)
MySQL Cluster: A committed read could be attempted before a data node had time to connect, causing a timeout error. (Bug #24717)
MySQL Cluster: The simultaneous shutdown of mysqld and ndbd processes caused unnecessary locking. (Bug #24655)
MySQL Cluster: The failure of the master node in a node group during the allocation of node IDs could cause ndb_mgmd to hang. (Bug #24543)
MySQL Cluster: In certain rare cases, a data node could crash due to a typographical error in the MySQL Cluster source code. (Bug #24476)
Creating a new tables containing a
BLOB column when the server was
short of memory could cause the server to crash.
MySQL Cluster: Sudden disconnection of an SQL or data node could lead to shutdown of data nodes with the error failed ndbrequire. (Bug #24447)
MySQL Cluster: (Disk Data): Excessive fragmentation of Disk Data files (including log files and data files) could occur during the course of normal use. (Bug #24143)
When the management client command
-i was executed while one data node was not running,
all data nodes in the cluster were shut down.
MySQL Cluster: A query using an index scan followed by a delete operation, and then a rollback could cause one or more data nodes to crash. (Bug #24039)
(Disk Data): Under some circumstances, a
DELETE from a Disk Data table
could cause mysqld to crash.
It was possible for the sum of the
configuration parameters, plus the number of system tables to
exceed the maximum value for a
In such a case, the cluster's data nodes failed to start, and no
reason for this could easily be determined from the error
A value equal to or greater than the permitted maximum for
all data nodes to crash.
Multiple occurrences of error conditions were logged with
duplicat error messages rather than being reported with a single
error message stating that the error was encountered
Given a table
mytbl in a database
mydb on a MySQL Server acting as an SQL node
in a MySQL Cluster, then, following multiple
TABLE mytbl ENGINE=
statements—first, to change the storage engine used for a
NDB, and then again to
change the table to use a non-
DROP DATABASE mydb
statement executed on any SQL node in the cluster would cause
mydb to be dropped on
all SQL nodes in the cluster, even if
An incorrect error message was displayed in the event that the
value of the
parameter was set too low.
An incorrect error message was displayed in the event that the
value of the
parameter was insufficient for the amount of data to be stored
by the cluster.
Some values of
cause the server to become inaccessible following startup of the
If the value set for
excessive, a suitable error message is now returned.
MySQL Cluster: Different error messages were returned for similar cases involving failure to allocate memory for Cluster operations. (Bug #19203)
A unique constraint violation was not ignored by an
UPDATE IGNORE statement when the constraint
violation occurred on a nonprimary key.
(Bug #18487, Bug #24303)
Replication: With row-based binary logging, replicated multiple-statement transaction deadlocks did not return the correct error code, causing the slave SQL thread to stop rather than roll back and re-execute. (Bug #23831)
Replication: Changes to character set variables prior to an action on a replication-ignored table were forgotten by slave servers. (Bug #22877)
Replication: On slave servers, transactions that exceeded the lock wait timeout failed to roll back properly. (Bug #20697)
Disk Data: ndb_restore sometimes failed when attempting to restore Disk Data tables due to data node failure caused by accessing uninitialized memory. (Bug #24331)
It was possible to execute a statement for creating a Disk Data
table that referred to a nonexistent tablespace, in which case
the table created was actually an in-memory
NDB table. Such a statement now
fails instead, with an appropriate error message.
Cluster API: Some MGM API function calls could yield incorrect return values in certain cases where the cluster was operating under a very high load, or experienced timeouts in inter-node communications. (Bug #24011)
In some cases, a function that should be parsed as a user-defined function was parsed as a stored function. (Bug #24736)
Some unnecessary Valgrind warnings were removed from the server. (Bug #24488, Bug #24533)
The server source code had multiple exportable definitions of
field_in_record_is_null() function. These
are now all declared
The loose index scan optimization for
MAX was not applied within other queries,
TABLE ... SELECT ...,
INSERT ... SELECT
..., or in the
FROM clauses of
Subqueries for which a pushed-down condition did not produce exactly one key field could cause a server crash. (Bug #24056)
The size of
MEMORY tables and internal
temporary tables was limited to 4GB on 64-bit Windows systems.
cause a server crash.
A trigger that invoked a stored function could cause a server crash when activated by different client connections. (Bug #23651)
The stack size for NetWare binaries was increased to 128KB to prevent problems caused by insufficient stack size. (Bug #23504)
If elements in a nontop-level
were accessed by an index and the subquery result set included a
NULL value, the quantified predicate that
contained the subquery was evaluated to
when it should return a non-
With row-based binary logging, for
CREATE TABLE IF
NOT EXISTS LIKE statements, the
IF NOT EXISTS
clause was not logged.
Queries using a column alias in an expression as part of an
ORDER BY clause failed, an example of such a
SELECT mycol + 1 AS mynum FROM mytable
ORDER BY 30 - mynum.
EXPLAIN caused a server
crash for queries that selected from
INFORMATION_SCHEMA in a subquery in the
Instance Manager option-parsing code caused memory-allocation errors. (Bug #22242)
Trailing spaces were not removed from Unicode
CHAR column values when used in
indexes. This resulted in excessive usage of storage space, and
could affect the results of some
queries that made use of such indexes.
With row-based binary logging,
TABLE IF NOT EXISTS SELECT statements were not logged
In some cases, the parser failed to distinguish a user-defined function from a stored function. (Bug #21809)
Inserting a default or invalid value into a spatial column could
Unknown error rather than a more
Through the C API, the member strings in
MYSQL_FIELD for a query that contained
expressions could return incorrect results.
View columns were always handled as having implicit derivation,
illegal mix of collation errors
for some views in
operations. Now view column derivation comes from the original
expression given in the view definition.
For debug builds, mysqladmin shutdown
displayed an extraneous
skipped 9 bytes from file:
socket (3) message.
For renaming of views, encoding of table name to file names was not performed. (Bug #21370)
CREATE FUNCTION X() and
FUNCTION Y() failed with a syntax error instead of
warning the user that these function names are already used (for
CONCURRENT did not work correctly for
A query with a subquery that references columns of a view from
SELECT could return an
incorrect result if used from a prepared statement.
For queries that select from a view, the server returned
MYSQL_FIELD metadata inconsistently for view
names and table names. For view columns, the server now returns
the view name in the
table field and, if the
column selects from an underlying table, the table name in the
Invalidating the query cache caused a server crash for
INSERT INTO ...
SELECT statements that selected from a view.
The server could send incorrect column count information to the client for queries that produce a larger number of columns than can fit in a two-byte number. (Bug #19216)
Constant expressions and some numeric constants used as input parameters to user-defined functions were not treated as constants. (Bug #18761)
Attempting to use a view containing
information for a nonexistent user resulted in an error message
that revealed the definer account. Now the definer is revealed
only to users that have the
privilege. Other users receive only an
Warnings were generated when explicitly casting a character to a
number (for example,
SIGNED)), but not for implicit conversions in simple
arithmetic operations (such as
'x' + 0). Now
warnings are generated in all cases.
Metadata for columns calculated from scalar subqueries was limited to integer, double, or string, even if the actual type of the column was different. (Bug #11032)