This is a bugfix release for the recent production release family.
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 Network (a commercial MySQL offering). For more details please see http://www.mysql.com/network/advisors.html.
Functionality added or changed:
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)
Added the --set-charset option to
mysqlbinlog to allow the character set to
be specified for processing binary log files. (Bug#18351)
For a table with an AUTO_INCREMENT column,
SHOW CREATE TABLE now shows the next
AUTO_INCREMENT value to be generated. (Bug#19025)
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)
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 5.10.9, “MySQL Server Locale Support”.
Bugs fixed:
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. (CVE-2006-4226, Bug#17647)
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)
Security fix: Invalid
arguments to DATE_FORMAT() caused a server
crash.
(CVE-2006-3469,
Bug#20729) Thanks to Jean-David Maillefer for discovering and
reporting this problem to the Debian project and to Christian
Hammers from the Debian Team for notifying us of it.
Closing of temporary tables failed if binary logging was not enabled. (Bug#20919)
Repeated DROP TABLE statements in a stored
procedure could sometimes cause the server to crash. (Bug#19399)
DATE_ADD() and
DATE_SUB() returned NULL
when the result date was on the day
'9999-12-31'. (Bug#12356)
For a DATE parameter sent via a
MYSQL_TIME data structure,
mysql_stmt_execute() zeroed the hour,
minute, and second members of the structure rather than
treating them as read-only. (Bug#20152)
The DATA DIRECTORY table option did not
work for TEMPORARY tables. (Bug#8706)
The mysql client did not ignore
client-specific commands (such as use or
help) that occurred as the first word on a
line within multiple-line /* ... */
comments. (Bug#20432)
The mysql client did not understand
help commands that had spaces at the end.
(Bug#20328)
Failure to account for a NULL table pointer
on big-endian machines could cause a server crash during type
conversion. (Bug#21135)
Some memory leaks in the libmysqld embedded
server were corrected. (Bug#16017)
When mysqldump disabled keys and locked a
MyISAM table, the lock operation happened
second. If another client performed a query on the table in
the interim, it could take a long time due to indexes not
being used. Now the lock operation happens first. (Bug#15977)
The length of the pattern string prefix for
LIKE operations was calculated incorrectly
for multi-byte character sets. As a result, the the scanned
range was wider than necessary if the prefix contained any
multi-byte characters. (Bug#16674, Bug#18359)
For very complex SELECT statements could
create temporary tables that were too big, but for which the
temporary files did not get removed, causing subsequent
queries to fail. (Bug#11824)
Using SELECT and a table join while running
a concurrent INSERT operation would join
incorrect rows. (Bug#14400)
Using SELECT on a corrupt
MyISAM table using the dynamic record
format could cause a server crash. (Bug#19835)
Checking a MyISAM table (using
CHECK TABLE) having a spatial index and
only one row would wrongly indicate that the table was
corrupted. (Bug#17877)
For SELECT ... FOR UPDATE statements that
used DISTINCT or GROUP
BY over all key parts of a unique index (or primary
key), the optimizer unnecessarily created a temporary table,
thus losing the linkage to the underlying unique index values.
This caused a Result set not updatable
error. (The temporary table is unnecessary because under these
circumstances the distinct or grouped columns must also be
unique.) (Bug#16458)
Concatenating the results of multiple constant subselects produced incorrect results. (Bug#16716)
The use of MIN() and
MAX() on columns with a partial index
produced incorrect results in some queries. (Bug#18206)
Use of MIN() or MAX()
with GROUP BY on a ucs2
column could cause a server crash. (Bug#20076)
INSERT INTO ... SELECT ... LIMIT 1 could be
slow because the LIMIT was ignored when
selecting candidate rows. (Bug#9676)
NDB Cluster: A Cluster whose storage nodes
were installed from the
MySQL-ndb-storage-
RPMs could not perform *CREATE or
ALTER operations that made use of
non-default character sets or collations. (Bug#14918)
NDB 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)
NDB Cluster: When attempting to restart the
cluster following a data import, the cluster would fail during
Phase 4 of the restart with Error 2334: Job buffer
congestion. (Bug#20774)
NDB Cluster: A node failure during a scan
could sometime cause the node to crash when restarting too
quickly following the failure. (Bug#20197)
NDB Cluster: It was possible to use port
numbers greater than 65535 for ServerPort
in the config.ini file. (Bug#19164)
The omission of leading zeros in dates could lead to erroneous results when these were compared with the output of certain date and time functions. (Bug#16377)
Certain queries having a WHERE clause that
included conditions on multi-part keys with more than 2 key
parts could produce incorrect results and send
[Note] Use_count: Wrong count for key
at... messages to STDERR. (Bug#16168)
An invalid comparison between keys in partial indexes over
multi-byte character fields could lead to incorrect result
sets if the selected query execution plan used a range scan by
a partial index over a UTF8 character
field. This also caused incorrect results under similar
circumstances with many other character sets. (Bug#14896)
NDB Cluster: The cluster's data nodes would
fail while trying to load data when
NoOfFrangmentLogFiles was equal to 1. (Bug#19894)
NDB 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)
NDB Cluster: LOAD DATA
LOCAL failed to ignore duplicate keys in Cluster
tables. (Bug#19496)
NDB 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)
NDB Cluster: The mgm
client command ALL CLUSTERLOG
STATISTICS=15; had no effect. (Bug#20336)
NDB Cluster: TRUNCATE
TABLE failed to reset the
AUTO_INCREMENT counter. (Bug#18864)
NDB 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)
NDB Cluster: Renaming a table in such a way
as to move it to to a different database failed to move the
table's indexes. (Bug#19967)
NDB 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)
NDB Cluster (NDBAPI): On big-endian
platforms, NdbOperation::write_attr() did
not update 32-bit fields correctly. (Bug#19537)
NDB Cluster: Some queries having a
WHERE clause of the form c1=val1
OR c2 LIKE 'val2' were not evaluated correctly. (Bug
# 17421)
NDB Cluster: Using “stale”
mysqld .FRM files
could cause a newly-restored cluster to fail. This situation
could arise when restarting a MySQL Cluster using the
--intial option while leaving connected
mysqld processes running. (Bug#16875)
NDB Cluster: Repeated use of the
SHOW and ALL STATUS
commands in the ndb_mgm client could cause
the mgmd process to crash. (Bug#18591)
NDB Cluster: An issue with
ndb_mgmd prevented more than 27
mysqld processes from connecting to a
single cluster at one time. (Bug#17150)
NDB Cluster: Data node failures could cause
excessive CPU usage by ndb_mgmd. (Bug#13987)
NDB Cluster: TRUNCATE
failed on tables having BLOB or
TEXT columns with the error Lock
wait timeout exceeded. (Bug#19201)
A cast problem caused incorrect results for prepared statements that returned float values when MySQL was compiled with gcc 4.0. (Bug#19694)
Improper character set initialization in the embedded server could result in a server crash. (Bug#20318)
Some queries that used ORDER BY and
LIMIT performed quickly in MySQL 3.23, but
slowly in MySQL 4.x/5.x due to an optimizer problem. (Bug#4981)
Queries using an indexed column as the argument for the
MIN() and MAX()
functions following an ALTER TABLE .. DISABLE
KEYS statement returned Got error 124
from storage engine until ALTER TABLE ...
ENABLE KEYS was run on the table. (Bug#20357)
A number of dependency issues in the RPM
bench and test packages
caused installation of these packages to fail. (Bug#20078)
The MD5() and SHA() functions treat their arguments as case-sensitive strings. But when they are compared, their arguments were compared as case-insensitive strings, which leads to two function calls with different arguments (and thus different results) compared as being identical. This can lead to a wrong decision made in the range optimizer and thus to an incorrect result set. (Bug#15351)
InnoDB unlocked its data directory before
committing a transaction, potentially resulting in
non-recoverable tables if a server crash occurred before the
commit. (Bug#19727)
Multiple-table DELETE statements containing
a subquery that selected from one of the tables being modified
caused a server crash. (Bug#19225)
The ARCHIVE storage engine does not support
TRUNCATE TABLE, but the server was not
returning an appropriate error when truncation of an
ARCHIVE table was attempted. (Bug#15558)
An update that used a join of a table to itself and modified the table on both sides of the join reported the table as crashed. (Bug#18036)
The fill_help_tables.sql file did not
load properly if the ANSI_QUOTES SQL mode
was enabled. (Bug#20542)
The fill_help_tables.sql file did not
contain a SET NAMES 'utf8' statement to
indicate its encoding. This caused problems for some settings
of the MySQL character set such as big5.
(Bug#20551)
The MySQL server startup script /etc/init.d/mysql (created from mysql.server) is now marked to ensure that the system services ypbind, nscd, ldap, and NTP are started first (if these are configured on the machine). (Bug#18810)
For a reference to a non-existent index in FORCE
INDEX, the error message referred to a column, not
an index. (Bug#17873)
In a multiple-row INSERT statement,
LAST_INSERT_ID() should return the same
value for each row. However, in some cases, the value could
change if the table being inserted into had its own
AUTO_INCREMENT column. (Bug#6880)
Invalid escape sequences in option files caused MySQL programs that read them to abort. (Bug#15328)
Binary log lacked character set information for table name when dropping temporary tables. (Bug#14157)
InnoDB did not increment the
handler_read_prev counter. (Bug#19542)
Slave SQL thread cleanup was not handled properly on Mac OS X when a statement was killed, resulting in a slave crash. (Bug#16900)
mysqldump did not respect the order of
tables named with the --tables option. (Bug#18536)
The server no longer uses a signal handler for signal 0 because it could cause a crash on some platforms. (Bug#15869)
LOAD_FILE() returned an error if the file
did not exist, rather than NULL as it
should according to the manual. (Bug#10418)
Use of uninitialized user variables in a subquery in the
FROM clause results in bad entries in the
binary log. (Bug#19136)
IS_USED_LOCK() could return an incorrect
connection identifier. (Bug#16501)
Concurrent reading and writing of privilege structures could crash the server. (Bug#16372)
A statement containing GROUP BY and
HAVING clauses could return incorrect
results when the HAVING clause contained
logic that returned FALSE for every row.
(Bug#14927)
MONTHNAME(STR_TO_DATE(NULL, '%m')) could
cause a server crash. (Bug#18501)
The ref optimizer could choose the
ref_or_null access method in cases where it
was not applicable. This could cause inconsistent
EXPLAIN or SELECT
results for a given statement. (Bug#16798)
ANALYZE TABLE for
TEMPORARY tables had no effect. (Bug#15225)
When myisamchk needed to rebuild a table,
AUTO_INCREMENT information was lost. (Bug#10405)
No error message was being issued for storage engines that do
not support ALTER TABLE. Now an
ER_NOT_SUPPORTED_YET error occurs. (Bug#7643)
The binary log would create an incorrect
DROP query when creating temporary tables
during replication. (Bug#17263)
SHOW CREATE TABLE did not display the
AUTO_INCREMENT column attribute if the SQL
mode was MYSQL323 or
MYSQL40. This also affected
mysqldump, which uses SHOW CREATE
TABLE to get table definitions. (Bug#14515)

User Comments
Add your own comment.