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
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
Recursion is permitted in stored procedures. Recursive stored functions and triggers still are not permitted. (Bug #10100)
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.
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
DEFINER column to the
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)
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)
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)
REPLACE failed when attempting to
update a primary key value in a Cluster table.
Replication: Stored functions making use of cursors were not replicated. (Bug #14077)
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.
Corrected an error-handling problem within stored routines on 64-bit platforms. (Bug #15630)
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)
CREATE test case in
mysql-test-run.pl failed on AIX and SCO.
A bug in
that test to fail.
The database-changing code for stored routine handling caused an error-handling problem resulting in a server crash. (Bug #15392)
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
mysqld would not start on Windows 9X operating systems including Windows Me. (Bug #15209)
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)
Selecting from a view processed with the temptable algorithm caused a server crash if the query cache was enabled. (Bug #15119)
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)
The server crashed if compiled without any transactional storage engines. (Bug #15047)
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)
Symbolic links did not function properly on Windows platforms. (Bug #14960, Bug #14310)
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.
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.
Creating a view within a stored procedure could result in an out of memory error or a server crash. (Bug #14885)
GROUP BY on a view column did not correctly
account for the possibility that the column could contain
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
Selecting from a view used
when faster retrieval was possible.
InnoDB: A race condition permitted two
threads to drop a hash index simultaneously.
SHOW CREATE TABLE for a view
could fail if the client had locked the view.
ALTER TABLE ... SET DEFAULT had no effect.
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
SELECT queries that began with an
opening parenthesis were not being placed in the query cache.
In a stored procedure, continuing (via a condition handler) after a failed variable initialization caused a server crash. (Bug #14643)
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.
mysqlhotcopy tried to copy
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
mysqldump --triggers did not account for the
SQL mode and could dump trigger definitions with missing
whitespace if the
mode was enabled.
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.
The value of
sometimes was reported as empty.
mysql_fix_privilege_tables.sql contained an
erroneous comment that resulted in an error when the file
contents were processed.
ARCHIVE tables that used the
filesort sorting method could result in a
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.
Complex subqueries could cause improper internal query execution environment initialization and crash the server. (Bug #14342)
Within a stored procedure, inserting with
SELECT into a table with an
AUTO_INCREMENT column did not generate the
correct sequence number.
CAST() did not pad with
0x00 to a length of
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.
The maximum value of
MAX_ROWS was handled
incorrectly on 64-bit systems.
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)
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
InnoDB: Activity on an
InnoDB table caused execution time for
SHOW CREATE TABLE for the table
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.
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)
A newline character in a column alias in a view definition caused an error when selecting from the view later. (Bug #13622)
Invoking a stored procedure within another stored procedure caused the server to crash. (Bug #13549)
Warnings from a previous command were not being reset when fetching from a cursor. (Bug #13524)
In some cases, a left outer join could yield an invalid result
or cause the server to crash, due to a
CSV tables reported an incorrect
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)
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).
For binary string data types, mysqldump
--hex-blob produced an illegal output value of
0x rather than
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
Some comparisons for the
operator were inconsistent with equivalent comparisons for the
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)
make failed when attempting to build MySQL in different directory other than that containing the source. (Bug #11827)
Revised table locking to permit proper assessment of view security. (Bug #11555)
Perform character set conversion of constant values whenever possible without data loss. (Bug #10446)
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
mysql ignored the
MYSQL_TCP_PORT environment variable.