Functionality Added or Changed
Recursion in stored routines is now disabled because it was crashing the server. (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)
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.
InnoDB: Various optimizations. Removed
unreachable debug code from nondebug builds. Added hints for the
branch predictor in gcc. Made assertions
occupy less space.
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)
mysql_real_escape_string() API
function now respects
NO_BACKSLASH_ESCAPES SQL mode.
(Bug #10214)
InnoDB: Make
innodb_thread_concurrency = 20 by default.
Bypass the concurrency checking if the setting is greater than
or equal to 20.
InnoDB: Made CHECK
TABLE killable.
(Bug #9730)
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 ENCRYPT() and
SUBSTRING_INDEX() functions would
cause errors when used with a VIEW.
(Bug #7024)
Optimizer performed range check when comparing unsigned integers to negative constants, could cause errors. (Bug #11185)
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)
SHOW CREATE VIEW did not take the
ANSI SQL mode into account
when quoting identifiers.
(Bug #6903)
mysqldump could crash for illegal or nonexistent table names. (Bug #9358)
The mysql_config script did not handle
symbolic linking properly.
(Bug #10986)
mysqldump --xml did not format
NULL column values correctly.
(Bug #9657)
When used in joins, SUBSTRING()
failed to truncate to zero those string values that could not be
converted to numbers.
(Bug #10124)
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)
Signed BIGINT would not accept
-9223372036854775808 as a
DEFAULT value.
(Bug #11215)
Combining cursors and subqueries could cause server crash or memory leaks. (Bug #10736)
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)
Temporary tables were created in the data directory instead of
tmpdir.
(Bug #11440)
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)
Wrong comparison method used in VIEW when
relaxed date syntax used (for example,
2005.06.10).
(Bug #11325)
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)
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)
Views did not use indexes on all appropriate queries. (Bug #10031)
Manually inserting a row with host='' into
mysql.tables_priv and performing a
FLUSH
PRIVILEGES would cause the server to crash.
(Bug #11330)
MySQL would not compile correctly on QNX due to missing
rint() function.
(Bug #11544)
Incorrect results when using GROUP BY ... WITH
ROLLUP on a VIEW.
(Bug #11639)
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)
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)
A SELECT DISTINCT would work correctly with a col_name
MyISAM
table only when there was an index on
col_name.
(Bug #11484)
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)
Closing a cursor that was already closed would cause MySQL to hang. (Bug #9814)
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 --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)
Using CONCAT_WS() on a column set
NOT NULL caused incorrect results when used
in a LEFT JOIN.
(Bug #11469)
Running a CHECK TABLES on multiple views
crashed the server.
(Bug #11337)
The server would lose table-level CREATE
VIEW and SHOW VIEW
privileges following a
FLUSH
PRIVILEGES or server restart.
(Bug #9795)
