Note: This was an internal release only, and no binaries were published.
Functionality added or changed:
In order not to break legacy applications, support for
TYPE =
has been
restored, but now generates a warning.
engine_name
Important: This option has
been deprecated since MySQL 4.0. Beginning with
MySQL 5.2, TYPE =
will no
longer be available and will produce a syntax
error. You should not use
engine_name
TYPE
in any new applications, and you
should immediately begin conversion of existing applications
to use the ENGINE =
syntax
instead. (Bug#17501)
engine_name
The deprecated constructs in the following table now generate warnings. You should not employ them in new applications, as they are likely to be removed in a future version of MySQL. Use the equivalents shown in the table's second column instead. For the same reason, existing applications depending on the deprecated constructs should be converted to make use of the current equivalents as soon as possible. (Bug#17501)
Deprecated / Obsolete: | Current / Preferred: |
@@table_type |
@@storage_engine |
@@log_bin_trust_routine_creators |
@@log_bin_trust_function_creators |
TIMESTAMP( |
See 項11.5. 「日付時刻関数」. |
TYPE= |
ENGINE= |
BACKUP TABLE |
mysqldump, mysqlhotcopy, or MySQL Administrator |
RESTORE TABLE , LOAD TABLE FROM
MASTER
|
mysqldump, mysql, or MySQL Administrator |
SHOW TABLE TYPES |
SHOW [STORAGE] ENGINES |
SHOW INNODB STATUS |
SHOW ENGINE INNODB STATUS |
SHOW MUTEX STATUS |
SHOW ENGINE INNODB MUTEX |
SHOW BDB LOGS , SHOW LOGS
|
SHOW ENGINE BDB LOGS |
The deprecated items shown in the table are not guaranteed to be available in MySQL 5.2 or later.
Incompatible change: For
purposes of determining placement, RANGE
partitioning now treats NULL
as less than
any other value. (Formerly, NULL
was
treated as equal to zero.) See
項15.2.6. 「MySQLパーティショニングの NULL
値の取り扱い」. (Bug#15447)
Incompatible Change: The
semantics of ALTER TABLE
for partitioned
tables is changed, and now means that the storage engine used
for table t
ENGINE=X
;t
is changed to
X
.
The previous statement formerly (prior to MySQL 5.1.8) meant
that all partitioning was removed from the table. In order to
remove the partitioning of a table, the syntax ALTER
TABLE
is introduced. The t
REMOVE
PARTITIONING;REMOVE
PARTITIONING
option can be used in combination with
existing ALTER TABLE
options such as those
employed for adding or dropping columns or indexes. (Bug#17754)
Added the --sysdate-is-now
option to
mysqld to enable
SYSDATE()
to be treated as an alias for
NOW()
. See
項11.5. 「日付時刻関数」. (Bug#15101)
The NDBCluster
storage engine now supports
INSERT IGNORE
and
REPLACE
statements. Previously, these
statements failed with an error. (Bug#17431)
Events no longer support times past the end of the Unix epoch. (Formerly, such dates were interpreted as being at the beginning of the Unix epoch.) (Bug#16396)
Event names are now case-insenstive. That is (for example),
you cannot have events with the names
Myevent
and MyEvent
belonging to the same database and definer. (Bug#16415)
Builds for Windows, Linux, and Unix (except AIX) platforms now have SSL support enabled, in the server as well as in the client libraries. Because part of the SSL code is written in C++, this does introduce dependencies on the system's C++ runtime libraries in several cases, depending on compiler specifics. (Bug#18195)
Temporary tables may no longer be partitioned. (Bug#17497)
Added the --events
option to
mysqldump to enable events to be included
in the dump output. (Bug#16853)
NDB Cluster
(Disk Data): You can now have
only one log file group at any one time. See
項12.1.9. 「CREATE LOGFILE GROUP
構文」. (Bug#16386)
The syntax for CREATE PROCEDURE
and
CREATE FUNCTION
statements now includes a
DEFINER
clause. The
DEFINER
value specifies the security
context to be used when checking access privileges at routine
invocation time if the routine has the SQL SECURITY
DEFINER
characteristic. See
項17.2.1. 「CREATE PROCEDURE
およびCREATE
FUNCTION
構文」, for more
information.
When mysqldump is invoked with the
--routines
option, it now dumps the
DEFINER
value for stored routines.
The output from SHOW CREATE TABLE
is more
consistent about using uppercase for keywords. Data types
still are in lowercase. (Bug#10460)
The ExtractValue()
function with
contains()
now uses the SQL collation in
making comparisons. Perviously, comparisons were always binary
(that is, case-sensitive). (Bug#16316)
The cluster_replication
database has been
renamed to cluster
. This will effect
replication between MySQL Clusters where one cluster is
running MySQL 5.1.8 or later, and the other is running MySQL
5.1.7 or earlier. See
項14.10. 「MySQL Cluster レプリケーション」, and
especially
項14.10.4. 「レプリケーション スキーマおよびテーブル」.
The stability of CREATE
and
DROP
operations on NDB
tables containing BLOB
columns has been
improved. (Bug#17761)
More specific error messages are now given when attempting to create an excessive number of partitions or subpartitions. (Previously, no distinction was made between an excessive number of partitions and an excessive number of subpartitions.) (Bug#17393)
The mysqltest
utility now converts all
CR/LF
combinations to LF
to allow test cases intended for Windows to work properly on
UNIX-like systems. (Bug#13809)
The mysql_ping
function will now retry if
the reconnect
flag is set and error
CR_SERVER_LOST
is encountered during the
first attempt to ping the server. (Bug#14057)
mysqldump
now surrounds the
DEFINER
, SQL SECURITY
DEFINER
and WITH CHECK OPTION
clauses of a CREATE VIEW
statement with
"not in version" comments to prevent errors in earlier
versions of MySQL. (Bug#14871)
For an event having no STARTS
time
specified when it was created, the
mysql.event
table's
start
column now displays the creation time
rather than NULL
. (Bug#16537)
In addition, both the SHOW EVENTS
statement's Starts
column and the
STARTS
column of the
INFORMATION_SCHEMA.EVENTS
table are now
empty rather than NULL
when
STARTS
was not used in the CREATE
EVENT
statement.
MICROSECOND
intervals are no longer allowed
for events. (Bug#16411)
Description of the EVENT
privilege has been
changed to To create, alter, drop, and execute
events
. (Bug#16412)
The binlog_format
system variable now is
dynamic and can be changed at runtime, as described in
項5.1.2. 「レプリケーション フォーマット」.
The binlog_format
system variable now can
be set to a third format, MIXED
, as
described in
項5.1.2. 「レプリケーション フォーマット」.
A slave server may switch the format
automatically now. This happens when the
server is running in either STATEMENT
or
MIXED
format and encounters a row in the
binary log that is written in ROW
logging
format. In that case, the slave switches to row-based
replication temporarily for that event, and switches back to
the previous format afterwards.
Partition pruning was made more stable, particularly in cases
involving queries using tests for NULL
values in the WHERE
clause against
subpartitioned tables which were partitioned by LIST(
. (Bug#17891)
some_function
(col1
,
... ,colN
) )
Names of subpartitions must now be unique for an entire table, and not merely within the same partition. (Bug#15408)
The output of SHOW CREATE EVENT
no longer
qualifies the event name with the name of the schem to which
the event belongs. (Bug#17714)
The client API will now attempt to reconnect on TCP/IP if the
reconnect
flag is set, as is the case with
sockets. (Bug#2845)
The XPath last()
function is now
implemented for use with ExtractValue()
.
(Bug#16318)
Bugs fixed:
Stored routine names longer than 64 characters were silently truncated. Now the limit is properly enforced and an error occurs. (Bug#17015)
During conversion from one character set to
ucs2
, multi-byte characters with no
ucs2
equivalent were converted to multiple
characters, rather than to 0x003F QUESTION
MARK
. (Bug#15375)
Slave servers would retry the execution of a SQL statement an
infinite number of times, ignoring the value
SLAVE_TRANSACTION_RETRIES
when using the
NDB engine. (Bug#16228)
Replication of data stored in a partitioned table would cause slave servers to issue a assertion and terminate. (Bug#18436)
The mysql_close()
C API function leaked
handles for shared-memory connections on Windows. (Bug#15846)
Checks for permissions on database operations could be
performed in a case-insensitive manner (a user with
permissions on database MYDATABASE
could by
accident get permissions on database
myDataBase
), if the privilege data were
still cached from a previous check. (Bug#17279)
The server would crash when SHOW STATUS
was
called on a server linked with yaSSL
. (Bug#18310)
SELECT ... WHERE
, when column
LIKE 'A%'column
had a key and used the latin2_czech_cs
collation, caused the wrong number of rows to be returned.
(Bug#17374)
Using ALTER TABLE
to increase the length of
a BINARY(
column caused column values to be padded with spaces rather
than M
)0x00
bytes. (Bug#16857)
Execution of a stored function or trigger which inserted data into a table while running concurrent selects on the same table could result in storing incorrect data in the query cache. (Bug#14767)
NDB Cluster
: Attempting to restart a node
with dropped events still pending would fail. (Bug#18491)
NDB Cluster
: In asynchronous replication
scenarios, binary log events could be lost on the remote
mysqld. (Bug # 18472)
NDB Cluster
: Two mysqld
processes starting at the same time could cause a race
condition. (Bug#18472)
NDB Cluster
: Two mysqld
processes did not synchronise DROP TABLE
binary log events correctly. (Bug#18395)
NDB Cluster
: When multiple node restarts
were attempted without allowing each restart to complete, the
error message returned was Array index out of
bounds rather than Too many crashed
replicas. (Bug#18349)
A SELECT ... ORDER BY ...
from a view
defined using a function could crash the server. An example of
such a view might be CREATE VIEW v1 AS SELECT
SQRT(c1) FROM t1
. (Bug#18386)
REPAIR TABLE
, OPTIMIZE
TABLE
, and ALTER TABLE
operations
on transactional tables (or on tables of any type on Windows)
could corrupt triggers associated with those tables. (Bug#18153)
MyISAM
: Performing a bulk insert on a table
referenced by a trigger would crash the table. (Bug#17764)
Using ORDER BY
within a stored
procedure (where intvar
intvar
is an
integer variable or expression) would crash the server. (Bug#16474)
Note: The use of an integer
i
in an ORDER BY
clause for sorting the
result by the
i
i
th
column is deprecated (and non-standard). It should
not be used in new applications. See
項12.2.7. 「SELECT
構文」.
A SELECT
using a function against a nested
view would crash the server. (Bug#15683)
ALTER TABLE ... ADD COLUMN ... AFTER ...
failed when used on partitioned tables. (Bug#16806)
NDB Cluster
: A timeout in the handling of
an ABORT
condition with more that 32
operations could yield a node failure. (Bug#18414)
NDB Cluster
: A node restart immediately
following a CREATE TABLE
would fail.
Important: This
fix supports 2-node Clusters only. (Bug#18385)
NDB Cluster
: In event of a node failure
during a rollback, a 「false」 lock could be
established on the backup for that node, which lock could not
be removed without restarting the node. (Bug#18352)
NDB Cluster
: The cluster created a crashed
replica of a table having an ordered index — or when
logging was not enabled, of a table having a table or unique
index — leading to a crash of the cluster following 8
successibe restarts. (Bug#18298)
NDB Cluster
: When replacing a failed master
node, the replacement node could cause the cluster to crash
from a buffer overflow if it had an excessively large amount
of data to write to the cluster log. (Bug#18118)
NDB Cluster
: Restarting nodes were allowed
to start and join the cluster too early. (Bug#16772)
NDB Cluster
: Issuing a DROP
LOGFILE GROUP
statement would cause
ndbd processes to crash if MySQL had been
compiled with gcc4. (Bug#18295)
Using triggers with partitioned InnoDB
tables led to incorrect results. (Bug#17744)
Calling CREATE TABLE
or ALTER
TABLE
twice on a partitioned table in a stored
procedure or a prepared statement resulted in errors and
sometimes server crashes. (Bug#17290)
A problem with NULL
s and interval mapping
sometimes caused incorrect results or crashes when trying to
use less-than searches on partitioned tables. (Bug#17173)
CREATE TABLE ... PARTITION ... AS SELECT
...
would cause the server to crash. (Bug#15336)
Creating a partition which depends on an expression containing a column using the UTF8 character set would cause the server to crash. (Bug#14367)
Invoking more than once a prepared statement that creates a partitioned table would crash the server. (Bug#14350)
NDB Cluster
: A SELECT ... ORDER
BY
query on an explicitly partitioned Cluster table
with no explicit indexes would crash the server. (Bug#17899)
The ExtractValue()
function did not
return an error when passed an invalid XPath string. (Bug#18172)
Stored procedures that call UDFs and pass local string variables caused server crashes. (Bug#17261)
Connecting to a server with a UCS2 default character set with a client using a non-UCS2 character set crashed the server. (Bug#18004)
Loading of UDFs in a statically linked MySQL caused a server crash. UDF loading is now blocked if the MySQL server is statically linked. (Bug#11835)
A security enhancement in Visual Studio 8 could cause a MySQL
debug server compiled with it to hang when running
SELECT
queries against partitioned tables.
(Bug#17722)
NDB Cluster
:
auto_increment
values were not propagated
correctly in statement-based replication. (Bug#18208)
Rpeated invocations of a stored procedure containing a
SHOW CREATE EVENT
statement would result in
the error Packets out of order. (Bug#17403)
Repeated invocations of a stored procedure containing a
CREATE EVENT
or ALTER
EVENT
statement would crash the server. (Bug#16408)
Renaming and adding a new column to a partitioned table in the
same ALTER TABLE
statement caused the
server to crash. (Bug#17772)
ALTER TABLE ... REBUILD PARTITION
with no
partition name specified would crash the server. (Bug#17940)
Trying to add a partition to a table having subpartitions could crash the server. (Bug#17140)
Attempting to use a conflicting VALUES
clause in ALTER TABLE ... ADD PARTITION
caused the server to crash. An example of such a conflicting
clause would be that uses VALUES LESS THAN
(
(which
indicates a range) with a table that is partitioned by
constant
)LIST
. (Bug#17127)
ALTER TABLE ... COALESCE PARTITION
failed
with an Out of Memory error. (Bug#16810)
Names of subpartitions were not displayed in the output of
SHOW CREATE TABLE
. (Bug#16370)
Setting up subpartitions on at least one but not all the partitions of a partitioned table caused the server to crash. (Bug#15407)
Using the position()
function in the XPath
argument to ExtractValue()
crashed the
server. (Bug#18171)
A query with a WHERE
condition
failed on a table partitioned by date_column
>
date_value
RANGE
.
(Bug#17894)
Cursors in stored routines could cause a server crash. (Bug#16887)
Replication slaves could not replicate triggers from older
servers that included no DEFINER
clause in
the trigger definition. Now the trigger executes with the
privileges of the invoker (which on the slave is the slave SQL
thread). (Bug#16266)
Character set conversion of string constants for
UNION
of constant and table column was not
done when it was safe to do so. (Bug#15949)
NULL
values were written to the
mysql.slow_log
table incorrectly. (Bug#17600)
A query with a WHERE
condition
failed on a table partitioned by date_column
>
date_value
RANGE
.
(Bug#17894)
A failed ALTER TABLE ... ADD PRIMARY KEY
on
a partitioned table would result in bad table metadata and
could possibly crash the server. (Bug#17097)
No error was reported when subpartitions were defined for a non-subpartitioned table. (Bug#15961)
Searches on indexed columns of partitioned tables failed to find all matching rows following updates of the indexed columns. (Bug#14526)
The DEFINER
value for stored routines was
not replicated. (Bug#15963)
Use of TRUNCATE TABLE
for a
TEMPORARY
table on a master server was
propagated to slaves properly, but slaves did not decrement
the Slave_open_temp_tables
counter
properly. (Bug#17137)
SELECT COUNT(*)
for a
MyISAM
table could return different results
depending on whether an index was used. (Bug#14980)
Updating a view that filters certain rows to set a filtered
out row to be included in the table caused infinite loop. For
example, if the view has a WHERE clause of salary >
100
then issuing an UPDATE statement of SET
salary = 200 WHERE id = 10
, caused an infinite loop.
(Bug#17726)
Creating a table with the same name as the mapped name of
another table caused a server crash. For example, if MySQL
maps the table name txu#P#p1
to
txu@0023P@0023p1
on disk, creating another
table named txu@0023P@0023p1
crashed the
server. (Bug#17142)
NDB Cluster
: Adding an index together with
replication could cause mysqld to crash.
(Bug#18106)
NDB Cluster
: Insufficient
StringBuffer
memory when attempting to
create a trigger caused the server to crash. (Bug#18101)
NDB Cluster
: Variable-length columns used
as primary keys were not handled correctly. (Bug#18075)
NDB Cluster
: Row-based replication could
fail with tables using VARCHAR
columns for
primary keys and having BLOB
columns. (Bug#18067)
NDB Cluster
: CREATE UNIQUE
INDEX
on a column containing non-unique data could
cause one or more ndbd nodes to hang or
crash. (Bug#18040)
NDB Cluster
(Disk Data): CREATE
UNIQUE INDEX
failed with Error 4243:
Index not found. (Bug#18039)
NDB Cluster
: Node recovery of tables with
VARCHAR
columns using character sets was
inconsistent, which could cause a number of issues, including
the data nodes failing to restart and ALTER
TABLE
statements to hang. (Bug#18026)
NDB Cluster
: In some cases, a single
ndbd node would fail following a system
restart. (Bug#17854)
NDB Cluster
(Replication): The binary log
on the secondary master was not being set up correctly
following a table rename. (Bug#17838)
NDB Cluster
: With a single replica,
transactions waiting in the log synchronisation queue were not
being restarted, causing them to be aborted. (Bug#17536)
NDB Cluster
(Disk Data): It was not
possible to create more than 9 tablespaces. (Bug#16913)
NDB Cluster
: Inserting and deleting
BLOB
column values while a backup was in
process could cause the loss of an ndbd
node. (Bug#14028)
NDB Cluster
:
UNDO_BUFFER_SIZE
was limited to 17 MB. (Bug#16657, Bug#17890)
Using ALTER TABLE ... REBUILD PARTITION
without specifying the name of the partition caused the server
to crash, rather than reporting a syntax error. (Bug#17947)
When attempting to insert a 0
into a
LIST
-partitioned table that had no
value-list containing 0
, no error was
reported. (Bug#15253)
If the server was started with the
--skip-grant-tables
option, it was impossible
to create a trigger or a view without explicitly specifying a
DEFINER
clause. (Bug#16777)
The server would execute stored routines that had a non-existent definer. (Bug#13198)
NDB Cluster
: A simultaneous
RENAME
of several tables was logged
multiple times. (Bug#17827)
NDB Cluster
: Trying to perform a
DELETE
from a Cluster table following a
LOCK TABLES
would cause the
ndbd processes to hang. (Bug#17812)
ALTER TABLE ... REORGANIZE PARTITION
failed
with Error on rename of
filename
... on
Windows. (Bug#17720)
NDB Cluster
: ALTER TABLE ... ADD
INDEX
failed with ERROR 756: Index on
disk column is not supported when run against a
Disk Data table having a primary key. (Bug#17888)
NDB Cluster
: DELETE
operations on NDB
tables could cause memory
leaks. (Bug#16874)
NDB Cluster
: Some query cache statistics
were not always correctly reported for Cluster tables. (Bug#16795)
The EXAMPLE
storage engine did not work on
Windows. (Bug#17721)
For FEDERATED
tables, a
SELECT
statement with an ORDER
BY
clause did not return rows in the proper order.
(Bug#17377)
Setting the myisam_repair_threads
system
variable to a value larger than 1 could cause corruption of
large MyISAM
tables. (Bug#11527)
The length of a VARCHAR()
column that used
the utf8
character set would increase each
time the table was re-created in a stored procedure or
prepared statement, eventually causing the CREATE
TABLE
statement to fail. (Bug#13134)
The MySQL server could crash with out of memory errors when
performing aggregate functions on a DECIMAL
column. (Bug#17602)
INSERT
statements executed by scheduled
events were not written to the general log. (Bug#16413)
A memory leak caused warnings on slaves for certain statements that executed without warning on the master. (Bug#16175)
Naming a partition using the characters
Ç or
ç (「c-cedilla」;
Unicode 00C7
or 00E7
)
made unreadable the table containing the partition. (Bug#14527)
The self()
XPath function was not handled
correcty by ExtractValue()
. (Bug#16315)
The ExtractValue()
function would not
accept expressions which matched element names containing an
underscore character. (Bug#16320)
NDB Cluster
: Trying to update very large
partitioned tables using the NDB
storage
engine sometimes caused the server to crash. (Bug#16385, Bug#17806)
Slow queries executed by scheduled events were not being written to the slow query log. (Bug#16426)
On Linux, creation of table partitions failed within a stored procedure. (Bug#14363)
mysql_fix_privilege_tables didn't create
the mysql.plugin
table. (Bug#17568)
Improper checking of binary log statements could result in a server crash. (Bug#17457)
The ExtractValue()
function allowed the use
of the !
character in identifiers by
ignoring the illegal character. This is now correctly reported
as a syntax error. (Bug#16313)
NDB Cluster
: Trying to insert a value into
a nonexistent LIST
partition of an
NDB
table would cause the server to crash.
(Bug#17763)
NDB Cluster
: ALTER TABLE
on a partitioned NDB
table could cause the
server to crash. (Bug#17499)
NDB Cluster
: A repeated
SELECT
on a partitioned table that used the
NDB
storage engine could cause the server
to crash. (Bug#17390)
NDB Cluster
: Using ALTER TABLE ...
ADD PARTITION
on a table partitioned by
LIST
would cause the client to hang. (Bug#17701)
Triggers created without BEGIN
and
END
clauses resulted in 「You have an
error in your SQL syntax」 errors when dumping and
replaying a binary log. (Bug#16878)
The RENAME TABLE
statement did not move
triggers to the new table. (Bug#13525)
Clients compiled from source with the
--without-readline
did not save command
history from session to session. (Bug#16557)
Stored routines that contained only a single statement were
not written properly to the dumpfile when using
mysqldump
. (Bug#14857)
Issuing GRANT EXECUTE
on a procedure would
display any warnings related to the creation of the procedure.
(Bug#7787)
Attempting to add a new partition to a table partitioned by a unique key would cause an Out of memory error. (Bug#17169)
In a highly concurrent environment, a server crash or deadlock could result from execution of a statement that used stored functions or activated triggers coincident with alteration of the tables used by these functions or triggers. (Bug#16593)