Functionality added or changed:
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)
Incompatible Change: Due to a change in the naming scheme for partitioning and subpartitioning files, it is not possible for the server to read partitioned tables created in previous MySQL versions. Attempting to read pre-5.1.6 partitioned tables with a MySQL 5.1.7 or later server now generates a suitable warning message.
Two possible workarounds are:
Create a nonpartitioned table with the same table
schema using a standard CREATE
TABLE
statement (that is, with no
partitioning clauses)
Issue a SELECT INTO
to copy the
data into the nonpartitioned table before the
upgrade
Following the upgrade, you can partition the new table
using ALTER TABLE ... PARTITION BY ...
.
Alternatively, you can dump the table using
mysqldump prior to upgrading and reload
it afterwards with LOAD
DATA
.
In either case, you should drop the pre-5.1.6 partitioned tables before upgrading to 5.1.6 or later.
If any partitioned tables that were created prior to MySQL
5.1.6 are present following an upgrade to MySQL 5.1.6 or
later, it is also not possible to read from the
INFORMATION_SCHEMA.PARTITIONS
table, nor will you be able to drop those tables or the
database or databases in which they are located. In this
event, you must:
Shut down mysqld
Manually delete the table, partition, and (if any) subpartition files
Restart the MySQL Server
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.)
MySQL Cluster:
Attempting to SELECT ... FROM
INFORMATION_SCHEMA.FILES
now raises a warning in the
event that the cluster has crashed.
(Bug#17087)
Replication:
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.
Disk Data: Status messages have been added to ndb_restore to enable users to know that data files for Disk Data are being created. (Bug#16873)
Cluster Replication:
It is now possible to replicate NDB
tables having no explicit primary key. See
Section 17.6, “MySQL Cluster Replication”.
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)
The SQL mode in effect at the time an event is created or altered is recorded and used during event execution. (Bug#16407)
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)
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#15980, Bug#12674)
All subpartitions within a given partitioned table are now guaranteed to have unique names. (Bug#15408)
mysqlimport now has a
--use-threads=
option for loading data files in parallel using
N
N
threads.
Added the RENAME DATABASE
statement.
Added the PROCESSLIST
table to
INFORMATION_SCHEMA
.
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 Section 4.4.8, “mysql_upgrade — Check Tables for MySQL Upgrade”.
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.
Added the IN NATURAL LANGUAGE MODE
and
IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION
modifiers for full-text searches. See
Section 11.8, “Full-Text Search Functions”.
Bugs fixed:
MySQL Cluster:
Creating NDB
tables containing
BLOB
columns but no primary key
caused unpredictable behavior.
(Bug#17559)
MySQL 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)
MySQL Cluster: ndbd restarts could sometimes fail due to incorrect memory access. (Bug#17417)
MySQL 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)
MySQL Cluster: Table definitions were not shared between multiple SQL nodes in a cluster without binary logging being enabled. (Bug#17414)
MySQL 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)
MySQL Cluster:
SHOW CREATE TABLE
would fail when
run against a table created in a different session.
(Bug#17340)
MySQL Cluster:
Following multiple forced shutdowns and restarts of data nodes,
DROP DATABASE
could fail.
(Bug#17325)
MySQL Cluster:
The REDO
log would become corrupted (and thus
unreadable) in some circumstances, due to a failure in the query
handler.
(Bug#17295)
MySQL 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)
MySQL 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)
MySQL Cluster:
CREATE TEMPORARY
TABLE
of a Cluster table would fail with an
Unsupported error or crash the server.
(Bug#17210, Bug#16552)
MySQL Cluster: The storage engine did not allow views to be updated. (Bug#17206)
MySQL 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)
MySQL Cluster:
In some cases, LOAD
DATA INFILE
did not load all data into
NDB
tables.
(Bug#17081)
MySQL Cluster:
CREATE TABLE
failed when
new_tbl
LIKE
old_tbl
;old_tbl
used the
NDB
storage engine.
(Bug#17005)
MySQL Cluster:
An unhandled resources issue could cause node failure with a
DELETE FROM TABLE
affecting thousands of
rows.
(Bug#16492)
MySQL Cluster:
UNIQUE
keys in Cluster tables were limited to
225 bytes in length.
(Bug#15918)
MySQL Cluster:
REPLACE
failed when attempting to
update a primary key value in a Cluster table.
(Bug#14007)
MySQL Cluster:
No error message was generated for setting
NoOfFragmentLogFiles
too low.
(Bug#13966)
MySQL Cluster:
No error message was generated for setting
MaxNoOfAttributes
too low.
(Bug#13965)
MySQL Cluster: Performing large numbers of data manipulation statements on cluster tables using Disk Data could lead to a server crash.
Cluster Replication: Replication:
Row-based replication of a cluster failed to take
--binlog-ignore-db
settings into
account.
(Bug#17188)
Replication:
An ALTER DATABASE
statement on a
replication master crashed the slaves.
(Bug#17521)
Replication:
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)
Replication:
Previously, a stored function invocation was written to the
binary log as DO
if the
invocation changes data and occurs within a nonlogged 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
()
Replication:
BIT
fields were not properly
handled when using row-based replication.
(Bug#13418)
Disk Data: In some cases, a cluster using Disk Data tables could not be restarted following a normal shutdown. (Bug#16872)
Cluster Replication:
Row-based replication was not 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 tbl_name
being written to the error log.
(Bug#17459)
Cluster Replication: Cluster tables not having an explicit primary key could not be replicated. (Bug#14541)
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)
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)
Creating an event and using a whitespace character other than
space following the DO
keyword
caused a server crash.
(Bug#17453)
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)
Race conditions between event creation, dropping, and execution could result in a server crash or hang. (Bug#17373)
Trying to create a partitioned table with more than 32 attributes failed. (Bug#17179)
Attempting to add a new partition to a table partitioned by a unique key would cause an Out of memory error. (Bug#17169)
myisam_ftdump did not work for
FULLTEXT
indexes associated with a parser
plugin.
(Bug#17116)
On Windows platforms, some attempts to create partitioned tables
from the command line would cause the mysql
client to hang.
(Bug#17082)
A SELECT
from the last partition
of a subpartitioned table having a UNIQUE KEY
could crash the MySQL Server.
(Bug#16907)
Statements that contained Unicode characters were not logged to the log tables correctly. (Bug#16905)
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)
A RETURN
statement within a
trigger caused a server crash.
RETURN
now is disallowed within
triggers. To exit immediately, use
LEAVE
.
(Bug#16829)
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)
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)
Querying the
INFORMATION_SCHEMA.PARTITIONS
table
on a nonmax 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)
SHOW CREATE EVENT
displayed no
output.
(Bug#16423)
DROP DATABASE
did not drop events
for the database.
(Bug#16406)
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)
SELECT
with GROUP
BY
on a view could cause a server crash.
(Bug#16382)
MySQL server dropped client connection for certain
SELECT
statements against views
defined that used MERGE
algorithm.
(Bug#16260)
Using an XPath expression containing =
with
ExtractValue()
caused the server
to crash.
(Bug#16242)
When used with the ExtractValue()
function, an XPath expression having no leading
“/
” character would crash the
server.
(Bug#16234)
Using GROUP BY
on column used in
WHERE
clause could cause empty set to be
returned.
(Bug#16203)
CAST(... AS TIME)
operations
returned different results when using versus not using
prepared-statement protocol.
(Bug#15805)
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)
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)
Killing a long-running query containing a subquery could cause a server crash. (Bug#14851)
SUBSTRING_INDEX()
could yield
inconsistent results when applied with the same arguments to
consecutive rows in a query.
(Bug#14676)
SET sql_mode =
,
where N
N
> 31, did not work
properly.
(Bug#13897)
SHOW CREATE TABLE
produced
extraneous spaces following the keywords PRIMARY
KEY
.
(Bug#13883)
InnoDB
could display an incorrect error
message for a cascading update.
(Bug#9680)
CHECKSUM TABLE
returned different
values for MyISAM
tables depending on whether
the QUICK
or EXTENDED
option was used.
(Bug#8841)
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)
Repeated invocation of my_init()
and
my_end()
caused corruption of character set
data and connection failure.
(Bug#6536)
User Comments
Add your own comment.