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 17.6, “MySQL Cluster Replication”, and
especially Section 17.6.4, “MySQL 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 18.2.6, “How MySQL Partitioning Handles NULL
”.
(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)
Replication:
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)
Replication:
The binlog_format
system
variable now can be set to a third format,
MIXED
, as described in
Section 16.1.2, “Replication Formats”.
Replication:
The binlog_format
system
variable now is dynamic and can be changed at runtime, as
described in Section 16.1.2, “Replication Formats”.
Replication:
A slave server may now switch the replication format
automatically. 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.
Disk Data:
You can now have only one log file group at any one time. See
Section 12.1.14, “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 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.
The log_bin_trust_routine_creators
system
variable (use
log_bin_trust_function_creators
).
The table_type
system
variable (use
storage_engine
).
The TYPE
table option to specify the
storage engine for CREATE
TABLE
or ALTER
TABLE
(use ENGINE
).
The SHOW TABLE TYPES
SQL statement (use
SHOW ENGINES
).
The SHOW INNODB STATUS
and
SHOW MUTEX STATUS
SQL statements (use
SHOW ENGINE
INNODB STATUS
SHOW ENGINE
INNODB MUTEX
).
The SHOW PLUGIN
SQL statement (use
SHOW PLUGINS
).
The LOAD TABLE ... FROM MASTER
and
LOAD DATA FROM MASTER
SQL statements (use
mysqldump or
mysqlhotcopy to dump tables and
mysql to reload dump files).
The BACKUP TABLE
and
RESTORE TABLE
SQL statements
(use mysqldump or
mysqlhotcopy to dump tables and
mysql to reload dump files).
TIMESTAMP(
data type: The ability to specify a display width of
N
)N
(use without
N
).
The --master-
server options to set replication parameters (use the
xxx
CHANGE MASTER TO
statement
instead): --master-host
,
--master-user
, --master-password
, --master-port
,
--master-connect-retry
,
--master-ssl
,
--master-ssl-ca
,
--master-ssl-capath
,
--master-ssl-cert
,
--master-ssl-cipher
,
--master-ssl-key
.
In addition, SHOW BDB LOGS
and SHOW
LOGS
are removed as of MySQL 5.1.12.
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.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)
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 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 12.1.15, “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.
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: Replication:
AUTO_INCREMENT
values were not propagated
correctly in statement-based replication.
(Bug#18208)
MySQL Cluster: Replication:
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: Replication:
Row-based replication could fail with tables using
VARCHAR
columns for primary keys
and having BLOB
columns.
(Bug#18067)
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)
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: 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:
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:
CREATE UNIQUE INDEX
on a column containing
nonunique 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:
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)
Replication: Replication of data stored in a partitioned table would cause slave servers to issue a assertion and terminate. (Bug#18436)
Replication:
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)
Replication:
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
engine.
(Bug#16228)
Replication:
The DEFINER
value for stored routines was not
replicated.
(Bug#15963)
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)
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_value
RANGE
.
(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 NULL
s 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)
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
i
i
th
column is deprecated (and nonstandard). It should
not be used in new applications. See
Section 12.2.8, “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)
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)
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 nonexistent 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.