Functionality added or changed:
The handling of BIT columns has been
improved, and should now be much more reliable in a number of
cases.
(Bug#11572, Bug#11091, Bug#10617)
Recursion in stored routines is now disabled because it was crashing the server. We plan to modify stored routines to allow this to operate safely in a future release. (Bug#11394)
An attempt to create a TIMESTAMP column with
a display width (for example, TIMESTAMP(6))
now results in a warning. Display widths have not been supported
for TIMESTAMP since MySQL 4.1.
(Bug#10466)
mysql_real_escape_string() API
function now respects NO_BACKSLASH_ESCAPES
SQL mode.
(Bug#10214)
InnoDB: Made CHECK TABLE
killable.
(Bug#9730)
InnoDB: Make
innodb_thread_concurrency=20 by default.
Bypass the concurrency checking if the setting is greater than
or equal to 20.
InnoDB: Various optimizations. Removed
unreachable debug code from non-debug builds. Added hints for
the branch predictor in gcc. Made assertions
occupy less space.
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 innodb_file_per_table
mode.
Bugs fixed:
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)
The --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.
(Bug#11678)
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 BLOB column.
(Bug#11657)
Incorrect results when using GROUP BY ... WITH
ROLLUP on a VIEW.
(Bug#11639)
MySQL would not compile correctly on QNX due to missing
rint() function.
(Bug#11544)
A SELECT DISTINCT would work correctly with a col_name
MyISAM
table only when there was an index on
col_name.
(Bug#11484)
Using CONCAT_WS() on a column
set NOT NULL caused incorrect results when
used in a LEFT JOIN.
(Bug#11469)
Temporary tables were created in the data directory instead of
tmpdir.
(Bug#11440)
Running a CHECK TABLES on multiple views
crashed the server.
(Bug#11337)
Manually inserting a row with host='' into
mysql.tables_priv and performing a
FLUSH PRIVILEGES would cause the server to
crash.
(Bug#11330)
Wrong comparison method used in VIEW when
relaxed date syntax used (for example,
2005.06.10).
(Bug#11325)
Signed BIGINT would not accept
-9223372036854775808 as a
DEFAULT value.
(Bug#11215)
Optimizer performed range check when comparing unsigned integers to negative constants, could cause errors. (Bug#11185)
A cursor using a query with a filter on a
DATE or DATETIME column
would cause the server to crash server after the data was
fetched.
(Bug#11172)
The mysql_config script did not handle
symbolic linking properly.
(Bug#10986)
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)
Instances of the VAR_SAMP()
function in view definitions were converted to
VARIANCE(). This is incorrect
because VARIANCE() is the same
as VAR_POP(), not
VAR_SAMP().
(Bug#10651)
DES_ENCRYPT() and
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 these functions.
(Bug#10589)
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 WHERE clause
would succeed.
(Bug#10178)
When used in joins, SUBSTRING()
failed to truncate to zero those string values that could not be
converted to numbers.
(Bug#10124)
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)
The server would lose table-level CREATE VIEW
and SHOW VIEW privileges following a
FLUSH PRIVILEGES or server restart.
(Bug#9795)
mysqldump --xml did not format
NULL column values correctly.
(Bug#9657)
The --no-data option for
mysqldump was being ignored if table names
were given after the database name.
(Bug#9558)
Clients would hang following some errors with stored procedures. (Bug#9503)
mysqldump could crash for illegal or non-existent 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.)
(Bug#8321)
The ENCRYPT() and
SUBSTRING_INDEX() functions
would cause errors when used with a VIEW.
(Bug#7024)
SHOW CREATE VIEW did not take the
ANSI MODE into account when quoting
identifiers.
(Bug#6903)
In strict mode, an INSERT into a view that
did not include a value for a NOT 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 NOT NULL
column.
(Bug#6443)

User Comments
Add your own comment.