Functionality Added or Changed
If you attempt to replicate from a master server older than
MySQL 5.0.17 to a slave running MySQL 5.0.17 through 5.0.19,
statements fails on the slave with a Definer not
fully qualified error. A workaround is to create
triggers on the master using a version-specific comment
embedded in each
CREATE /*!50017 DEFINER = 'root'@'localhost' */ TRIGGER ... ;
CREATE TRIGGER statements
written this way will replicate to newer slaves, which pick up
DEFINER clause from the comment and
Recursion is permitted in stored procedures. Recursive stored functions and triggers still are not permitted. (Bug #10100)
Support files for compiling with Visual Studio 6 have been removed. (Bug #15094)
latin5_turkish_ci collation, the order
of the characters
A WITH CIRCUMFLEX,
I WITH CIRCUMLEX, and
CIRCUMFLEX was changed. If you have used these
characters in any indexed columns, you should rebuild those
The maximum key length for
InnoDB indexes was
increased from 1024 bytes to 3072 bytes for all builds. (In
MySQL 5.0.15, the length was increased but only for 64-bit
Invoking a stored function or trigger creates a new savepoint level. When the function or trigger finishes, the previous savepoint level is restored.
References: See also Bug #13825.
DEFINER column to the
REPLACE failed when attempting to
update a primary key value in a Cluster table.
MySQL Cluster: Under certain circumstances, when mysqld connected to a cluster management server, the connection would fail before a node ID could be allocated. (Bug #15215)
selecting from a table having the primary key on a
VARCHAR column caused a forced
shutdown of the cluster.
(Bug #15240, Bug #15682, Bug #14828, Bug #15517)
A forced cluster shutdown occurred when the management daemon
was restarted with a changed
file that added an API or SQL node.
MySQL Cluster: There was a small window for a node failure to occur during a backup without an error being reported. (Bug #15425)
Replication: On Windows, the server could crash during shutdown if both replication threads and normal client connection threads were active. (Bug #11796)
InnoDB: During replication, There was a
failure to record events in the binary log that still occurred
even in the event of a
example, this sequence of commands:
BEGIN; CREATE TEMPORARY TABLE t1 (a INT) ENGINE=INNODB; ROLLBACK; INSERT INTO t1 VALUES (1);
would succeed on the replication master as expected. However,
INSERT failed on the slave
(erroneously) cause the
TABLE statement not to be written to the binlog.
Replication: Stored functions making use of cursors were not replicated. (Bug #14077)
Multiple-table update operations were counting updates and not updated rows. As a result, if a row had several updates it was counted several times for the “rows matched” value but updated only once. (Bug #15028)
make failed when attempting to build MySQL in different directory other than that containing the source. (Bug #11827)
ANALYZE TABLE did not properly
update table statistics for a
FULLTEXT index containing stopwords,
so a subsequent
would not recognize the table as having already been analyzed.
TABLE could crash the server and write invalid data into
tbl_name (...) SELECT
.frm file if the
CREATE TABLE and
SELECT both contained a column
with the same name. Also, if a default value is specified in the
column definition, it is now actually used.
A server crash resulted from the following sequence of events:
1) With no default database selected, create a stored procedure
with the procedure name explicitly qualified with a database
). 2) Create another stored procedure with no
database name qualifier. 3) Execute
mysql ignored the
MYSQL_TCP_PORT environment variable.
The server crashed if compiled without any transactional storage engines. (Bug #15047)
Corrected an error-handling problem within stored routines on 64-bit platforms. (Bug #15630)
ALTER TABLE ... SET DEFAULT had no effect.
Implicit versus explicit conversion of float to integer (such as
inserting a float value into an integer column versus using
CAST(... AS UNSIGNED) before
inserting the value) could produce different results. Implicit
and explicit typecasts now are done the same way, with a value
equal to the nearest integer according to the prevailing
ORDER BY on a column from a view, when
also selecting the column normally, and through an alias, caused
Column 'x' in order clause is
For binary string data types, mysqldump
--hex-blob produced an illegal output value of
0x rather than
In a stored procedure, continuing (via a condition handler) after a failed variable initialization caused a server crash. (Bug #14643)
The original Linux RPM packages (5.0.17-0) had an issue with a
zlib dependency that would result in an error
during an install or upgrade. They were replaced by new
binaries, 5.0.17-1. Here is a list of the new RPM binaries:
MySQL-*-standard-5.0.17-1.rhel3.i386.rpm, MySQL-*-standard-5.0.17-1.rhel3.ia64.rpm, MySQL-*-standard-5.0.17-1.rhel3.x86_64.rpm
MySQL-*-pro-5.0.17-1.rhel3.i386.rpm, MySQL-*-pro-5.0.17-1.rhel3.ia64.rpm, MySQL-*-pro-5.0.17-1.rhel3.x86_64.rpm
MySQL-*-pro-gpl-5.0.17-1.rhel3.i386.rpm, MySQL-*-pro-gpl-5.0.17-1.rhel3.ia64.rpm, MySQL-*-pro-gpl-5.0.17-1.rhel3.x86_64.rpm
Revised table locking to permit proper assessment of view security. (Bug #11555)
A newline character in a column alias in a view definition caused an error when selecting from the view later. (Bug #13622)
A server crash could occur if a prepared statement invoked a stored procedure that existed when the statement was prepared but had been dropped and re-created prior to statement execution. (Bug #12329)
SELECT queries that began with an
opening parenthesis were not being placed in the query cache.
For a invalid view definition, selecting from the
INFORMATION_SCHEMA.VIEWS table or
SHOW CREATE VIEW failed,
making it difficult to determine what part of the definition was
invalid. Now the server returns the definition and issues a
The server could misinterpret old trigger definition files created before MySQL 5.0.17. Now they are interpreted correctly, but this takes more time and the server issues a warning that the trigger should be re-created. (Bug #14090)
The value of
sometimes was reported as empty.
Within a stored procedure, exception handling for
UPDATE statements that caused a
duplicate-key error caused a
Packets out of
order error for the following statement.
In some cases, a left outer join could yield an invalid result
or cause the server to crash, due to a
RESET MASTER failed to delete log
files on Windows. One consequence of this change is that server
opens the general query and slow log files in shared mode, so
now they can be renamed while the server has them open
(something not true in previous versions).
Queries that select records based on comparisons to a set of column could crash the server if there was one index covering the columns, and a set of other noncovering indexes that taken together cover the columns. (Bug #15204)
LIMIT-related optimization failed to take
into account that
MyISAM table indexes can be
disabled, causing Error 124 when it tried to use such an index.
Warnings from a previous command were not being reset when fetching from a cursor. (Bug #13524)
Creating a view within a stored procedure could result in an out of memory error or a server crash. (Bug #14885)
mysql_stmt_fetch() C API
function could return
MYSQL_NO_DATA for a
SELECT COUNT(*) FROM
statement, which should return 1 row.
tbl_name WHERE 1 = 0
Some comparisons for the
operator were inconsistent with equivalent comparisons for the
mysqld would not start on Windows 9X operating systems including Windows Me. (Bug #15209)
SHOW CREATE TABLE for a view
could fail if the client had locked the view.
Symbolic links did not function properly on Windows platforms. (Bug #14960, Bug #14310)
Complex subqueries could cause improper internal query execution environment initialization and crash the server. (Bug #14342)
Manual manipulation of the
could cause a server crash. This should not happen, but it is
also not supported that the server will notice such changes.
Slave SQL thread cleanup was not handled properly on Mac OS X when a statement was killed, resulting in a slave crash. (Bug #15623, Bug #15668)
Invoking a stored procedure within another stored procedure caused the server to crash. (Bug #13549)
InnoDB: Activity on an
InnoDB table caused execution time for
SHOW CREATE TABLE for the table
Statements that implicitly commit a transaction are prohibited in stored functions and triggers. An attempt to create a function or trigger containing such a statement produces an error. (The originally reported symptom was that a trigger that dropped another trigger could cause a server crash. That problem was fixed by the patch for Bug #13343.) (Bug #13627)
Declaring a stored routine variable to have a
DEFAULT value that referred to a variable of
the same name caused a server crash. (For example:
DECLARE x INT DEFAULT x) Now the
DEFAULT variable is interpreted as referring
to a variable in an outer scope, if there is one.
The database-changing code for stored routine handling caused an error-handling problem resulting in a server crash. (Bug #15392)
Within a trigger definition the
CURRENT_USER() function evaluated
to the user whose actions caused the trigger to be activated.
Now that triggers have a
CURRENT_USER() evaluates to the
Within a stored procedure, inserting with
SELECT into a table with an
AUTO_INCREMENT column did not generate the
correct sequence number.
mysqlhotcopy tried to copy
mysqldump --triggers did not account for the
SQL mode and could dump trigger definitions with missing
whitespace if the
mode was enabled.
InnoDB: A race condition permitted two
threads to drop a hash index simultaneously.
CAST() did not pad with
0x00 to a length of
A server crash could occur if a prepared statement updated a table for which a trigger existed when the statement was prepared but had been dropped prior to statement execution. (Bug #13399)
mysql --help was missing a newline after the
version string when the bundled
library was not used.
Creating a view that referenced a stored function that selected from a view caused a crash upon selection from the view. (Bug #15096)
Selecting from a view processed with the temptable algorithm caused a server crash if the query cache was enabled. (Bug #15119)
The maximum value of
MAX_ROWS was handled
incorrectly on 64-bit systems.
CSV tables reported an incorrect
Perform character set conversion of constant values whenever possible without data loss. (Bug #10446)
CREATE test case in
mysql-test-run.pl failed on AIX and SCO.
When using an aggregate function to select from a table that has
a multiple-column primary key, adding
BY to the query could produce an incorrect result.
ARCHIVE tables that used the
filesort sorting method could result in a
GROUP BY on a view column did not correctly
account for the possibility that the column could contain
Selecting from a view used
when faster retrieval was possible.
mysql_fix_privilege_tables.sql contained an
erroneous comment that resulted in an error when the file
contents were processed.
A bug in
that test to fail.