Functionality Added or Changed
Security Fix: A UDF library-loading vulnerability could result in a buffer overflow and code execution. (CVE-2005-2558)
Improved the optimizer to be able to use indexes for expressions
of the form
indexed_col NOT BETWEEN
All characters occurring on the same line following the
DELIMITER keyword will be set as delimiter.
DELIMITER :; will set
:; as the delimiter. This behavior is now
consistent between MySQL 5.1 and MySQL 5.0.
C API function for setting the default character set of the
current connection. This enables clients to affect the character
set used by
Placeholders now can be used for
mysqlwatch.exe from the Windows “No
Installer” distribution (they had already been removed
from the “With Installer” distribution before).
Removed those programs from the source distribution.
InnoDB: In stored procedures and functions,
InnoDB no longer takes full explicit table
locks for every involved table. Only “intention”
locks are taken, similar to those in the execution of an
ordinary SQL statement. This greatly reduces the number of
SHOW BINARY LOGS now displays a
File_size column that indicates the size of
WinMySQLAdmin from the source
distribution and from the “No Installer” Windows
distribution (it had already been removed from the “With
Installer” distribution before).
The behavior of the
variable has been changed. The default value is now 0 (rather
than -1) and it now has session-level scope (rather than being
global). See Server Status Variables, for
MySQL would pass an incorrect key length to storage engines for
MIN(). This could cause spurious
warnings such as InnoDB: Warning: using a
partial-field key prefix in search to appear in the
(Bug #13218, Bug #11039)
Build failures occurred when compiling the server on Windows using Visual Studio 6. (Bug #11153)
Corrected a problem where an incorrect data type was returned in
the result set metadata when using a prepared
DISTINCT statement to select from a view.
The server could crash due to an attempt to allocate too much
COUNT(DISTINCT) were used.
REPLACE could fail
on a duplicate-key error when having one
AUTO_INCREMENT key and one unique key.
InnoDB: A duplicate key error occurred with
REPLACE in a table having an
WITH ROLLUP did not sum values properly.
Security update: A user with
limited privileges could obtain information about the privileges
of other users by querying objects in the
INFORMATION_SCHEMA database for which that
user did not have the requisite privileges.
The value returned by the
function was incorrect when its parameter list contained one or
more instances of
Failure of a
BEFORE trigger did not prevent
the triggering statement from performing its operation on the
row for which the trigger error occurred. Now the triggering
statement fails as described in Using Triggers.
FEDERATED storage engine properly handled
outer joins, but not inner joins.
INTO CACHE for a table while other threads where
selecting from the table caused a deadlock.
A problem with the
my_global.h file caused
compilation of MySQL to fail on single-processor Linux systems
running 2.6 kernels.
The MySQL Instance manager caused the version to be displayed as
TABLE ... SELECT FROM
on the same table
caused the server to crash.
Under certain rare circumstances, inserting into the
mysql.host table could cause the server to
names in uppercase in
InnoDB tables within stored
functions caused the MySQL server to crash. Now, statements that
perform an implicit or explicit commit or rollback are
prohibited within stored functions or triggers.
Issuing a write lock for a table from one client prevented other
clients from accessing the table's metadata. For example, if one
client issued a
, then a second client attempting to execute a
Dropping stored routines when the MySQL server had been started
generated extraneous warnings.
An incorrect result was returned from a view that selected a
COALESCE() expression from the
result of an outer join.
InnoDB: Do very fast shutdown only if
innodb_fast_shutdown = 2, but wait for
threads to exit and release allocated memory if
innodb_fast_shutdown = 1. Starting with
InnoDB would do brutal
shutdown also when
innodb_fast_shutdown = 1.
INSERT BEFORE triggers were not being
activated for implicit inserts (
The ucs2_turkish_ci collation failed with upper('i'). UPPER/LOWER now can return a string with different length. (Bug #8610)
The server timed out SSL connections too quickly on Windows. (Bug #8572)
OPTIMIZE run on an
table did not return a Table is full
error if there was insufficient room in the tablespace.
An incorrect result was obtained for columns that included an
aggregate function as part of an expression, and when
WITH ROLLUP was used with
ROLLUP returned wrong results
for expressions containing
GROUP BY columns.
The second invocation of a stored procedure that selected from a
view defined as a join using
ON in the join
condition could cause the server to crash.
INSERT BEFORE triggers were not being
MySQL was adding a
DEFAULT clause to
ENUM columns that included no
DEFAULT and were defined as
NOT NULL. (This is supposed to happen only
for columns that are
ALTER TABLE for a table
that had a trigger caused a crash when executing a statement
that activated the trigger, and also a crash later with
the database containing the table.
Triggers with dropped functions caused crashes. (Bug #5893)
The incorrect sequence of statements
HANDLER for an
InnoDB table resulted in a server crash
rather than an error.
deleted on the fly from the first table that was to be deleted
from. In some cases, when using many tables and when necessary
to access the same row twice in the first table, some rows to be
deleted from other tables could be missed.