This was an internal release only, and no binaries were published.
Functionality added or changed:
Cluster Replication: Incompatible Change:
cluster_replication database has been
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 Section 17.6, “MySQL Cluster Replication”, and
especially Section 17.6.4, “MySQL Cluster Replication Schema and Tables”.
The semantics of
tables is changed, and now means that the storage engine used
t is changed to
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
TABLE is introduced. The
PARTITIONING option can be used in combination with
ALTER TABLE options such
as those employed for adding or dropping columns or indexes.
For purposes of determining placement,
partitioning now treats
NULL as less than any
other value. (Formerly,
NULL was treated as
equal to zero.) See
Section 18.2.6, “How MySQL Partitioning Handles
Triggers from older servers that included no
DEFINER clause in the trigger definition now
execute with the privileges of the invoker (which on the slave
is the slave SQL thread). Previously, replication slaves could
not replicate such triggers.
A slave server may now switch the replication format
automatically. This happens when the server is running in either
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.
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)
Partition pruning was made more stable, particularly in cases
involving queries using tests for
WHERE clause against subpartitioned
tables which were partitioned by
The following deprecated constructs now generate warnings, and they are removed as of MySQL 5.5. Where alternatives are shown, applications should be updated to use them. Existing applications that depend on the deprecated constructs should be converted to make use of the current equivalents as soon as possible. You should not employ them in new applications.
SHOW TABLE TYPES SQL statement (use
SHOW PLUGIN SQL statement (use
data type: The ability to specify a display width of
N (use without
server options to set replication parameters (use the
CHANGE MASTER TO statement
SHOW BDB LOGS and
LOGS are removed as of MySQL 5.1.12.
In order not to break legacy applications, support for
TYPE = — deprecated since MySQL 4.0 — has
been restored, but now generates a warning.
Beginning with MySQL 5.5,
longer be available and will produce a syntax
You should not use
TYPE in any
new applications, and you should immediately begin conversion
of existing applications to use the
Temporary tables may no longer be partitioned. (Bug#17497)
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)
For an event having no
STARTS time specified
when it was created, the
start column now displays the creation time
In addition, both the
Starts column and the
STARTS column of the
INFORMATION_SCHEMA.EVENTS table are
now empty rather than
STARTS was not used in the
CREATE EVENT statement.
Event names are now case-insenstive. That is (for example), you
cannot have events with the names
MyEvent belonging to the same database and
MICROSECOND intervals are no longer allowed
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)
Names of subpartitions must now be unique for an entire table, and not merely within the same partition. (Bug#15408)
mysqldump now surrounds the
WITH CHECK OPTION
clauses of a
statement with "not in version" comments to prevent errors in
earlier versions of MySQL.
mysqltest utility now converts all
CR/LF combinations to
to allow test cases intended for Windows to work properly on
The client API now attempts to reconnect using TCP/IP if the
reconnect flag is set, as is the case with
The syntax for
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
DEFINER characteristic. See
Section 12.1.15, “
CREATE PROCEDURE and
CREATE FUNCTION Syntax”, for more information.
Partitioning: MySQL Cluster:
Trying to insert a value into a nonexistent
LIST partition of an
NDB table would cause the server to
Beginning with MySQL 5.1.12, user-defined partitioning types
KEY were disabled for
MySQL Cluster: Replication:
AUTO_INCREMENT values were not propagated
correctly in statement-based replication.
MySQL Cluster: Replication: (Replication): The binary log on the secondary master was not being set up correctly following a table rename. (Bug#17838)
MySQL Cluster: Attempting to restart a node with dropped events still pending would fail. (Bug#18491)
A timeout in the handling of an
condition with more that 32 operations could yield a node
A node restart immediately following a
CREATE TABLE would fail.
This fix supports 2-node Clusters only.
MySQL 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)
MySQL 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)
MySQL 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 successive restarts. (Bug#18298)
DROP LOGFILE GROUP statement would
cause ndbd processes to crash if MySQL had
been compiled with gcc4.
MySQL 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)
StringBuffer memory when
attempting to create a trigger caused the server to crash.
MySQL Cluster: Variable-length columns used as primary keys were not handled correctly. (Bug#18075)
CREATE UNIQUE INDEX on a column containing
nonunique data could cause one or more ndbd
nodes to hang or crash.
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.
SELECT ... ORDER BY query on an explicitly
partitioned Cluster table with no explicit indexes would crash
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.
MySQL Cluster: In some cases, a single ndbd node failed following a system restart. (Bug#17854)
RENAME of several tables was
logged multiple times.
ALTER TABLE ... ADD PARTITION on a
table partitioned by
LIST would cause the
client to hang.
MySQL Cluster: With a single replica, transactions waiting in the log synchronisation queue were not being restarted, causing them to be aborted. (Bug#17536)
MySQL Cluster: Some query cache statistics were not always correctly reported for Cluster tables. (Bug#16795)
MySQL Cluster: Restarting nodes were allowed to start and join the cluster too early. (Bug#16772)
Replication: Replication of data stored in a partitioned table would cause slave servers to issue a assertion and terminate. (Bug#18436)
Slave servers would retry the execution of an SQL statement an
infinite number of times, ignoring the value
SLAVE_TRANSACTION_RETRIES when using the NDB
DEFINER value for stored routines was not
CREATE UNIQUE INDEX failed with
Error 4243: Index not found.
Disk Data: It was not possible to create more than 9 tablespaces. (Bug#16913)
SELECT ... ORDER BY ... from a view defined
using a function could crash the server. An example of such a
CREATE VIEW v1 AS SELECT SQRT(c1) FROM
Connecting to a server with a UCS2 default character set with a client using a non-UCS2 character set crashed the server. (Bug#18004)
ALTER TABLE ... REBUILD PARTITION
without specifying the name of the partition caused the server
to crash, rather than reporting a syntax error.
ALTER TABLE ... REBUILD PARTITION with no
partition name specified would crash the server.
A query with a
on a table partitioned by
MyISAM: Performing a bulk insert on a table
referenced by a trigger would crash the table.
Using triggers with partitioned
led to incorrect results.
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
100 then issuing an UPDATE statement of
salary = 200 WHERE id = 10, caused an infinite loop.
EXAMPLE storage engine did not work on
ALTER TABLE ... REORGANIZE PARTITION failed
with Error on rename of
filename ... on Windows.
NULL values were written to the
mysql.slow_log table incorrectly.
Improper checking of binary log statements could result in a server crash. (Bug#17457)
SELECT ... WHERE , when
column had a key
and used the
caused the wrong number of rows to be returned.
Checks for permissions on database operations could be performed
in a case-insensitive manner (a user with permissions on
MYDATABASE could by accident get
permissions on database
myDataBase), if the
privilege data were still cached from a previous check.
Stored procedures that call UDFs and pass local string variables caused server crashes. (Bug#17261)
A problem with
NULLs and interval mapping
sometimes caused incorrect results or crashes when trying to use
less-than searches on partitioned tables.
Attempting to add a new partition to a table partitioned by a unique key would cause an Out of memory error. (Bug#17169)
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@0023P@0023p1 on disk, creating another
txu@0023P@0023p1 crashed the
Trying to add a partition to a table having subpartitions could crash the server. (Bug#17140)
Attempting to use a conflicting
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
ALTER TABLE ... ADD PRIMARY KEY on a
partitioned table would result in bad table metadata and could
possibly crash the server.
Stored routine names longer than 64 characters were silently truncated. Now the limit is properly enforced and an error occurs. (Bug#17015)
Cursors in stored routines could cause a server crash. (Bug#16887)
Triggers created without
END clauses resulted in “You have an
error in your SQL syntax” errors when dumping and
replaying a binary log.
ALTER TABLE ... COALESCE PARTITION failed
with an Out of Memory error.
ALTER TABLE ... ADD COLUMN ... AFTER ...
failed when used on partitioned tables.
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)
Clients compiled from source with the
--without-readline did not save command history
from session to session.
ORDER BY within a stored procedure (where
intvar is an integer variable or
expression) would crash the server.
The use of an integer
i in an
clause for sorting the result by the
column is deprecated (and nonstandard). It should
not be used in new applications. See
Section 12.2.8, “
Slow queries executed by scheduled events were not being written to the slow query log. (Bug#16426)
A memory leak caused warnings on slaves for certain statements that executed without warning on the master. (Bug#16175)
No error was reported when subpartitions were defined for a nonsubpartitioned table. (Bug#15961)
Setting up subpartitions on at least one but not all the partitions of a partitioned table caused the server to crash. (Bug#15407)
During conversion from one character set to
ucs2, multi-byte characters with no
ucs2 equivalent were converted to multiple
characters, rather than to
CREATE TABLE ... PARTITION ... AS SELECT ...
would cause the server to crash.
When attempting to insert a
0 into a
LIST-partitioned table that had no value-list
0, no error was reported.
SELECT COUNT(*) for a
MyISAM table could return different results
depending on whether an index was used.
Stored routines that contained only a single statement were not
written properly to the dumpfile when using
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)
Naming a partition using the characters
unreadable the table containing the partition.
Searches on indexed columns of partitioned tables failed to find all matching rows following updates of the indexed columns. (Bug#14526)
Creating a partition which depends on an expression containing a column using the UTF8 character set would cause the server to crash. (Bug#14367)
On Linux, creation of table partitions failed within a stored procedure. (Bug#14363)
Invoking more than once a prepared statement that creates a partitioned table would crash the server. (Bug#14350)
The server would execute stored routines that had a nonexistent definer. (Bug#13198)
The length of a
VARCHAR() column that used
utf8 character set would increase each
time the table was re-created in a stored procedure or prepared
statement, eventually causing the
TABLE statement to fail.
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)