Functionality added or changed:
Incompatible change:
TYPE =
is no longer
accepted as a synonym for the engine_name
ENGINE =
table option.
(engine_name
TYPE
has been deprecated since MySQL 4.0.)
Several changes were made to make upgrades easier:
Added the mysql_upgrade program that checks all tables for incompatibilities with the current version of MySQL Server and repairs them if necessary. This program should be run for each MySQL upgrade (rather than mysql_fix_privilege_tables). See 項4.5.4. 「mysql_upgrade — MySQL アップグレードのテーブル チェック」.
Added the FOR UPGRADE
option for the
CHECK TABLE
statement. This option
checks whether tables are incompatible with the current
version of MySQL Server.
Added the --check-upgrade
to
mysqlcheck that invokes CHECK
TABLE
with the FOR UPGRADE
option. Added the --fix-db-names
and
--fix-table-names
options to
mysqlcheck.
Incompatible change: The
mysql_stmt_attr_get()
C API function now
returns a boolean rather than an unsigned int for
STMT_ATTR_UPDATE_MAX_LENGTH
. (Bug#16144)
Added the --wait-timeout
option to
mysqlmanager to allow configuration of the
timeout for dropping an inactive connection, and increased the
default timeout from 30 seconds to 28,800 seconds (8 hours).
(Bug#12674, Bug#15980)
All subpartitions within a given partitioned table are now guaranteed to have unique names. (Bug#15408)
Added the RENAME DATABASE
statement.
The SQL mode in effect at the time an event is created or altered is recorded and used during event execution. (Bug#16407)
Added the PROCESSLIST
table to
INFORMATION_SCHEMA
.
Attempting to read pre-5.1.6 partitioned tables with a MySQL 5.1.7 (or later) server now generates a suitable warning message. (Bug#16695)
For additional information about this issue, see 項C.1.11. 「Changes in release 5.1.6 (01 February 2006)」.
NDB Cluster
: Attempting to SELECT
... FROM INFORMATION_SCHEMA.FILES
now raises a
warning in the event that the cluster has crashed. (Bug#17087)
NDB Cluster
: It is now possible to
replicate NDB
tables having no explicit
primary key. See 項14.10. 「MySQL Cluster レプリケーション」.
Removed the have_isam
and
have_raid
system variables.
Status messages added to ndb_restore to allow users to know that data files for Disk Data are being created. (Bug#16873)
Added the IN NATURAL LANGUAGE MODE
and
IN NATURAL LANGUAGE MODE WITH QUERY
EXPANSION
modifiers for full-text searches. See
項11.7. 「全文検索関数」.
Creator privileges are now checked for all events before execution. (Bug#17289)
CREATE EVENT
, DROP
EVENT
, and ALTER EVENT
statements
are not allowed in triggers. (Bug#16410)
New charset
command added to
mysql command-line client. By typing
charset
or
name
\C
(such as
name
\C UTF8
), the client character set can be
changed without reconnecting. (Bug#16217)
In row-based replication, when executing a Rows_log_event, the
associated table was locked, the rows applied and the lock
released. This did not work since there are storage engines
that count locks and perform an autocommit when the number of
locks reach zero. Now we ensure that all table maps come
before all ROWS
events in a statement.
Bugs fixed:
NDB Cluster
: ndbd
restart could sometimes fail due to incorrect memory access.
(Bug#17417)
Execution times for scheduled events were not calculated correctly: the last execution time was used as a base rather than the actual start time. (Bug#17494)
Using an XPath expression containing =
with
ExtractValue()
caused the server to crash.
(Bug#16242)
NDB Cluster
: An unhandled resources issue
could cause node failure with a DELETE FROM
TABLE
affecting thousands of rows. (Bug#16492)
NDB Cluster
: Cluster tables not having an
explicit primary key could not be replicated. (Bug#14541)
For a transaction that used MyISAM
and
InnoDB
tables, interruption of the
transaction due to a dropped connection on a master server
caused slaves to lose synchrony. (Bug#16559)
SELECT
with GROUP BY
on
a view could cause a server crash. (Bug#16382)
SET TRANSACTION ISOLATION LEVEL
acted like
SET SESSION TRANSACTION ISOLATION LEVEL
.
That is, it set the isolation level for longer than the next
transaction. (Bug#7955)
SHOW CREATE TABLE
produced extraneous
spaces after the PRIMARY KEY
keywords. (Bug#13883)
If the query optimizer transformed a GROUP
BY
clause in a subquery, it did not also transform
the HAVING
clause if there was one,
producing incorrect results. (Bug#16603)
SUBSTRING_INDEX()
could yield inconsistent
results when applied with the same arguments to consecutive
rows in a query. (Bug#14676)
myisam_ftdump did not work for
FULLTEXT
indexes associated with a parser
plugin. (Bug#17116)
BIT
fields were not properly handled when
using row-based replication. (Bug#13418)
Column counts were encoded incorrectly in the binary log for row-based logging format. (Bug#17678)
Data truncations on non-UNIQUE
indexes
could crash InnoDB
when using multi-byte
character sets. (Bug#17530)
An ALTER DATABASE
statement on a
replication master crashed the slaves. (Bug#17521)
Partitioning with certain SUBPARTITION BY
HASH
clauses caused an error when querying for a
partitioned column using an IS NULL
comparison. (Bug#17430, Bug#17432)
The mysql_fix_privilege_tables.sql
script
did not properly initialize the Event_priv
column to 'Y'
for those accounts that
should have the EVENT
privilege. (Bug#16400)
NDB Cluster
: Inserting the output of
REPEAT('
into a
some_string
',
some_int
)BLOB
column resulted in the error
Invalid blob attributes or invalid blob parts
table. (Bug#17505)
NDB Cluster
: Row-based replication was not
being set up correctly if a backup was already in progress.
For example, connecting a mysqld instance
to a cluster which was being backed up would result in the
message NDB: skipping setup table
test.t1 being written to the error log. (Bug#17459)
NDB Cluster
: CREATE TEMPORARY
TABLE
of a Cluster table would fail with an
Unsupported error or crash the server.
(Bug#17210, Bug#16552)
NDB Cluster
: UNIQUE
keys
in Cluster tables were limited to 225 bytes in length. (Bug#15918)
NDB Cluster
: REPLACE
failed when attempting to update a primary key value in a
Cluster table. (Bug#14007)
NDB Cluster
: Creating
NDB
tables containing
BLOB
columns but no primary key caused
unpredictable behavior. (Bug#17559)
Creating an event and using a whitespace character other than
space following the DO
keyword caused a
server crash. (Bug#17453)
Previously, a stored function invocation was written to the
binary log as DO
if the
invocation changes data and occurs within a non-logged
statement, or if the function invokes a stored procedure that
produces an error. These invocations now are logged as
func_name
()SELECT
instead for
better control over error code checking (slave servers could
stop due to detecting a different error than occurred on the
master). (Bug#14769)
func_name
()
CHECKSUM TABLE
returned different values on
MyISAM table depending on whether the QUICK
or EXTENDED
options were used. (Bug#8841)
Querying the INFORMATION_SCHEMA.PARTITIONS
table on a non-max server caused a server crash. This also
happened following the creation of a table with a very large
number (hundreds) of partitions. (Bug#16591, Bug#17141)
Attempting to add a new partition to a table partitioned by a unique key would cause an Out of memory error. (Bug#17169)
MySQL server dropped client connection for certain
SELECT
statements against views defined
that used MERGE
algorithm. (Bug#16260)
A statement containing GROUP BY
and
HAVING
clauses could return incorrect
results when the HAVING
clause contained
logic that returned FALSE
for every row.
(Bug#14927)
Using GROUP BY
on column used in
WHERE
clause could cause empty set to be
returned. (Bug#16203)
DROP DATABASE
did not drop events for the
database. (Bug#16406)
Race conditions between event creation, dropping, and execution could result in a server crash or hang. (Bug#17373)
SET sql_mode =
, where
N
N
> 31, did not work properly.
(Bug#13897)
Repeated invocation of my_init()
and
my_end()
caused corruption of character set
data and connection failure. (Bug#6536)
When used with the ExtractValue()
function,
an XPath expression having no leading 「
/
」 character would crash the
server. (Bug#16234)
A SELECT
from the last partition of a
subpartitioned table having a UNIQUE KEY
could crash the MySQL Server. (Bug#16907)
A SELECT
on a subpartitioned table having a
multiple-column PRIMARY
or UNIQUE
KEY
, and whose partitioning function used only the
first column of the key, could cause mysqld
to crash. (Bug#16901)
Using REPLACE INTO
on a partitioned table
having a primary key would crash the server in the event of a
duplicate key error. (Bug#16782)
DROP TABLE
would sometimes fail on a table
having subpartitions that used the default storage engine.
(Bug#16775)
NDB Cluster
: Sharing of table names
containing special characters between multiple SQL nodes was
not handled correctly when binary logging was enabled (a
timeout error resulted). (Bug#17415)
NDB Cluster
: Table definitions were not
shared between multiple SQL nodes in a cluster without binary
logging being enabled. (Bug#17414)
NDB Cluster
: Cluster log file paths were
truncated to 128 characters. They may now be as long as
MAX_PATH
(the maximum path length permitted
by the operating system). (Bug#17411)
SHOW CREATE EVENT
displayed no output. (Bug#16423)
Statements that contained Unicode characters were not logged to the log tables correctly. (Bug#16905)
On Windows platforms, some attempts to create partitioned
tables from the command line would cause the
mysql
client to hang. (Bug#17082)
NDB Cluster
: SHOW CREATE
TABLE
would fail when run against a table created in
a different session. (Bug#17340)
NDB Cluster
: Following multiple forced
shutdowns and restarts of data nodes, DROP
DATABASE
could fail. (Bug#17325)
NDB Cluster
: An UPDATE
with an inner join failed to match any records if both tables
in the join did not have a primary key. (Bug#17257)
NDB Cluster
: A DELETE
with a join in the WHERE
clause failed to
retrieve any records if both tables in the join did not have a
primary key. (Bug#17249)
The NDB Cluster
storage engine did not
allow views to be updated. (Bug#17206)
NDB Cluster
: Row-based replication of a
cluster failed to take --binlog_ignore_db
settings
into account. (Bug#17188)
Trying to create a partitioned table with more than 32 attributes failed. (Bug#17179)
NDB Cluster
: When attempting to import data
into an NDB
table using LOAD DATA
INFILE
, the server would hang in the event of a
duplicate key error. (Bug#17154)
NDB Cluster
: In some cases, LOAD
DATA INFILE
did not load all data into
NDB
tables. (Bug#17081)
NDB Cluster
: Performing large numbers of
data manipulation statements on cluster tables using Disk Data
could lead to a server crash. ()
NDB Cluster
: In some cases, a cluster using
Disk Data tables could not be restarted following a normal
shutdown. (Bug#16872)
NDB Cluster
: The REDO
log would become corrupted (and thus unreadable) in some
circumstances, due to a failure in the query handler. (Bug#17295)
NDB Cluster
: CREATE TABLE
failed when
new_tbl
LIKE
old_tbl
;old_tbl
used the
NDB
storage engine. (Bug#17005)
NDB Cluster
: No error message was generated
for setting NoOfFragmentLogFiles
too low.
(Bug#13966)
NDB Cluster
: No error message was generated
for setting MaxNoOfAttributes
too low. (Bug#13965)
The SELECT
privilege was required for
triggers that performed no selects. (Bug#15196)
The UPDATE
privilege was required for
triggers that performed no updates. (Bug#15166)
CAST(... AS TIME)
operations returned
different results when using versus not using
prepared-statement protocol. (Bug#15805)
Killing a long-running query containing a subquery could cause a server crash. (Bug#14851)
InnoDB
could display an incorrect error
message for a cascading update. (Bug#9680)
A RETURN
statement within a trigger caused
a server crash. RETURN
now is disallowed
within triggers. To exit immediately, use
LEAVE
. (Bug#16829)