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_tablendb_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 engineNDB, 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_tableIF 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)
