This is a new Beta development release, fixing recently discovered bugs.
NOTE: 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.
この項目は前回のMySQL公式リリース以降に適用されたすべての変更とバグ修正を説明します。更に頻繁でありご使用のバージョンと機能に合わせた更新情報を希望される場合には、MySQLエンタープライズ(商用版MySQL)への登録をお考えください。詳細は、http://www.mysql.com/products/enterpriseをご覧下さい。
Functionality added or changed:
Incompatible change:
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
syntax. However, the server now generates a warning in this
case. (Bug#22619, Bug#18239)
db_name
.func_name
()
See 項8.2.4. 「構文解析と解像度のファンクション名」, for the rules describing how the server interprets references to different kinds of functions.
Incompatible change: The
prepared_stmt_count
system variable has
been converted to the Prepared_stmt_count
global status variable (viewable with the SHOW GLOBAL
STATUS
statement). (Bug#23159)
NDB Cluster
: Two major changes have taken
place with regard to the MySQL Cluster system tables. These
are:
Incompatible change:
The cluster
database is no longer
used. The tables formerly found in the
cluster
database are now in the
mysql
database, and have been renamed
as ndb_binlog_index
,
ndb_apply_status
, and
ndb_schema
.
The mysql.ndb_apply_status
and
mysql.ndb_schema
tables (formerly
cluster.apply_status
and
cluster.schema
are now created by
ndb_restore, in the event that they
do not already exist on the slave cluster. (Bug#14612)
Note: When upgrading from
versions of MySQL previous to 5.1.14 to 5.1.14 or later,
mysql_fix_privilege_tables
merely creates a
new mysql.ndb_binlog_index
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 項14.10.4. 「レプリケーション スキーマおよびテーブル」.
NDB Cluster
: It is now possible to create a
unique hashed index on a column that is not defined as
NOT NULL
. Note that this change
applies only to tables using the NDB
storage engine.
Unique indexes on columns in NDB
tables do
not store null values because they are mapped to primary keys
in an internal index table (and primary keys cannot contain
nulls).
Normally, an additional ordered index is created when one
creates unique indexes on NDB
table
columns; this can be used to search for
NULL
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 allowed 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.
Note that 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 avoided.
NDB Cluster
: Backup messages are now
printed to the Cluster log. (Bug#24544)
NDB 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)
NDB Cluster
(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. (Bug#20839)
Note: The working of the
--all-tablespaces
or -Y
option for mysqldump remains unaffected by
this change.
Direct and indirect usage of stored routines, user-defined
functions, and table references is now prohibited in
CREATE EVENT
and ALTER
EVENT
statements. (Bug#22830)
See 項19.2.1. 「CREATE EVENT
Syntax」, and
項19.2.2. 「ALTER EVENT
Syntax」, for more specific information.
DROP TRIGGER
now supports an IF
EXISTS
clause. (Bug#23703)
Bugs fixed:
NDB Cluster
: If the value set for
MaxNoOfAttributes
is excessive, a suitable
error message is now returned. (Bug#19352)
NDB Cluster
: Setting the configuration
parameter LockPagesInMainMemory
had no
effect. (Bug#24461)
NDB Cluster
: Multiple occurrences of error
conditions were logged with duplicat error messages rather
than being being reported with a single error message stating
that the error was encountered N
times. (Bug#22313)
NDB Cluster
: Sudden disconnection of an SQL
or data node could lead to shutdown of data nodes with the
error failed ndbrequire. (Bug#24447)
NDB Cluster
: Different error messages were
returned for similar cases involving failure to allocate
memory for Cluster operations. (Bug#19203)
NDB Cluster
: Some values of
MaxNoOfTriggers
could cause the server to
become inaccessible following startup of of the data nodes.
(Bug#19454)
NDB Cluster
(Replication): If errors
occurred during purging of the binary logs, extraneous rows
could remain left in the binlog_index
table. (Bug#15021)
NDB Cluster
(Disk Data):
ndb_restore could sometimes fail when
attempting to restore Disk Data tables due to data node
failure caused by accessing unitialized memory. (Bug#24331)
NDB 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)
NDB Cluster
(Disk Data): It was possible to
execute a statement for creating a Disk Data table that
referred to a nonexistent tablespace, in which case the table
was an in-memory NDB
table. Such a
statement instead now fails with an appropriate error message.
(Bug#23576)
NDB Cluster
(Disk Data): Under some
circumstances, a DELETE
from a Disk Data
table could cause mysqld to crash. (Bug#23542)
NDB Cluster
(Cluster APIs): Using
BIT
values with any of the comparison
methods of the NdbScanFilter
class caused
the cluster's data nodes to fail. (Bug#24503)
NDB Cluster
: A value equal to or greater
than the allowed maximum for
LongMessageBuffer
caused all data nodes to
crash. (Bug#22547)
NDB Cluster
: The failure of a data node
failure during a schema operation could lead to additional
node failures. (Bug#24752)
NDB Cluster
: A committed read could be
attempted before a data node had time to connect, causing a
timeout error. (Bug#24717)
NDB Cluster
: The simultaneous shutdown of
mysqld and ndbd
processes caused unnecessary locking. (Bug#24655)
NDB 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)
NDB Cluster
: In certain rare cases, a data
node could crash due to a typographical error in the MySQL
Cluster source code. (Bug#24476)
NDB Cluster
: Creating a new tables
containing a BLOB
column when the server
was short of memory could cause the server to crash. (Bug#24470)
NDB Cluster
: Any statement following the
execution of CREATE TABLE ... LIKE
(where
ndb_table
ndb_table
was a table using the
NDB
storage engine), would cause the
mysql client to hang. (Bug#24301)
NDB Cluster
: When the management client
command ALL RESTART -i
was executed while
one data node was not running, all data nodes in the cluster
were shut down. (Bug#24105)
NDB 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)
NDB Cluster
(Cluster APIs): 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)
NDB Cluster
: It was possible for the sum of
the MaxNoOfTables
,
MaxNoOfOrderedIndexes
, and
MaxNoOfUniqueHashIndexes
configuration
parameters, plus the number of system tables to exceed the
maximum value for a Uint32
number. In such
a case, the cluster's data nodes failed to start, and no
reason for this could easily be determined from the error
messages provided. (Bug#22548)
NDB Cluster
: Given a table
mytbl
in a database mydb
on a MySQL Server acting as an SQL node in a MySQL Cluster,
then, following multiple ALTER TABLE mytbl
ENGINE=
statements
— first, to change the storage engine used for a table
to engine
NDB
, and then again to change the table
to use a non-NDB
storage engine — a
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
mydb
contained non-NDB
tables. (Bug#21495)
NDB Cluster
: An incorrect error message was
displayed in the event that the value of the
MaxNoOfOrderedIndexes
parameter was set too
low. (Bug#20065)
NDB Cluster
: An incorrect error message was
displayed in the event that the value of the
DataMemory
parameter was insufficient for
the amount of data to be stored by the cluster. (Bug#19808)
NDB Cluster
: A unique constraint violation
was not ignored by an UPDATE IGNORE
statement when the constraint violation occurred on a
non-primary key. (Bug#18487, Bug#24303)
The stack size for NetWare binaries was increased to 128KB to prevent problems caused by insufficient stack size. (Bug#23504)
Attempting to use a view containing DEFINER
information for a non-existent user resulted in an error
message that revealed the definer account. Now the definer is
revealed only to superusers. Other users receive only an
access denied
message. (Bug#17254)
The size of MEMORY
tables and internal
temporary tables was limited to 4GB on 64-bit Windows systems.
(Bug#24052)
For debug builds, mysqladmin shutdown
displayed an extraneous skipped 9 bytes from file:
socket (3)
message. (Bug#21428)
For queries that select from a view, the server was returning
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 org_table
field. (Bug#20191)
CREATE FUNCTION X()
and CREATE
FUNCTION Y()
failed with a syntax error instead of
warning the user that these function names are already used
(for GIS functions). (Bug#21025)
The loose index scan optimization for GROUP
BY
with MIN
or
MAX
was not applied within other queries,
such as CREATE TABLE ... SELECT ...
,
INSERT ... SELECT ...
, or in the
FROM
clauses of subqueries. (Bug#24156)
Queries using a column alias in an expression as part of an
ORDER BY
clause failed, an example of such
a query being SELECT mycol + 1 AS mynum FROM mytable
ORDER BY 30 - mynum
. (Bug#22457)
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 ORDER BY
queries
that made use of such indexes.
Note: When upgrading, it is
necessary to re-create any existing indexes on Unicode
CHAR
columns in order to take advantage of
the fix. This can be done by using a REPAIR
TABLE
statement on each affected table.
Warnings were generated when explicitly casting a character to
a number (for example, CAST('x' AS
SIGNED)
), but not for implicit conversions in simple
arithmetic operations (such as 'x' + 0
).
Now warnings are generated in all cases. (Bug#11927)
BENCHMARK
, ENCODE
,
DECODE
, and FORMAT
could
only accept a constant for some parameters, and could not be
used in prepared statements. (Bug#22684)
A query with a subquery that references columns of a view from
the outer SELECT
could return an incorrect
result if used from a prepared statement. (Bug#20327)
Constant expressions and some numeric constants used as input parameters to user-defined functions were not treated as constants. (Bug#18761)
INET_ATON()
returned a signed
BIGINT
value, not an unsigned value. (Bug#21466)
In some cases, the parser failed to distinguish a user-defined function from a stored function. (Bug#21809)
In some cases, a function that should be parsed as a user-defined function was parsed as a stored function. (Bug#24736)
Subqueries for which a pushed-down condition did not produce exactly one key field could cause a server crash. (Bug#24056)
LAST_DAY('0000-00-00')
could cause a server
crash. (Bug#23653)
Through the C API, the member strings in
MYSQL_FIELD
for a query that contains
expressions may return incorrect results. (Bug#21635)
mysql_affected_rows()
could return values
different from mysql_stmt_affected_rows()
for the same sequence of statements. (Bug#23383)
IN()
and CHAR()
can
return NULL
, but did not signal that to the
query processor, causing incorrect results for IS
NULL
operations. (Bug#17047)
Instance Manager option-parsing code caused memory-allocation errors. (Bug#22242)
A trigger that invoked a stored function could cause a server crash when activated by different client connections. (Bug#23651)
CONCURRENT
did not work correctly for
LOAD DATA INFILE
. (Bug#20637)
The server source code had multiple exportable definitions of
the field_in_record_is_null()
function.
These are now all declared static
. (Bug#24190)
Inserting a default or invalid value into a spatial column
could fail with Unknown error
rather than a
more appropriate error. (Bug#21790)
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)
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. (Bug#21727)
SQL statements close to the size of
max_allowed_packet
could produce binary log
events larger than max_allowed_packet
that
could not be read by slave servers. (Bug#19402)
View columns were always handled as having implicit
derivation, leading to illegal mix of collation
errors
for some views in UNION
operations. Now view column column derivation comes from the
original expression given in the view definition. (Bug#21505)
If elements in a non-top-level IN
subquery
were accessed by an index and the subquery result set included
a NULL
value, the quantified predicate that
contained the subquery was evaluated to
NULL
when it should return a
non-NULL
value. (Bug#23478)
Calculation of COUNT(DISTINCT)
,
AVG(DISTINCT)
, or
SUM(DISTINCT)
when they are referenced more
than once in a single query with GROUP BY
could cause a server crash. (Bug#23184)
For a cast of a DATETIME
value containing
microseconds to DECIMAL
, the microseconds
part was truncated without generating a warning. Now the
microseconds part is preserved. (Bug#19491)
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)
The result for CAST()
when casting a value
to UNSIGNED
was limited to the maximum
signed BIGINT
value, not the maximum
unsigned value. (Bug#8663)
Some unnecessary Valgrind warnings were removed from the server. (Bug#24488, Bug#24533).
Using EXPLAIN
caused a server crash for
queries that selected from
INFORMATION_SCHEMA
in a subquery in the
FROM
clause. (Bug#22413)
Invalidating the query cache caused a server crash for
INSERT INTO ... SELECT
statements that
selected from a view. (Bug#20045)
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)
With row-based binary logging, for CREATE TABLE IF
NOT EXISTS LIKE
statements, the temporary_table
IF NOT EXISTS
clause was
not logged. (Bug#22762)
With row-based binary logging, CREATE TABLE IF NOT
EXISTS SELECT
statements were not logged properly.
(Bug#22027)
On slave servers, transactions that exceeded the lock wait timeout failed to roll back properly. (Bug#20697)
Changes to character set variables prior to an action on a replication-ignored table were forgotten by slave servers. (Bug#22877)
With lower_case_table_names
set to 1,
SHOW CREATE TABLE
printed incorrect output
for table names containing Turkish I (LATIN CAPITAL LETTER I
WITH DOT ABOVE). (Bug#20404)
When applying the group_concat_max_len
limit, GROUP_CONCAT()
could truncate
multi-byte characters in the middle. (Bug#23451)
For view renaming, the table name to filename encoding was not performed. (Bug#21370)
For some problems relating to character set conversion or
incorrect string values for INSERT
or
UPDATE
, the server was reporting truncation
or length errors instead. (Bug#18908)
The XPath operators <
and
>
, as implemented in the
ExtractValue()
function, operated in
reverse. (Bug#22823)