Functionality Added or Changed
The handling of
BIT columns has
been improved, and should now be much more reliable in a number
(Bug #11572, Bug #11091, Bug #10617)
Recursion in stored routines is now disabled because it was crashing the server. (Bug #11394)
InnoDB: Various optimizations. Removed
unreachable debug code from nondebug builds. Added hints for the
branch predictor in gcc. Made assertions
occupy less space.
innodb_thread_concurrency = 20 by default.
Bypass the concurrency checking if the setting is greater than
or equal to 20.
InnoDB: When creating or extending an
InnoDB data file, at most one megabyte at a
time is allocated for initializing the file. Previously,
InnoDB allocated and initialized 1 or 8
megabytes of memory, even if only a few 16-kilobyte pages were
to be written. This improves the performance of
CREATE TABLE in
MySQL Cluster: When trying to open a table that could not be discovered or unpacked, the cluster returned error codes which the MySQL server falsely interpreted as operating system errors. (Bug #10365)
--master-data option for
mysqldump resulted in no error if the binary
log was not enabled. Now an error occurs unless the
--force option is given.
When a table had a primary key containing a
BLOB column, creation of another
index failed with the error
BLOB/TEXT column used in
key specification without keylength, even when the new
index did not contain a
Incorrect results when using
GROUP BY ... WITH
ROLLUP on a
MySQL would not compile correctly on QNX due to missing
SELECT DISTINCT would work correctly with a
table only when there was an index on
CONCAT_WS() on a column set
NOT NULL caused incorrect results when used
Temporary tables were created in the data directory instead of
CHECK TABLES on multiple views
crashed the server.
Manually inserting a row with
mysql.tables_priv and performing a
PRIVILEGES would cause the server to crash.
Wrong comparison method used in
relaxed date syntax used (for example,
BIGINT would not accept
-9223372036854775808 as a
Optimizer performed range check when comparing unsigned integers to negative constants, could cause errors. (Bug #11185)
mysql_config script did not handle
symbolic linking properly.
mysqldump failed when reloading a view if the view was defined in terms of a different view that had not yet been reloaded. mysqldump now creates a dummy table to handle this case. (Bug #10927)
If a prepared statement cursor is opened but not completely fetched, attempting to open a cursor for a second prepared statement will fail. (Bug #10794)
Combining cursors and subqueries could cause server crash or memory leaks. (Bug #10736)
DES_DECRYPT() require SSL support
to be enabled, but were not checking for it. Checking for
incorrect arguments or resource exhaustion was also improved for
MEMORY tables, it was possible for
updates to be performed using outdated key statistics when the
updates involved only very small changes in a very few rows.
This resulted in the random failures of queries such as
UPDATE t SET col = col + 1 WHERE col_key = 2;
where the same query with no
When used in joins,
failed to truncate to zero those string values that could not be
converted to numbers.
Views did not use indexes on all appropriate queries. (Bug #10031)
Closing a cursor that was already closed would cause MySQL to hang. (Bug #9814)
mysqldump --xml did not format
NULL column values correctly.
--no-data option for
mysqldump was being ignored if table names
were given after the database name.
Clients would hang following some errors with stored procedures. (Bug #9503)
mysqldump could crash for illegal or nonexistent table names. (Bug #9358)
A compression algorithm issue caused
myisampackto fail for very large data sets
(where the total size of all records in a single column was on
the order of 3 GB or more) on 64-bit platforms. (A fix for other
platforms was made in MySQL 5.0.6.)
In strict mode, an
INSERT into a
view that did not include a value for a
NULL column but that did include a
WHERE test on the same column would succeed,
This happened even though the
INSERT should have been prevented
due to the failure to supply a value for the