This was an internal release only, and no binaries were published.
Functionality added or changed:
Cluster Replication: Incompatible Change:
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 Section 20.11, “MySQL Cluster Replication”, and
especially Section 20.11.4, “Cluster Replication Schema and Tables”.
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)
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
Section 21.2.6, “How MySQL Partitioning Handles NULL Values”.
(Bug#15447)
MySQL Cluster:
The stability of CREATE and
DROP operations on NDB
tables containing BLOB columns has been
improved.
(Bug#17761)
MySQL Cluster:
The NDBCLUSTER storage engine now supports
INSERT IGNORE and REPLACE
statements. Previously, these statements failed with an error.
(Bug#17431)
Disk Data:
You can now have only one log file group at any one time. See
Section 12.1.8, “CREATE LOGFILE GROUP Syntax”.
(Bug#16386)
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 NULL values
in the WHERE clause against subpartitioned
tables which were partitioned by LIST(
.
(Bug#17891)some_function(col1,
... ,colN) )
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 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 that depend on the deprecated constructs should be converted to make use of the current equivalents as soon as possible.
| Deprecated / Obsolete: | Current / Preferred: |
@@table_type
|
@@storage_engine
|
@@log_bin_trust_routine_creators
|
@@log_bin_trust_function_creators
|
TIMESTAMP(
|
See Section 11.6, “Date and Time Functions”. |
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
|
SHOW BDB LOGS and SHOW
LOGS are removed as of MySQL 5.1.12, and the other
deprecated items shown in the table are removed as of MySQL
5.2.5.
TYPE vs ENGINE
.
In order not to break legacy applications, support for
TYPE = — deprecated since MySQL 4.0 — has
been restored, but now generates a warning.
engine_name
Beginning with MySQL 5.2.5, TYPE =
will no
longer be available and will produce a syntax
error.
engine_name
You should not use TYPE in any
new applications, and you should immediately begin conversion
of existing applications to use the ENGINE =
syntax
instead.
engine_name
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)
Added the --events option to
mysqldump to enable events to be included in
the dump output.
(Bug#16853)
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.
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.
(Bug#16537)
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)
Description of the EVENT privilege has been
changed to To create, alter, drop, and execute
events.
(Bug#16412)
MICROSECOND intervals are no longer allowed
for events.
(Bug#16411)
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)
The XPath last() function is now
implemented for use with
ExtractValue().
(Bug#16318)
The ExtractValue() function with
contains() now uses the SQL collation in
making comparisons. Perviously, comparisons were always binary
(that is, case-sensitive).
(Bug#16316)
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.
(Bug#16266)
Names of subpartitions must now be unique for an entire table, and not merely within the same partition. (Bug#15408)
Added the --sysdate-is-now option to
mysqld to enable
SYSDATE() to be treated as an
alias for NOW(). See
Section 11.6, “Date and Time Functions”.
(Bug#15101)
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)
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)
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 output from SHOW CREATE TABLE is more
consistent about using uppercase for keywords. Data types still
are in lowercase.
(Bug#10460)
The client API now attempts to reconnect using TCP/IP if the
reconnect flag is set, as is the case with
sockets.
(Bug#2845)
The binlog_format system variable now can be
set to a third format, MIXED, as described in
Section 19.1.2, “Replication Formats”.
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
Section 23.2.1, “CREATE PROCEDURE and CREATE
FUNCTION Syntax”, for more information.
When mysqldump is invoked with the
--routines option, it now dumps the
DEFINER value for stored routines.
The binlog_format system variable now is
dynamic and can be changed at runtime, as described in
Section 19.1.2, “Replication Formats”.
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.
Bugs fixed:
Partitioning: MySQL Cluster:
Trying to insert a value into a nonexistent
LIST partition of an NDB
table would cause the server to crash.
Beginning with MySQL 5.1.12, user-defined partitioning types
other than KEY or LINEAR
KEY were disabled for NDB tables.
Partitioning: MySQL Cluster:
A repeated SELECT on a partitioned table that
used the NDB storage engine could cause the
server to crash.
(Bug#17390)
MySQL Cluster: Attempting to restart a node with dropped events still pending would fail. (Bug#18491)
MySQL Cluster: Two mysqld processes starting at the same time could cause a race condition. (Bug#18472)
MySQL Cluster:
A timeout in the handling of an ABORT
condition with more that 32 operations could yield a node
failure.
(Bug#18414)
MySQL Cluster:
Two mysqld processes did not synchronise
DROP TABLE binary log events correctly.
(Bug#18395)
MySQL Cluster:
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)
MySQL Cluster:
Issuing a DROP LOGFILE GROUP statement would
cause ndbd processes to crash if MySQL had
been compiled with gcc4.
(Bug#18295)
MySQL Cluster:
auto_increment values were not propagated
correctly in statement-based replication.
(Bug#18208)
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)
MySQL Cluster:
Memory was mistakenly freed for NdbRecAttr
objects during addition of an index while replicating the
cluster, which could cause mysqld to crash.
(Bug#18106)
MySQL Cluster:
Insufficient StringBuffer memory when
attempting to create a trigger caused the server to crash.
(Bug#18101)
MySQL Cluster: Variable-length columns used as primary keys were not handled correctly. (Bug#18075)
MySQL Cluster:
Row-based replication could fail with tables using
VARCHAR columns for primary keys and having
BLOB columns.
(Bug#18067)
MySQL Cluster:
CREATE UNIQUE INDEX on a column containing
non-unique data could cause one or more ndbd
nodes to hang or crash.
(Bug#18040)
MySQL 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)
MySQL Cluster:
A SELECT ... ORDER BY query on an explicitly
partitioned Cluster table with no explicit indexes would crash
the server.
(Bug#17899)
MySQL 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)
MySQL Cluster: In some cases, a single ndbd node failed following a system restart. (Bug#17854)
MySQL Cluster: (Replication): The binary log on the secondary master was not being set up correctly following a table rename. (Bug#17838)
MySQL Cluster:
A simultaneous RENAME of several tables was
logged multiple times.
(Bug#17827)
MySQL Cluster:
Trying to perform a DELETE from an
NDB table following a LOCK
TABLES caused the ndbd processes to
hang.
(Bug#17812)
MySQL Cluster:
Trying to update very large partitioned tables using the
NDB storage engine sometimes caused the
server to crash.
(Bug#17806, Bug#16385)
MySQL Cluster:
Using ALTER TABLE ... ADD PARTITION on a
table partitioned by LIST would cause the
client to hang.
(Bug#17701)
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:
ALTER TABLE on a partitioned
NDB table could cause the server to crash.
(Bug#17499)
MySQL Cluster:
DELETE operations on NDB
tables could cause memory leaks.
(Bug#16874)
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)
MySQL Cluster:
UNDO_BUFFER_SIZE was limited to 17 MB.
(Bug#16657, Bug#17890)
MySQL Cluster:
Inserting and deleting BLOB column values
while a backup was in process could cause data nodes to shut
down.
(Bug#14028)
Disk Data:
CREATE UNIQUE INDEX failed with
Error 4243: Index not found.
(Bug#18039)
Disk Data: It was not possible to create more than 9 tablespaces. (Bug#16913)
Replication of data stored in a partitioned table would cause slave servers to issue a assertion and terminate. (Bug#18436)
A SELECT ... ORDER BY ... from a view defined
using a function could crash the server. An example of such a
view is CREATE VIEW v1 AS SELECT SQRT(c1) FROM
t1.
(Bug#18386)
The server would crash when SHOW STATUS was
called on a server linked with yaSSL.
(Bug#18310)
The ExtractValue() function did not return
an error when passed an invalid XPath string.
(Bug#18172)
Using the position() function in the XPath
argument to ExtractValue()
crashed the server.
(Bug#18171)
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)
Connecting to a server with a UCS2 default character set with a client using a non-UCS2 character set crashed the server. (Bug#18004)
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)
ALTER TABLE ... REBUILD PARTITION with no
partition name specified would crash the server.
(Bug#17940)
A query with a WHERE
condition failed
on a table partitioned by date_column >
date_valueRANGE.
(Bug#17894)
Renaming and adding a new column to a partitioned table in the
same ALTER TABLE statement caused the server
to crash.
(Bug#17772)
MyISAM: Performing a bulk insert on a table
referenced by a trigger would crash the table.
(Bug#17764)
Using triggers with partitioned InnoDB tables
led to incorrect results.
(Bug#17744)
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)
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)
The EXAMPLE storage engine did not work on
Windows.
(Bug#17721)
ALTER TABLE ... REORGANIZE PARTITION failed
with Error on rename of
filename ... on Windows.
(Bug#17720)
The MySQL server could crash with out of memory errors when
performing aggregate functions on a DECIMAL
column.
(Bug#17602)
NULL values were written to the
mysql.slow_log table incorrectly.
(Bug#17600)
mysql_fix_privilege_tables did not create the
mysql.plugin table.
(Bug#17568)
Improper checking of binary log statements could result in a server crash. (Bug#17457)
Rpeated invocations of a stored procedure containing a
SHOW CREATE EVENT statement would result in
the error Packets out of order.
(Bug#17403)
For FEDERATED tables, a
SELECT statement with an ORDER
BY clause did not return rows in the proper order.
(Bug#17377)
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)
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)
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)
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.
(Bug#17173)
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#P#p1 to
txu@0023P@0023p1 on disk, creating another
table named txu@0023P@0023p1 crashed the
server.
(Bug#17142)
Trying to add a partition to a table having subpartitions could crash the server. (Bug#17140)
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)
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)
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)
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 BEGIN and
END clauses resulted in “You have an
error in your SQL syntax” errors when dumping and
replaying a binary log.
(Bug#16878)
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)
ALTER TABLE ... COALESCE PARTITION failed
with an Out of Memory error.
(Bug#16810)
ALTER TABLE ... ADD COLUMN ... AFTER ...
failed when used on partitioned tables.
(Bug#16806)
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)
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.
(Bug#16557)
Using ORDER BY within a stored procedure (where
intvar
intvar is an integer variable or
expression) would crash the server.
The use of an integer i in an
ORDER BY
clause for sorting the result by the
ii th
column is deprecated (and non-standard). It should
not be used in new applications. See
Section 12.2.7, “SELECT Syntax”.
Slow queries executed by scheduled events were not being written to the slow query log. (Bug#16426)
INSERT statements executed by scheduled
events were not written to the general log.
(Bug#16413)
Repeated invocations of a stored procedure containing a
CREATE EVENT or ALTER
EVENT statement would crash the server.
(Bug#16408)
Names of subpartitions were not displayed in the output of
SHOW CREATE TABLE.
(Bug#16370)
The ExtractValue() function
would not accept expressions which matched element names
containing an underscore character.
(Bug#16320)
The self() XPath function was not handled
correcty by ExtractValue().
(Bug#16315)
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)
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)
A memory leak caused warnings on slaves for certain statements that executed without warning on the master. (Bug#16175)
The DEFINER value for stored routines was not
replicated.
(Bug#15963)
No error was reported when subpartitions were defined for a non-subpartitioned table. (Bug#15961)
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)
The mysql_close() C API
function leaked handles for shared-memory connections on
Windows.
(Bug#15846)
A SELECT using a function against a nested
view would crash the server.
(Bug#15683)
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 0x003F QUESTION
MARK.
(Bug#15375)
CREATE TABLE ... PARTITION ... AS SELECT ...
would cause the server to crash.
(Bug#15336)
When attempting to insert a 0 into a
LIST-partitioned table that had no value-list
containing 0, no error was reported.
(Bug#15253)
SELECT COUNT(*) for a
MyISAM table could return different results
depending on whether an index was used.
(Bug#14980)
Stored routines that contained only a single statement were not
written properly to the dumpfile when using
mysqldump.
(Bug#14857)
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
Ç or
ç (“c-cedilla”;
Unicode 00C7 or 00E7) made
unreadable the table containing the partition.
(Bug#14527)
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 RENAME TABLE statement did not move
triggers to the new table.
(Bug#13525)
The server would execute stored routines that had a non-existent definer. (Bug#13198)
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)
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)
Setting the myisam_repair_threads system
variable to a value larger than 1 could cause corruption of
large MyISAM tables.
(Bug#11527)
Issuing GRANT EXECUTE on a procedure would
display any warnings related to the creation of the procedure.
(Bug#7787)

User Comments
Add your own comment.