This is a new Beta development release, fixing recently discovered bugs.
This section documents all changes and bug fixes that have been applied since the last official MySQL release. If you would like to receive more fine-grained and personalized update alerts about fixes that are relevant to the version and features you use, please consider subscribing to MySQL Enterprise (a commercial MySQL offering). For more details please see http://www.mysql.com/products/enterprise.
Functionality added or changed:
Incompatible Change: MySQL Cluster:
MySQL Cluster node and system restarts formerly required that
all fragments use the same local checkpoint (LCP); beginning
with this version, it is now possible for different fragments to
use different LCPs during restarts. This means that data node
filesystems must be rebuilt as part of any upgrade to this
version by restarting all data nodes with the
--initial option.
See MySQL Cluster 5.1 and MySQL Cluster NDB 6.x Upgrade and Downgrade Compatibility, and related sections of the Manual before upgrading a MySQL Cluster to version 5.1.12 or later. (Bug#21478, Bug#21271)
Incompatible Change:
In the INFORMATION_SCHEMA.EVENTS table, the
EVENT_DEFINITION column now contains the SQL
executed by a scheduled event.
The EVENT_BODY column now contains the
language used for the statement or statements shown in
EVENT_DEFINITION. In MySQL 5.1, the value
shown in EVENT_BODY is always
SQL.
These changes were made to bring this table into line with the
INFORMATION_SCHEMA.ROUTINES table, and that
table's ROUTINE_BODY and
ROUTINE_DEFINITION columns.
(Bug#16992)
Incompatible Change:
Support for the BerkeleyDB (BDB) engine has
been dropped from this release. Any existing tables that are in
BDB format will not be readable from within MySQL from 5.1.12 or
newer. You should convert your tables to another storage engine
before upgrading to 5.1.12.
Because of this change, the SHOW [BDB] LOGS
statement has been dropped.
Incompatible Change: A number of MySQL constructs are now prohibited in partitioning expressions, beginning with this release. These include the following:
A number of MySQL functions. For a complete list of these, see Section 16.5.3, “Partitioning Limitations Relating to Functions”.
Nested function calls.
Calls to stored routines, UDFs, or plugins.
Character-to-integer conversions involving non-8-bit
character sets or any of the
latin1_german2_ci,
latin2_czech_cs, or
cp1250_czech_cs collations.
These restrictions were added in part as a result of Bug#18198 and related bug reports.
For more information about these and other restrictions on partitioned tables in MySQL, see Section 16.5, “Restrictions and Limitations on Partitioning”.
Incompatible Change:
The permitted values for and behaviour of the
event_scheduler system variable have changed.
Permitted values are now ON,
OFF, and DISABLED, with
OFF being the default. It is not possible to
change its value to or from DISABLED while
the server is running.
For details, see Section 17.4.1, “Event Scheduler Overview”.
Incompatible Change:
The plugin interface has changed: The
st_mysql_plugin structure has a new
license member to indicate the license type.
(The allowable values are defined in
mysql/plugin.h.) This change is not
backward compatible, so the API version
(MYSQL_PLUGIN_INTERFACE_VERSION) has changed.
For additional information, see
Section 20.2.3, “Writing Plugins”.
Incompatible Change: The full-text parser plugin interface has changed in two ways:
The MYSQL_FTPARSER_PARAM structure has a
new flags member. This is zero if there
are no special flags, or
MYSQL_FTFLAGS_NEED_COPY, which means that
mysql_add_word() must save a copy of
the word (that is, it cannot use a pointer to the word
because the word is in a buffer that will be overwritten.)
This flag might be set or reset by MySQL before calling the
parser plugin, by the parser plugin itself, or by the
mysql_parse() function.
The mysql_parse() and
mysql_add_word() functions now take a
MYSQL_FTPARSER_PARAM as their first
argument, not a
MYSQL_FTPARSER_PARAM::mysql_ftparam as
before.
These changes are not backward compatible, so the API version
(MYSQL_FTPARSER_INTERFACE_VERSION) has
changed. For additional information, see
Section 20.2.3, “Writing Plugins”.
Incompatible Change:
Storage engines can be pluggable at runtime, so the distinction
between disabled and invalid storage engines no longer applies.
This affects the NO_ENGINE_SUBSTITUTION SQL
mode, as described in Section 5.1.7, “SQL Modes”.
Incompatible Change:
The namespace for scheduled events has changed, such that events
are no longer unique to individual users. This also means that a
user with the EVENT privilege on a given
database can now view, alter, or drop any events defined on that
database.
If you used scheduled events in an earlier MySQL 5.1 release, you should rename any of them having the same name and defined on the same database but belonging to different users — so that all events in a given database have unique names — before upgrading to 5.1.12 (or newer).
For additional information, see Section 17.4.6, “The Event Scheduler and MySQL Privileges”.
Important Change: Partitioning: MySQL Cluster:
It is no longer possible to create Cluster tables using any
partitioning type other than [LINEAR]
KEY. Attempting to do so now raises an error.
Important Change: MySQL Cluster:
LOAD DATA INFILE no longer causes an implicit
commit for all storage engines. It now causes an implicit commit
only for tables using the NDB storage engine.
(Bug#11151)
Important Change: MySQL Cluster:
The status variables Ndb_connected_host and
Ndb_connected_port were renamed to
Ndb_config_from_host and
Ndb_config_from_port, respectively.
Important Change: Replication:
The default value for the --binlog-format
server option is now MIXED.
MySQL Cluster:
The ndb_config utility now accepts
-c as a short form of the
--ndb-connectstring option.
(Bug#22295)
MySQL Cluster: Added the --bind-address option for ndbd. This allows a data node process to be bound to a specific network interface. (Bug#22195)
MySQL Cluster:
The Ndb_number_of_storage_nodes system
variable was renamed to
Ndb_number_of_data_nodes.
(Bug#20848)
MySQL Cluster:
The HELP command in the Cluster management
client now provides command-specific help. For example,
HELP RESTART in ndb_mgm
provides detailed information about the
RESTART command.
(Bug#19620)
MySQL Cluster: A number of erroneous, misleading, or missing error messages have been corrected. (Bug#17297, Bug#19543)
MySQL Cluster: Backup messages are no longer printed to the cluster log.
MySQL Cluster:
Added the --ndb-use-copying-alter-table option
to mysqld to provide a fallback in case of
problems with online ALTER TABLE operations
on NDB tables.
Cluster API:
Two new NDB API methods — aggregate()
and validate() — were added to the
NdbDictionary::Object::Table class. See
Table::aggregate(), and
Table::validate(), for more
information. This was done to rectify the following issues:
Under some conditions, the data distribution could become unbalanced in a MySQL Cluster with 2 or more node groups following the creation of a new table.
Data was stored unevenly between partitions due to all
BLOB data being placed in partition 0.
The number of InnoDB threads is no longer
limited to 1,000 on Windows.
(Bug#22268)
The STATE column of the
INFORMATION_SCHEMA.PROCESSLIST table was
increased from 30 to 64 characters to accommodate longer state
values.
(Bug#21652)
mysqldump now has a
--flush-privileges option. It causes
mysqldump to emit a FLUSH
PRIVILEGES statement after dumping the
mysql database. This option should be used
any time the dump contains the mysql database
and any other database that depends on the data in the
mysql database for proper restoration.
(Bug#21424)
mysqlslap threads now try to connect up to 10 times if the initial connect attempt fails. (Bug#21297)
The output generated by the server when using the
--xml option has changed with regard to null
values. It now matches the output from mysqldump
--xml . That is, a column containing
a NULL value is now reported as
<field name="column_name" xsi:nil="true" />
whereas a column containing the string value
'NULL' is reported as
<field name="column_name">NULL</field>
and a column containing an empty string is reported as
<field name="column_name">>/field>
The mysqld and mysqlmanager man pages have been reclassified from volume 1 to volume 8. (Bug#21220)
InnoDB now honors IGNORE
INDEX. Perviously using IGNORE
INDEX in cases where an index sort would be slower
than a filesort had no effect when used with
InnoDB tables.
(Bug#21174)
TIMESTAMP columns that are NOT
NULL now are reported that way by SHOW
COLUMNS and INFORMATION_SCHEMA.
(Bug#20910)
Memory consumption of the InnoDB data
dictionary cache was roughly halved by cleaning up the data
structures.
(Bug#20877)
The BINARY keyword now is forbidden as a data
type attribute in stored routines (for example, DECLARE
v1 VARCHAR(25) BINARY), because
DECLARE does not support collations, and in
this context BINARY specifies the binary
collation of the variable's character set.
(Bug#20701)
The following statements now can be executed as prepared
statements (using PREPARE plus
EXECUTE):
CACHE INDEX
CHANGE MASTER
CHECKSUM {TABLE | TABLES}
{CREATE | RENAME | DROP} DATABASE
{CREATE | RENAME | DROP} USER
FLUSH {TABLE | TABLES | TABLES WITH READ LOCK | HOSTS | PRIVILEGES
| LOGS | STATUS | MASTER | SLAVE | DES_KEY_FILE | USER_RESOURCES}
GRANT
REVOKE
KILL
LOAD INDEX INTO CACHE
RESET {MASTER | SLAVE | QUERY CACHE}
SHOW BINLOG EVENTS
SHOW CREATE {PROCEDURE | FUNCTION | EVENT | TABLE | VIEW}
SHOW {AUTHORS | CONTRIBUTORS | WARNINGS | ERRORS}
SHOW {MASTER | BINARY} LOGS
SHOW {MASTER | SLAVE} STATUS
SLAVE {START | STOP}
INSTALL PLUGIN
UNINSTALL PLUGIN
In the INFORMATION_SCHEMA.ROUTINES table the
ROUTINE_DEFINITION column now is defined as
NULL rather than NOT NULL.
Also, NULL rather than the empty string is
returned as the column value if the user does not have
sufficient privileges to see the routine definition.
(Bug#20230)
The mysqldumpslow script has been moved from client RPM packages to server RPM packages. This corrects a problem where mysqldumpslow could not be used with a client-only RPM install, because it depends on my_print_defaults which is in the server RPM. (Bug#20216)
The MySQL distribution now compiles on UnixWare 7.13. (Bug#20190)
configure now defines the symbol
DBUG_ON in config.h to
indicate whether the source tree is configured to be compiled
with debugging support.
(Bug#19517)
TEXT and BLOB columns do
not support DEFAULT values. However, when a
default of '' was specified, the
specification was silently ignored. This now results in a
warning, or an error in strict mode.
(Bug#19498)
For mysqlshow, if a database name argument
contains wildcard characters (such as “
_ ”) but matches a single database
name exactly, treat the name as a literal name. This allows a
command such as mysqlshow information_schema
work without having to escape the wildcard character.
(Bug#19147)
The source distribution has been updated so that the UDF example can be compiled under Windows with CMake. See Section 20.3.2.5, “Compiling and Installing User-Defined Functions”. (Bug#19121)
The default value of the tmp_table_size
system variable was lowered from 32MB to 16MB because it is
bounded by the value of max_heap_table_size,
which has a default of 16MB.
(Bug#18875)
Log table changes: By default, the log tables use the
CSV storage engine, as before. But now the
log tables can be altered to use the MyISAM
storage engine. You cannot use ALTER TABLE to
alter a log table that is in use. The log must be disabled
first. No engines other than CSV or
MyISAM are legal for the log tables. The use
of DROP TABLE for log tables is similarly
restricted: It cannot be used to drop a log table that is in
use. The log must be disabled first. (These changes also correct
a deadlock that occurred for an attempt to drop an in-use log
table.)
(Bug#18559)
Added the --set-charset option to
mysqlbinlog to allow the character set to be
specified for processing binary log files.
(Bug#18351)
The ExtractValue() function now
produces an error when passed an XML fragment that is not
well-formed.
(Previously, the function allowed invalid XML fragments to be used.) (Bug#18201)
On Windows, typing Control-C while a query was running caused the mysql client to crash. Now it causes mysql to attempt to kill the current statement. If this cannot be done, or Control-C is typed again before the statement is killed, mysql exits. (In other words, mysql's behavior with regard to Control-C is now the same as it is on Unix platforms.) (Bug#17926)
See also Bug#1989
The bundled yaSSL library licensing has added a FLOSS exception
similar to MySQL to resolve licensing incompatibilities with
MySQL. (See the
extra/yassl/FLOSS-EXCEPTIONS file in a
MySQL source distribution for details.)
(Bug#16755)
SHOW CREATE TABLE now shows constraints for
InnoDB tables.
(Bug#16614)
EXPLAIN EXTENDED now shows a
filtered column that is an estimated
percentage of the examined rows that will be joined with the
previous tables. This was added while dealing with a problem of
MySQL choosing the wrong index for some queries.
(Bug#14940)
The mysql client now allows
\l in the prompt command
argument to insert the current delimiter into the prompt.
(Bug#14448)
The mysql client used the default character
set if it automatically reconnected to the server, which is
incorrect if the character set had been changed. To enable the
character set to remain synchronized on the client and server,
the mysql command charset
(or \C) that changes the default character
set and now also issues a SET NAMES
statement. The changed character set is used for reconnects.
(Bug#11972)
The LEFT() and
RIGHT() functions
return NULL if any argument is
NULL.
(Bug#11728)
If a DROP VIEW statement named multiple
views, it stopped with an error if a non-existent view was named
and did not drop the remaining views. Now it continues on and
reports an error at the end, similar to DROP
TABLE.
(Bug#11551)
For a successful dump, mysqldump now writes a SQL comment to the end of the dump file in the following format:
-- Dump completed on YYYY-MM-DD hh:mm:ss
There were several issues regarding how SHOW
STATUS affected some status variables and logging
which could impact monitoring the MySQL Server. The behavior of
this statement has been modified in two ways:
SHOW STATUS is no longer logged to the
slow query log.
SHOW STATUS no longer updates any session
status variables, except for
com_show_status.
However, SHOW STATUS continues to update
global status variables to allow monitoring
of what the server is actually doing. This is because
SHOW STATUS creates temporary tables that may
affect performance if it is called excessively often.
(Bug#10210)
See also Bug#19764
For spatial data types, the server formerly returned these as
VARSTRING values with a binary collation. Now
the server returns spatial values as BLOB
values.
(Bug#10166)
The LOAD DATA FROM MASTER and LOAD
TABLE FROM MASTER statements are deprecated. See
Section 12.6.2.2, “LOAD DATA FROM MASTER Syntax”, for
recommended alternatives.
(Bug#9125, Bug#20596, Bug#14399, Bug#12187, Bug#15025, Bug#18822)
For the mysql client, typing Control-C causes mysql to attempt to kill the current statement. If this cannot be done, or Control-C is typed again before the statement is killed, mysql exits. Previously, Control-C caused mysql to exit in all cases. (Bug#1989)
It is no longer possible to create partitioned tables using the
CSV storage engine.
Binary MySQL distributions no longer include a mysqld-max server. Instead, distributions contain a binary that includes the features previously included in the mysqld-max binary.
SHOW STATUS is no longer logged to the slow
query log.
Program Database files (extension pdf) are
now included by default in Windows distributions. These can be
used to help diagnose problems with mysqld
and other tools. See Section 20.5.1, “Debugging a MySQL Server”.
INFORMATION_SCHEMA contains new tables,
GLOBAL_STATUS,
SESSION_STATUS,
GLOBAL_VARIABLES, and
SESSION_VARIABLES, that correspond to the
output from the SHOW {GLOBAL|SESSION} STATUS
and SHOW {GLOBAL|SESSION} VARIABLES
statements.
SHOW STATUS no longer updates any session
status variables, except for com_show_status.
A new system variable, lc_time_names,
specifies the locale that controls the language used to display
day and month names and abbreviations. This variable affects the
output from the DATE_FORMAT(),
DAYNAME() and
MONTHNAME() functions. See
Section 9.8, “MySQL Server Locale Support”.
Using --with-debug to configure MySQL with
debugging support enables you to use the
--debug="d,parser_debug" option when
you start the server. This causes the Bison parser that is used
to process SQL statements to dump a parser trace to the server's
standard error output. Typically, this output is written to the
error log.
The bundled yaSSL library was upgraded to version 1.3.7.
The Instance Manager --passwd option has been
renamed to --print-password-line. Other options
were added to enable management of the IM password file from the
command line: --add-user,
--drop-user, --edit-user,
--list-users,
--check-password-file,
--clean-password-file,
--username, and --password.
The --mysql-safe-compatible option was added to
cause the Instance Manner to act similarly to
mysqld_safe.
Added the SHOW CONTRIBUTORS statement.
The general query log and slow query logs now can be enabled or
disabled at runtime with the general_log and
slow_query_log system variables, and the name
of the log files can be changed by setting the
general_log_file and
slow_query_log_file system variables. See
Section 5.2.3, “The General Query Log”, and
Section 5.2.5, “The Slow Query Log”.
The default binary log format (as used during replication) is now Mixed based, automatically using a combination of row-based and statement based log events as appropriate.
Bugs fixed:
Security Fix:
A stored routine created by one user and then made accessible to
a different user using GRANT EXECUTE could be
executed by that user with the privileges of the routine's
definer.
(Bug#18630, CVE-2006-4227)
Security Fix: On Linux, and possibly other platforms using case-sensitive filesystems, it was possible for a user granted rights on a database to create or access a database whose name differed only from that of the first by the case of one or more letters. (Bug#17647, CVE-2006-4226)
Security Fix:
If a user has access to MyISAM table
t, that user can create a
MERGE table m that
accesses t. However, if the user's
privileges on t are subsequently
revoked, the user can continue to access
t by doing so through
m. If this behavior is undesirable,
you can start the server with the new
--skip-merge option to disable the
MERGE storage engine.
(Bug#15195, CVE-2006-4031)
Incompatible Change:
For utf8 columns, the full-text parser
incorrectly considered several non-word punctuation and
whitespace characters as word characters, causing some searches
to return incorrect results.
The fix involves a change to the full-text parser, so any tables
that have FULLTEXT indexes on
utf8 columns must be repaired with
REPAIR TABLE:
REPAIR TABLE tbl_name QUICK;
MySQL Cluster: Packaging:
The ndb_mgm program was included in both the
MySQL-ndb-tools and
MySQL-ndb-management RPM packages, resulting
in a conflict if both were installed. Now
ndb_mgm is included only in
MySQL-ndb-tools.
(Bug#21058)
MySQL Cluster: Replication:
A DELETE FROM table with no
WHERE clause (deleting all rows) running
concurrently with INSERT statements on a
storage engine with row-level locking (such as
NDB) could produce inconsistent results when
using statement-based replication.
(Bug#19066)
MySQL Cluster: (NDB API): Inacivity timeouts for scans were not correctly handled. (Bug#23107)
MySQL Cluster:
Inserting into an NDB table failed when the
table had no primary key but had a unique key added after table
was created on one or more NOT NULL columns.
This occurred when the unique key had been adding using either
ALTER TABLE or CREATE UNIQUE
KEY.
(Bug#22838)
MySQL Cluster:
(NDB API): Attempting to read a nonexistent tuple using
Commit mode for
NdbTransaction::execute() caused node
failures.
(Bug#22672)
MySQL Cluster:
The --help output from NDB
binaries did not include file-related options.
(Bug#21994)
MySQL Cluster:
Setting TransactionDeadlockDetectionTimeout
to a value greater than 12000 would cause scans to deadlock,
time out, fail to release scan records, until the cluster ran
out of scan records and stopped processing.
(Bug#21800)
MySQL Cluster: A scan timeout returned Error 4028 (Node failure caused abort of transaction) instead of Error 4008 (Node failure caused abort of transaction...). (Bug#21799)
MySQL Cluster:
The node recovery algorithm was missing a version check for
tables in the ALTER_TABLE_COMMITTED state (as
opposed to the TABLE_ADD_COMMITTED state,
which has the version check). This could cause inconsistent
schemas across nodes following node recovery.
(Bug#21756)
MySQL Cluster: A memory leak occurred when running ndb_mgm -e "SHOW". (Bug#21670)
MySQL Cluster: The server provided a non-descriptive error message when encountering a fatally corrupted REDO log. (Bug#21615)
MySQL Cluster:
The output for the --help option used with
NDB executable programs (such as
ndbd, ndb_mgm,
ndb_restore, ndb_config,
and others mentioned in
MySQL Cluster Utility Programs) referred to the
Ndb.cfg file, instead of to
my.cnf.
(Bug#21585)
MySQL Cluster: A partial rollback could lead to node restart failures. (Bug#21536)
MySQL Cluster: Partition distribution keys were updated only for the primary and starting replicas during node recovery. This could lead to node failure recovery for clusters having an odd number of replicas.
We recommend values for NumberOfReplicas
that are even powers of 2, for best results.
MySQL Cluster: The ndb_mgm management client did not set the exit status on errors, always returning 0 instead. (Bug#21530)
MySQL Cluster: The failure of a unique index read due to an invalid schema version could be handled incorrectly in some cases, leading to unpredictable results. (Bug#21384)
MySQL Cluster:
Attempting to create an NDB table on a MySQL
server with an existing non-Cluster table with the same name in
the same database could result in data loss or corruption. Now,
if such a table is encountered during autodiscovery, a warning
is written to the error log of the affected
mysqld, and the local table is overwritten.
(Bug#21378)
MySQL Cluster: Cluster logs were not rotated following the first rotation cycle. (Bug#21345)
MySQL Cluster: In a cluster with more than 2 replicas, a manual restart of one of the data nodes could fail and cause the other nodes in the same node group to shut down. (Bug#21213)
MySQL Cluster:
The ndb_size.pl script did not account for
TEXT and BLOB column
values correctly.
(Bug#21204)
MySQL Cluster:
Some queries involving joins on very large
NDB tables could crash the MySQL server.
(Bug#21059)
MySQL Cluster:
Condition pushdown did not work correctly with
DATETIME columns.
(Bug#21056)
MySQL Cluster: Responses to the ALL DUMP 1000 management client command were printed multiple times in the cluster log for each cluster node. (Bug#21044)
MySQL Cluster:
The message Error 0 in readAutoIncrementValue(): no
Error was written to the error log whenever
SHOW TABLE STATUS was performed on a Cluster
table that did not have an AUTO_INCREMENT
column.
(Bug#21033)
MySQL Cluster: Restarting a data node while DDL operations were in progress on the cluster could cause other data nodes to fail. This could also lead to mysqld hanging or crashing under some circumstances. (Bug#21017, Bug#21050)
MySQL Cluster: In some situations with a high disk-load, writing of the redo log could hang, causing a crash with the error message GCP STOP detected. (Bug#20904)
MySQL Cluster:
A race condition could in some cirumstances following a
DROP TABLE.
(Bug#20897)
MySQL Cluster: Under some circumstances, local checkpointing would hang, keeping any unstarted nodes from being started. (Bug#20895)
MySQL Cluster:
When the redo buffer ran out of space, a Pointer too
large error was raised and the cluster could become
unusable until restarted with --initial.
(Bug#20892)
MySQL Cluster: A vague error message was returned when reading both schema files during a restart of the cluster. (Bug#20860)
MySQL Cluster:
The repeated creating and dropping of a table would eventually
lead to NDB Error 826, Too many
tables and attributes ... Insufficient space.
(Bug#20847)
MySQL Cluster: When attempting to restart the cluster following a data import, the cluster failed during Phase 4 of the restart with Error 2334: Job buffer congestion. (Bug#20774)
MySQL Cluster:
REPLACE statements did not work correctly on
an NDB table having both a primary key and a
unique key. In such cases, proper values were not set for
columns which were not explicitly referenced in the statement.
(Bug#20728)
MySQL Cluster:
The server did not honor the value set for
ndb_cache_check_time in the
my.cnf file.
(Bug#20708)
MySQL Cluster: Truncating a table on one mysqld caused other mysqld processes connected to the cluster to return ERROR 1412 (HY000): Table definition has changed, please retry transaction on subsequent queries. (Bug#20705)
MySQL Cluster:
Using an invalid node ID with the management client
STOP command could cause
ndb_mgm to hang.
(Bug#20575)
MySQL Cluster:
Renaming of table columns was not supported as fast a
ALTER TABLE for NDB tables.
(Bug#20456)
MySQL Cluster: ndb_size.pl and ndb_error_reporter were missing from RPM packages. (Bug#20426)
MySQL Cluster:
Running ndbd
--nowait-nodes=
where id id was the node ID of a node
that was already running would fail with an invalid error
message.
(Bug#20419)
MySQL Cluster: Data nodes added while the cluster was running in single user mode were all assigned node ID 0, which could later cause multiple node failures. Adding nodes while in single user mode is no longer possible. (Bug#20395)
MySQL Cluster:
The ndb_mgm client command ALL
CLUSTERLOG STATISTICS=15 had no effect.
(Bug#20336)
MySQL Cluster:
(Direct APIs): NdbScanOperation::readTuples()
and NdbIndexScanOperation::readTuples()
ignored the batch parameter.
(Bug#20252)
MySQL Cluster: A node failure during a scan could sometime cause the node to crash when restarting too quickly following the failure. (Bug#20197)
MySQL Cluster:
The failure of a data node when preparing to commit a
transaction (that is, while the node's status was
CS_PREPARE_TO_COMMIT) could cause the failure
of other cluster data nodes.
(Bug#20185)
MySQL Cluster:
SHOW ENGINE NDB STATUS could sometimes return
an incorrect value of 0 for the latest epoch,
which could cause problems with synchronizing the binlog.
(Bug#20142)
MySQL Cluster: An internal formatting error caused some management client error messages to be unreadable. (Bug#20016)
MySQL Cluster:
Creating tables with variable-size columns caused
DataMemory to be used but not freed when the
tables were dropped.
(Bug#20007)
MySQL Cluster: Renaming a table in such a way as to move it to a different database failed to move the table's indexes. (Bug#19967)
MySQL Cluster: Running management client commands while mgmd was in the process of disconnecting could cause the management server to fail. (Bug#19932)
MySQL Cluster: Under certain conditions, a starting node could miss transactions, leading to inconsistencies between the primary and backup replicas. (Bug#19929)
MySQL Cluster: An uncommitted row could sometimes be checkpointed and thus incorrectly included in a backup. (Bug#19928)
MySQL Cluster:
In some cases where SELECT COUNT(*) from an
NDB table should have yielded an error,
MAX_INT was returned instead.
(Bug#19914)
MySQL Cluster:
TEXT columns in Cluster tables having both an
explicit primary key and a unique key were not correctly updated
by REPLACE statements.
(Bug#19906)
MySQL Cluster:
The cluster's data nodes failed while trying to load data when
NoOfFrangmentLogFiles was set equal to 1.
(Bug#19894)
MySQL Cluster: Following the restart of a management node, the Cluster management client did not automatically reconnect. (Bug#19873)
MySQL Cluster:
Restoring a backup with ndb_restore failed
when the backup had been taken from a cluster whose
DataMemory had been completely used up.
(Bug#19852)
MySQL Cluster:
Error messages given when trying to make online changes to
parameters such as NoOfReplicas that can only
be changed via a complete shutdown and restart of the cluster
did not indicate the true nature of the problem.
(Bug#19787)
MySQL Cluster:
Under some circumstances, repeated DDL operations on one
mysqld could cause failure of a second
mysqld attached to the same cluster.
(Bug#19770)
MySQL Cluster: ndb_restore did not always make clear that it had recovered successfully from temporary errors while restoring a cluster backup. (Bug#19651)
MySQL Cluster:
Resources for unique indexes on Cluster table columns were
incorrectly allocated, so that only one-fourth as many unique
indexes as indicated by the value of
UniqueHashIndexes could be created.
(Bug#19623)
MySQL Cluster:
LOAD DATA LOCAL failed to ignore duplicate
keys in Cluster tables.
(Bug#19496)
MySQL Cluster: For ndb_mgmd, Valgrind revealed problems with a memory leak and a dependency on an uninitialized variable. (Bug#19318, Bug#20333)
MySQL Cluster:
A DELETE of many rows immediately followed by
an INSERT on the same table could cause the
ndbd process on the backup replica to crash.
(Bug#19293)
MySQL Cluster:
An excessive number of ALTER TABLE operations
could cause the cluster to fail with NDB
error code 773 (Out of string memory, please modify
StringMemory).
(Bug#19275)
MySQL Cluster:
A problem with error handling when
ndb_use_exact_count was enabled could lead to
incorrect values returned from queries using
COUNT(). A warning is
now returned in such cases.
(Bug#19202)
MySQL Cluster:
In rare situations with resource shortages, a crash could result
from insufficient IndexScanOperations.
(Bug#19198)
MySQL Cluster:
Running out of DataMemory could sometimes
crash ndbd and mysqld
processes.
(Bug#19185)
MySQL Cluster:
It was possible to use port numbers greater than 65535 for
ServerPort in the
config.ini file.
(Bug#19164)
MySQL Cluster: ndb_mgm -e show | head would hang after displaying the first 10 lines of output. (Bug#19047)
MySQL Cluster: The error returned by the cluster when too many nodes were defined did not make clear the nature of the problem. (Bug#19045)
MySQL Cluster:
The management client ALL STOP command shut
down mgmd processes (as well as
ndbd processes).
(Bug#18966)
MySQL Cluster:
TRUNCATE TABLE failed to reset the
AUTO_INCREMENT counter.
(Bug#18864)
MySQL Cluster: Restarting a failed node could sometimes crash the cluster. (Bug#18782)
MySQL Cluster: Trying to create or drop a table while a node was restarting caused the node to crash. This is now handled by raising an error. (Bug#18781)
MySQL Cluster:
Repeated CREATE - INSERT -
DROP operations tables could in some
circumstances cause the MySQL table definition cache to become
corrupt, so that some mysqld processes could
access table information but others could not.
(Bug#18595)
MySQL Cluster:
A CREATE TABLE statement involving foreign
key constraints raised an error rather than being silently
ignored (see Section 12.1.16, “CREATE TABLE Syntax”).
This bug affected Cluster in MySQL 5.1 only. (Bug#18483)
MySQL Cluster: The server failed with a non-descriptive error message when out of data memory. (Bug#18475)
MySQL Cluster:
For NDB and possibly
InnoDB tables, a BEFORE
UPDATE trigger could insert incorrect values.
(Bug#18437)
MySQL Cluster:
The DATA_LENGTH and
AVG_ROW_LENGTH columns of the
INFORMATION_SCHEMA.TABLES table did not
report the size of variable-width column values correctly.
See Section 18.2, “The INFORMATION_SCHEMA TABLES Table”, for more information.
(Bug#18413)
MySQL Cluster:
SELECT ... FOR UPDATE failed to lock the
selected rows.
(Bug#18184)
MySQL Cluster: (Disk Data): Deletes from Disk Data tables used a non-optimal scan to find the rows to be deleted, resulting in poor performance. The fix causes disk order rather than memory order to be used, and can improve performance of Disk Data deletes by up to ~300% in some cases. (Bug#17929)
MySQL Cluster:
perror did not properly report
NDB error codes.
(Bug#16561)
MySQL Cluster: A problem with takeover during a system restart caused ordered indexes to be rebuilt incorrectly. This also adversely affected MySQL Cluster Replication. (Bug#15303)
MySQL Cluster: A cluster data node could crash when an ordered index became full before the table containing the index was full. (Bug#14935)
MySQL Cluster:
The management client ALL STATUS command
could sometimes report the status of some data nodes
incorrectly.
(Bug#13985)
MySQL Cluster: New mysqld processes were allowed to connect without a restart of the cluster, causing the cluster to crash. (Bug#13266)
MySQL Cluster: Cluster system status variables were not updated properly. (Bug#11459)
MySQL Cluster: (NDBAPI): Update operations on blobs were not checked for illegal operations.
Read locks with blob update operations are now upgraded from read committed to read shared.
MySQL Cluster:
(Replication): A node failure could send duplicate events,
causing a mysqld replicating tables
containing BLOBs to crash.
MySQL Cluster: The loss of one or more data nodes could sometimes cause ndb_mgmd to use a high amount of CPU (15 percent or more, as opposed to 1 to 2 percent normally).
Partitioning:
Old partition and subpartition files were not always removed
following ALTER TABLE ... REORGANIZE
PARTITION statements.
(Bug#20770)
Disk Data:
On some platforms, ndbd compiled with
gcc 4 would crash when attempting to run
CREATE LOGFILE GROUP.
(Bug#21981)
Disk Data: Trying to create a Disk Data table using a nonexistent tablespace or to drop a nonexistent data file from a tablespace produced an uninformative error message. (Bug#21751)
Disk Data: Errors could occur when dropping a data file during a node local checkpoint. (Bug#21710)
Disk Data:
Creating a tablespace and log file group, then attempting to
restart the cluster without using the --initial
option and without having created any Disk Data tables could
cause a forced shutdown of the cluster and raise a configuration
error.
(Bug#21172)
Disk Data: mysqldump did not back up tablespace or log file group information for Disk Data tables correctly.
Specifically, UNDO_BUFFER_SIZE and
INITIAL_SIZE values were misreported. This
meant that trying to restore from such a backup would produce
error 1296: Got error 1504 'Out of logbuffer memory'
from NDB.
(Bug#20809)
Disk Data: Running a large number of scans on Disk Data could cause subsequent scans to perform poorly. (Bug#20334)
Disk Data:
INFORMATION_SCHEMA.FILES records for UNDO
files showed incorrect values in the
EXTENT_SIZE, FREE_EXTENTS,
and TOTAL_EXTENTS columns.
(Bug#20073)
Disk Data:
A data file created for one tablespace could be dropped using
ALTER TABLESPACE ... DROP DATAFILE using a
different tablespace.
(Bug#20053)
Disk Data: Trying to create Disk Data tables when running the cluster in diskless mode caused cluster data nodes to crash.
Disk Data tables are now disabled when running in diskless mode.
Disk Data: An issue with disk allocation could sometimes cause a forced shutdown of the cluster when running a mix of memory and Disk Data tables. (Bug#18780)
Disk Data:
The failure of a CREATE TABLESPACE or
CREATE LOGFILE GROUP statement did not revert
all changes made prior to the point of failure.
(Bug#16341)
Cluster Replication:
In some cases, a large number of MySQL servers sending requests
to the cluster simultaneously could cause the cluster to crash.
This could also be triggered by many NDB API
clients making simultaneous event subscriptions or
unsubscriptions.
(Bug#20683)
Cluster Replication: One or more of the mysqld processes could fail when subjecting a Cluster replication setup with multiple mysqld processes on both the master and slave clusters to high loads. (Bug#19768)
Cluster Replication:
Data definition and data manipulation statements on different
tables were not serialised correctly in the binlog. For example,
there was no guarantee that a CREATE TABLE
statement and an update on a different table would occur in the
same order in the binlog as they did on the cluster being
replicated.
(Bug#18947)
Cluster API:
The storage/ndb directory was missing from
the server binary distribution, making it impossible to compile
NDB API and MGM API applications. This
directory can be found as
/usr/include/storage/ndb after installing
that distribution.
(Bug#21955)
Cluster API:
Invoking the MGM API function
ndb_mgm_listen_event() caused a memory leak.
(Bug#21671)
Cluster API:
The inclusion of my_config.h in
NdbApi.h required anyone wishing to write
NDB API applications against MySQL 5.1 to have a complete copy
of the 5.1 sources.
(Bug#21253)
Cluster API:
The MGM API function ndb_logevent_get_fd()
was not implemented.
(Bug#21129)
Cluster API:
The NdbOperation::getBlobHandle() method,
when called with the name of a nonexistent column, caused a
segmentation fault.
(Bug#21036)
ALTER EVENT statements including only a
COMMENT clause failed with a syntax error on
two platforms: Linux for S/390, and OS X 10.4 for 64-bit PPC.
(Bug#23423)
When event_scheduler was set to
DISABLED, its value was not displayed
correctly by SHOW VARIABLES or
SELECT @@global.event_scheduler.
(Bug#22662)
BIT columns were not replicated properly
under row-based replication.
(Bug#22550)
ALTER EVENT in the body of a stored procedure
led to a crash when the procedure was called. This affected only
those ALTER EVENT statements which changed
the interval of the event.
(Bug#22397)
The optimizer could make an incorrect index choice for indexes with a skewed key distribution. (Bug#22393)
Deleting entries from a large MyISAM index
could cause index corruption when it needed to shrink. Deletes
from an index can happen when a record is deleted, when a key
changes and must be moved, and when a key must be un-inserted
because of a duplicate key. This can also happen in
REPAIR TABLE when a duplicate key is found
and in myisamchk when sorting the records by
an index.
(Bug#22384)
Instance Manager had a race condition involving mysqld PID file removal. (Bug#22379)
yaSSL had a conflicting definition for
socklen_t on hurd-i386 systems.
(Bug#22326)
Conversion of values inserted into a BIT
column could affect adjacent columns.
(Bug#22271)
Some Linux-x86_64-icc packages (of previous releases) mistakenly contained 32-bit binaries. Only ICC builds are affected, not gcc builds. Solaris and FreeBSD x86_64 builds are not affected. (Bug#22238)
mysql_com.h unnecessarily referred to the
ulong type.
(Bug#22227)
The source distribution would not build on Windows due to a
spurious dependency on ib_config.h.
(Bug#22224)
Execution of a prepared statement that uses an
IN subquery with aggregate functions in the
HAVING clause could cause a server crash.
(Bug#22085)
The CSV storage engine failed to detect some
table corruption.
(Bug#22080)
Using GROUP_CONCAT() on the
result of a subquery in the FROM clause that
itself used GROUP_CONCAT() could
cause a server crash.
(Bug#22015)
Running SHOW MASTER LOGS at the same time as
binary log files were being switched would cause
mysqld to hang.
(Bug#21965)
libmysqlclient defined a symbol
BN_bin2bn which belongs to OpenSSL. This
could break applications that also linked against OpenSSL's
libcrypto library. The fix required
correcting an error in a build script that was failing to add
rename macros for some functions.
(Bug#21930)
character_set_results can be
NULL to signify “no conversion,”
but some code did not check for NULL,
resulting in a server crash.
(Bug#21913)
A misleading error message was displayed when attempting to define a unique key that was not valid for a partitioned table. (Bug#21862)
A query that used GROUP BY and an
ALL or ANY quantified
subquery in a HAVING clause could trigger an
assertion failure.
(Bug#21853)
An InnoDB mutex was not aquired and released
under the same condition, leading to deadlock in some rare
situations involving XA transactions.
(Bug#21833)
A NUL byte within a prepared statement string
caused the rest of the string not to be written to the query
log, allowing logging to be bypassed.
(Bug#21813)
COUNT(*) queries with
ORDER BY and LIMIT could
return the wrong result.
This problem was introduced by the fix for Bug#9676, which
limited the rows stored in a temporary table to the
LIMIT clause. This optimization is not
applicable to non-group queries with aggregate functions. The
current fix disables the optimization in such cases.
Using DROP TABLE with concurrent queries
causes mysqld to crash.
(Bug#21784)
INSERT ... SELECT sometimes generated a
spurious Column count doesn't match value
count error.
(Bug#21774)
UPGRADE was treated as a reserved word,
although it is not.
(Bug#21772)
A function result in a comparison was replaced with a constant by the optimizer under some circumstances when this optimization was invalid. (Bug#21698)
Selecting from INFORMATION_SCHEMA.FILES could
crash the server.
(Bug#21676)
Errors could be generated during the execution of certain prepared statements that ran queries on partitioned tables. (Bug#21658)
The presence of a subquery in the ON clause
of a join in a view definition prevented the
MERGE algorithm from being used for the view
in cases where it should be allowed.
(Bug#21646)
When records are merged from the insert buffer and the page
needs to be reorganized, InnoDB used
incorrect column length information when interpreting the
records of the page. This caused a server crash due to apparent
corruption of secondary indexes in
ROW_FORMAT=COMPACT that contain prefix
indexes of fixed-length columns. Data files should not be
corrupted, but the crash was likely to repeat every time the
server was restarted.
(Bug#21638)
For character sets having a mbmaxlen value of
2, any ALTER TABLE statement changed
TEXT columns to
MEDIUMTEXT.
(Bug#21620)
mysql displayed an empty string for
NULL values.
(Bug#21618)
Selecting from a MERGE table could result in
a server crash if the underlying tables had fewer indexes than
the MERGE table itself.
(Bug#21617, Bug#22937)
A loaded storage engine plugin did not load after a server restart. (Bug#21610)
For INSERT ... ON DUPLICATE KEY UPDATE, use
of
VALUES(
within the col_name)UPDATE clause sometimes was
handled incorrectly.
(Bug#21555)
Subqueries with aggregate functions but no
FROM clause could return incorrect results.
(Bug#21540)
mysqldump incorrectly tried to use
LOCK TABLES for tables in the
INFORMATION_SCHEMA database.
(Bug#21527)
The server could crash for the second execution of a function
containing a SELECT statement that uses an
aggregating IN subquery.
(Bug#21493)
Memory overruns could occur for certain kinds of subqueries. (Bug#21477)
A DATE can be represented as an integer (such
as 20060101) or as a string (such as
'2006.01.01'). When a DATE
(or TIME) column is compared in one
SELECT against both representations, constant
propagation by the optimizer led to comparison of
DATE as a string against
DATE as an integer. This could result in
integer comparisons such as 2006 against
20060101, erroneously producing a false
result.
(Bug#21475)
For row-based replication, log rotation could occur at an improper time. (Bug#21474)
myisam_ftdump produced bad counts for common words. (Bug#21459)
Adding ORDER BY to a SELECT
DISTINCT( query could
produce incorrect results.
(Bug#21456)expr)
The URL into the online manual that is printed in the stack trace message by the server was out of date. (Bug#21449)
Database and table names have a maximum length of 64 characters (even if they contain multi-byte characters), but were truncated to 64 bytes.
An additional fix was made in MySQL 5.1.18.
With max_sp_recursion set to 0, a stored
procedure that executed a SHOW CREATE
PROCEDURE statement for itself triggered a recursion
limit exceeded error, though the statement involves no
recursion.
(Bug#21416)
After FLUSH TABLES WITH READ LOCK followed by
UNLOCK TABLES, attempts to drop or alter a
stored routine failed with an error that the routine did not
exist, and attempts to execute the routine failed with a lock
conflict error.
(Bug#21414)
On 64-bit Windows, a missing table generated error 1017, not the correct value of 1146. (Bug#21396)
Table aliases in multiple-table DELETE
statements sometimes were not resolved.
(Bug#21392)
The optimizer sometimes produced an incorrect row-count estimate
after elimination of const tables. This
resulted in choosing extremely inefficient execution plans in
same cases when distribution of data in joins were skewed.
(Bug#21390)
For multiple-table UPDATE statements, storage
engines were not notified of duplicate-key errors.
(Bug#21381)
Using relative paths for DATA DIRECTORY or
INDEX DIRECTORY with a partitioned table
generated a warning rather than an error, and caused
“junk” files to be created in the server's data
directory.
(Bug#21350)
Using EXPLAIN PARTITIONS with a query on a
table whose partitioning expression was based on the value of a
DATE column could sometimes cause the server
to crash.
(Bug#21339)
The feature of being able to recover a temporary table named
#sql_ in
idInnoDB by creating a table named
rsql_
was broken by the introduction of the new identifier encoding in
MySQL 5.1.6
(Bug#21313)id_recover_innodb_tmp_table
It was possible for a stored routine with a
non-latin1 name to cause a stack overrun.
(Bug#21311)
A query result could be sorted improperly when using
ORDER BY for the second table in a join.
(Bug#21302)
Query results could be incorrect if the WHERE
clause contained t., where
key_part
NOT IN (val_list)val_list is a list of more than 1000
constants.
(Bug#21282)
Queries that used the index_merge and
sort_union methods to access an
InnoDB table could produce inaccurate
results. This issue was introduced in MySQL 5.1.10 when a new
handler and bitmap interface was implemented.
(Bug#21277)
For user-defined functions created with CREATE
FUNCTION, the DEFINER clause is not
legal, but no error was generated.
(Bug#21269)
The SELECT privilege was required for an
insert on a view, instead of the INSERT
privilege.
(Bug#21261)
This regression was introduced by Bug#20989
mysql_config --libmysqld-libs did not produce
any SSL options necessary for linking
libmysqld with SSL support enabled.
(Bug#21239)
Subqueries on INFORMATION_SCHEMA tables could
erroneously return an empty result.
(Bug#21231)
mysql_upgrade created temporary files in a possibly insecure way. (Bug#21224)
When DROP DATABASE or SHOW OPEN
TABLES was issued while concurrently in another
connection issuing DROP TABLE,
RENAME TABLE, CREATE TABLE
LIKE or any other statement that required a name lock,
the server crashed.
(Bug#21216, Bug#19403)
The --master-data option for
mysqldump requires certain privileges, but
mysqldump generated a truncated dump file
without producing an appropriate error message or exit status if
the invoking user did not have those privileges.
(Bug#21215)
Using ALTER TABLE ... REORGANIZE PARTITIONS
to reduce the number of subpartitions to 1 caused the server to
crash.
(Bug#21210)
In the package of pre-built time zone tables that is available
for download at timezones.html, the tables now
explicitly use the utf8 character set so that
they work the same way regardless of the system character set
value.
(Bug#21208)
Under heavy load (executing more than 1024 simultaneous complex queries), a problem in the code that handles internal temporary tables could lead to writing beyond allocated space and memory corruption.
Use of more than 1024 simultaneous cursors server wide also could lead to memory corruption. This applies to both stored procedure cursors and C API cursors. (Bug#21206)
When run with the --use-threads option,
mysqlimport returned a random exit code.
(Bug#21188)
A subquery that uses an index for both the
WHERE and ORDER BY clauses
produced an empty result.
(Bug#21180)
Running SHOW TABLE STATUS on any
InnoDB table having at least one record could
crash the server. Note that this was not due to any issue in the
InnoDB storage engine, but rather with
AUTO_INCREMENT handling in the partitioning
code — however, the table did not have to have an
AUTO_INCREMENT column for the bug to
manifest.
(Bug#21173)
Some prepared statements caused a server crash when executed a second time. (Bug#21166)
The optimizer assumed that if (a=x AND b=x)
is true, (a=x AND b=x) AND a=b is also true.
But that is not always so if a and
b have different data types.
(Bug#21159)
Some ALTER TABLE statements affecting a
table's subpartitioning could hang.
(Bug#21143)
Certain malformed INSERT statements could
crash the mysql client.
(Bug#21142)
SHOW INNODB STATUS contained some duplicate
output.
(Bug#21113)
InnoDB was slow with more than 100,000
.idb files.
(Bug#21112)
Creating a TEMPORARY table with the same name
as an existing table that was locked by another client could
result in a lock conflict for DROP TEMPORARY
TABLE because the server unnecessarily tried to
acquire a name lock.
(Bug#21096)
Performing an INSERT on a view that was
defined using a SELECT that specified a
collation and a column alias caused the server to crash .
(Bug#21086)
Incorrect results could be obtained from re-execution of a
parametrized prepared statement or a stored routine with a
SELECT that uses LEFT JOIN
with a second table having only one row.
(Bug#21081)
ALTER VIEW did not retain existing values of
attributes that had been originally specified but were not
changed in the ALTER VIEW statement.
(Bug#21080)
The myisam_stats_method variable was
mishandled when set from an option file or on the command line.
(Bug#21054)
With query_cache_type set to 0,
RESET QUERY CACHE was very slow and other
threads were blocked during the operation. Now a cache reset is
faster and non-blocking.
(Bug#21051)
mysql crashed for very long arguments to the
connect command.
(Bug#21042)
When creating a table using CREATE...SELECT
and a stored procedure, there would be a mismatch between the
binary log and transaction cache which would cause a server
crash.
(Bug#21039)
A query using WHERE did not
return consistent results on successive invocations. The
column =
constant OR
column IS NULLcolumn in each part of the
WHERE clause could be either the same column,
or two different columns, for the effect to be observed.
(Bug#21019)
mysqldump sometimes did not select the correct database before trying to dump views from it, resulting in an empty result set that caused mysqldump to die with a segmentation fault. (Bug#21014)
Performance during an import on a table with a trigger that called a stored procedure was severely degraded. (Bug#21013)
mysql_upgrade produced a malformed
upgrade_defaults file by overwriting the
[client] group header with a
password option. This prevented
mysqlcheck from running successfully when
invoked by mysql_upgrade.
(Bug#21011)
A query of the form shown here caused the server to crash:
SELECT * FROM t1 NATURAL JOIN (
t2 JOIN (
t3 NATURAL JOIN t4,
t5 NATURAL JOIN t6
)
ON (t3.id3 = t2.id3 AND t5.id5 = t2.id5)
);
A SELECT that used a subquery in the
FROM clause that did not select from a table
failed when the subquery was used in a join.
(Bug#21002)
REPLACE ... SELECT for a view required the
INSERT privilege for tables other than the
table being modified.
(Bug#20989)
STR_TO_DATE() sometimes would
return NULL if the %D
format specifier was not the last specifier in the format
string.
(Bug#20987)
A query using WHERE NOT
( yielded a
different result from the same query using the same
column < ANY
(subquery))column and
subquery with WHERE
(.
(Bug#20975)column > ANY
(subquery))
Under certain circumstances,
AVG(
returned a value but
key_val)MAX(
returned an empty set due to incorrect application of
key_val)MIN()/MAX()
optimization.
(Bug#20954)
In mixed-format binary logging mode, stored functions, triggers,
and views that use functions in their body that require
row-based logging did not replicate reliably because the logging
did not switch from statement-based to row-based format. For
example, INSERT INTO t SELECT FROM v, where
v is a view that selects
UUID() could cause problems.
This limitation has been removed.
(Bug#20930)
Closing of temporary tables failed if binary logging was not enabled. (Bug#20919)
Use of zero-length variable names caused a server crash. (Bug#20908)
Building mysql on Windows with CMake 2.4
would fail to create libmysqld correctly.
(Bug#20907)
Creating a partitioned table that used the
InnoDB storage engine and then restarting
mysqld with --skip-innodb
caused MySQL to crash.
(Bug#20871)
For certain queries, the server incorrectly resolved a reference to an aggregate function and crashed. (Bug#20868)
If the binary logging format was changed between the times when a locked table was modified and when it was unlocked, the binary log contents were incorrect. (Bug#20863)
It was possible to provide the
ExtractValue() function
with input containing “tags” that were not valid
XML; for example, it was possible to use tag names beginning
with a digit, which are disallowed by the W3C's XML 1.0
specification. Such cases caused the function to return
“junk” output rather than an error message
signalling the user as to the true nature of the problem.
(Bug#20854)
InnoDB (Partitioning): Updating an
InnoDB table using HASH
partitioning with a composite primary key would cause the server
to hang.
(Bug#20852)
A race condition during slave server shutdown caused an assert failure. (Bug#20850)
mysqldump did not add version-specific
comments around WITH PARSER and
TABLESPACE ... STORAGE DISK clauses for
CREATE TABLE statements, causing dump files
from servers where these features were in use to fail when
loaded into older servers.
(Bug#20841)
For multiple INSERT DELAYED statements
executed in a batch by the delayed-insert handler thread, not
all rows were written to the binary log.
(Bug#20821)
The ExtractValue() function did
not accept XML tag names containing a period
(.) character.
(Bug#20795)
Using aggregate functions in subqueries yielded incorrect
results under certain circumstances due to incorrect application
of
MIN()/MAX()
optimization.
(Bug#20792)
On Windows, inserting into a MERGE table
after renaming an underlying MyISAM table
caused a server crash.
(Bug#20789)
Within stored routines, some error messages were printed incorrectly. A non-null-terminated string was passed to a message-printing routine that expected a null-terminated string. (Bug#20778)
Merging multiple partitions having subpartitions into a single
partition with subpartitions, or splitting a single partition
having subpartitions into multiple partitions with
subpartitions, could sometimes crash the server. These issues
were associated with a failure reported in the
partition_range test.
(Bug#20767, Bug#20893, Bug#20766, Bug#21357)
Searches against a ZEROFILL column of a
partitioned table could fail when the
ZEROFILL column was part of the table's
partitioning key.
(Bug#20733)
If a column definition contained a character set declaration,
but a DEFAULT value began with an introducer,
the introducer character set was used as the column character
