MySQL Lists are EOL. Please join:

List:Announcements« Previous MessageNext Message »
From:Brian Pontz Date:March 10 2006 9:16pm
Subject:MySQL 5.0.19 has been released
View as plain text  

MySQL 5.0.19, a new version of the popular Open Source Database 
Management System, has been released. The Community Edition is now
available in source and binary form for a number of platforms from our
download pages at and mirror sites. 

Note that not all mirror sites may be up to date at this point in time 
- if you can't find this version on some mirror, please try again later 
or choose another download site. 

This is a bugfix release for the current production release family. 

Please refer to our bug database at for more
details about the individual bugs fixed in this version. 

We welcome and appreciate your feedback! 

Changes in release 5.0.19 

Functionality added or changed: 
* Incompatible change: The InnoDB storage engine no longer ignores 
trailing spaces when comparing BINARY or VARBINARY column values. 
This means that (for example) the binary values 'a' and 'a ' are now 
regarded as unequal any time they are compared, as they are in 
MyISAM tables. (Bug #14189 ( 
See Section 11.4.2, "The BINARY and VARBINARY Types" for more 
information about the BINARY and VARBINARY types. 
* The result type of the GROUP_CONCAT() function is now VARCHAR only 
if the the value of the group_concat_max_len system variable is less 
than or equal to 512. Otherwise, this funciton returns a BLOB. (Bug 
#14169 ( 
* Added the mysql_upgrade program that checks all tables for 
incompatibilities with the current version of MySQL Server and 
repairs them if necessary. This program should be run for each MySQL 
upgrade (rather than mysql_fix_privilege_tables). See Section 5.6.2, 
"mysql_upgrade --- Check Tables for MySQL Upgrade." 
* Added the FOR UPGRADE option for the CHECK TABLE statement. This 
option checks whether tables are incompatible with the current 
version of MySQL Server. Also added the --check-upgrade to 
mysqlcheck that invokes CHECK TABLE with the FOR UPGRADE option. 
* mysql no longer terminates data value display when it encounters a 
NUL byte. Instead, it displays NUL bytes as spaces. (Bug #16859 
* Added the --wait-timeout option to mysqlmanager to allow 
configuration of the timeout for dropping an inactive connection, 
and increased the default timeout from 30 seconds to 28,800 seconds 
(8 hours). (Bug #12674 ( 
* A number of performance issues were resolved that had previously 
been encountered when using statements that repeatedly invoked 
stored functions. For example, calling BENCHMARK() using a stored 
function executed much more slowly than when invoking it with inline 
code that accomplished the same task. In most cases the two should 
now execute with approximately the same speed. (Bug #15014 
(, Bug #14946 
* libmysqlclient now uses versioned symbols with GNU ld. (Bug #3074 
* NDB Cluster: More descriptive warnings are now issued when 
inappropriate logging parameters are set in config.ini. (Formerly, 
the warning issued was simply Could not add logfile destination.) 
(Bug #11331 ( 
* Added the --port-open-timeout option to mysqld to control how many 
seconds the server should wait for the TCP/IP port to become free if 
it cannot be opened. (Bug #15591 ( 
* Repeated invocation of my_init() and my_end() caused corruption of 
character set data and connection failure. (Bug #6536 
* Two new Hungarian collations are included: utf8_hungarian_ci and 
ucs2_hungarian_ci. These support the correct sort order for 
Hungarian vowels. However, they do not support the correct order for 
sorting Hungarian consonant contractions; this issue will be fixed 
in a future release. 
* Wording of error 1329 changed to No data - zero rows fetched, 
selected, or processed. (Bug #15206 ( 
* The INFORMATION_SCHEMA now skips data contained in 
unlistable/unreadable directories rather than returning an error. 
(Bug #15851 ( 
* InnoDB now caches a list of unflushed files instead of scanning for 
unflushed files during a table flush operation. This improves 
performance when --innodb-file-per-table is set on a system with a 
large number of InnoDB tables. (Bug #15653 
* The message for error 1109 changed from Unknown table ... in order 
clause to Unknown table ... in field list. (Bug #15091 
* The mysqltest utility now converts all CR/LF combinations to LF to 
allow test cases intended for Windows to work properly on UNIX-like 
systems. (Bug #13809 ( 
* The mysql_ping function will now retry if the reconnect flag is set 
and error CR_SERVER_LOST is encountered during the first attempt to 
ping the server. (Bug #14057 ( 
* mysqldump now surrounds the DEFINER, SQL SECURITY DEFINER and WITH 
CHECK OPTION clauses of a CREATE VIEW statement with "not in 
version" comments to prevent errors in earlier versions of MySQL. 
(Bug #14871 ( 

Bugs fixed: 
* Setting the myisam_repair_threads system variable to a value larger 
than 1 could cause corruption of large MyISAM tables. (Bug #11527 
* When using the GROUP_CONCAT() function where the 
group_concat_max_len system variable was greater than 512, the type 
of the result was BLOB only if the query included an ORDER BY 
clause; otherwise the result was a VARCHAR. (Bug #14169 
* The length of a VARCHAR() column that used the utf8 character set 
would increase each time the table was re-created in a stored 
procedure or prepared statement, eventually causing the CREATE TABLE 
statement to fail. (Bug #13134 ( 
* type_decimal failed with the prepared statement protocol. (Bug 
#17826 ( 
* The MySQL server could crash with out of memory errors when 
performing aggregate functions on a DECIMAL column. (Bug #17602 
* A stored procedure failed to return data the first time it was 
called per connection. (Bug #17476 ( 
* Using DROP FUNCTION IF EXISTS func_name to drop a user-defined 
function caused a server crash if the server was running with the 
--skip-grant-tables option. (Bug #17595 
* Using ALTER TABLE to increase the length of a BINARY(M) column 
caused column values to be padded with spaces rather than 0x00 
bytes. (Bug #16857 ( 
* A large BIGINT value specified in a WHERE clause could be treated 
differently depending on whether it is specified as a quoted string. 
(For example, WHERE bigint_col = 17666000000000000000 versus WHERE 
bigint_col = '17666000000000000000'). (Bug #9088 
* A natural join between INFORMATION_SCHEMA tables failed. (Bug #17523 
* A memory leak caused warnings on slaves for certain statements that 
executed without warning on the master. (Bug #16175 
* The embedded server did not allow binding of columns to the 
MYSQL_TYPE_VAR_STRING data type in prepared statements. (Bug #12070 
* The embedded server failed various tests in the automated test 
suite. (Bug #9630 (, Bug #9631 
(, Bug #9633 
(, Bug #10801 
(, Bug #10911 
(, Bug #10924 
(, Bug #10925 
(, Bug #10926 
(, Bug #10930 
(, Bug #15433 
* Instance Manager erroneously accepted a list of instance identifiers 
for the START INSTANCE and STOP INSTANCE commands (should accept 
only a single identifier). (Bug #12813 
* For a transaction that used MyISAM and InnoDB tables, interruption 
of the transaction due to a dropped connection on a master server 
caused slaves to lose synchrony. (Bug #16559 
* SELECT with GROUP BY on a view can cause a server crash. (Bug #16382 
* If the query optimizer transformed a GROUP BY clause in a subquery, 
it did not also transform the HAVING clause if there was one, 
producing incorrect results. (Bug #16603 
* SUBSTRING_INDEX() could yield inconsistent results when applied with 
the same arguments to consecutive rows in a query. (Bug #14676 
* The parser allowed CREATE AGGREGATE FUNCTION for creating stored 
functions, even though AGGREGATE does not apply. (It is used only 
for CREATE FUNCTION only when creating user-defined functions.) (Bug 
#16896 ( 
* Data truncations on non-UNIQUE indexes could crash InnoDB when using 
multi-byte character sets. (Bug #17530 
* Triggers created without BEGIN and END clauses could not be properly 
restored from a mysqldump file. (Bug #16878 
* The RENAME TABLE statement did not move triggers to the new table. 
(Bug #13525 ( 
* Clients compiled from source with the --without-readline did not 
save command history from session to session. (Bug #16557 
* Stored routines that contained only a single statement were not 
written properly to the dumpfile when using mysqldump. (Bug #14857 
* For certain MERGE tables, the optimizer wrongly assumed that using 
index_merge/intersection was too expensive. (Bug #17314 
* Executing a SHOW CREATE VIEW query of an invalid view caused the 
mysql_next_result function of libMySQL.dll to hang. (Bug #15943 
* BIT fields were not properly handled when using row-based 
replication. (Bug #13418 ( 
* Issuing GRANT EXECUTE on a procedure would display any warnings 
related to the creation of the procedure. (Bug #7787 
* NDB Cluster: ndb_delete_all would run out of memory on tables 
containing BLOB columns. (Bug #16693 ( 
* NDB Cluster: UNIQUE keys in Cluster tables were limited to 225 bytes 
in length. (Bug #15918 ( 
* In a highly concurrent environment, a server crash or deadlock could 
result from execution of a statement that used stored functions or 
activated triggers coincident with alteration of the tables used by 
these functions or triggers. (Bug #16593 
* Previously, a stored function invocation was written to the binary 
log as DO func_name() if the invocation changes data and occurs 
within a non-logged statement, or if the function invokes a stored 
procedure that produces an error. These invocations now are logged 
as SELECT func_name() instead for better control over error code 
checking (slave servers could stop due to detecting a different 
error than occurred on the master). (Bug #14769 
* CHECKSUM TABLE returned different values on MyISAM table depending 
on whether the QUICK or EXTENDED options were used. (Bug #8841 
* MySQL server dropped client connection for certain SELECT statements 
against views defined that used MERGE algorithm. (Bug #16260 
* A call to the IF() function using decimal arguments could return 
incorrect results. (Bug #16272 ( 
* A statement containing GROUP BY and HAVING clauses could return 
incorrect results when the HAVING clause contained logic that 
returned FALSE for every row. (Bug #14927 
* Using GROUP BY on column used in WHERE clause could cause empty set 
to be returned. (Bug #16203 ( 
* For a MySQL 5.0 server, using MySQL 4.1 tables in queries with a 
GROUP BY clause could result in buffer overrun or a server crash. 
(Bug #16752 ( 
* SET sql_mode = N, where N > 31, did not work properly. (Bug #13897 
* NDB Cluster: Cluster log file paths were truncated to 128 
characters. They may now be as long as MAX_PATH (the maximum path 
length permitted by the operating system). (Bug #17411 
* The mysql_stmt_store_result() C API function could not be used for a 
prepared statement if a cursor had been opened for the statement. 
(Bug #14013 ( 
* The mysql_stmt_sqlstate() C API function incorrectly returned an 
empty string rather than '00000' when no error occurred. (Bug #16143 
* Using the TRUNCATE() function with a negative number for the second 
argument on a BIGINT column returned incorrect results. (Bug #8461 
* Instance Manager searched wrong location for password file on some 
platforms. (Bug #16499 ( 
* NDB Cluster: Following multiple forced shutdowns and restarts of 
data nodes, DROP DATABASE could fail. (Bug #17325 
* NDB Cluster: An UPDATE with an inner join failed to match any 
records if both tables in the join did not have a primary key. (Bug 
#17257 ( 
* NDB Cluster: A DELETE with a join in the WHERE clause failed to 
retrieve any records if both tables in the join did not have a 
primary key. (Bug #17249 ( 
* The error message returned by perror --ndb was prefixed with OS 
error code: instead of NDB error code:. (Bug #17235 
* NDB Cluster: In some cases, LOAD DATA INFILE did not load all data 
into NDB tables. (Bug #17081 ( 
* NDB Cluster: The REDO log would become corrupted (and thus 
unreadable) in some circumstances, due to a failure in the query 
handler. (Bug #17295 ( 
* NDB Cluster: No error message was generated for setting 
NoOfFragmentLogFiles too low. (Bug #13966 
* NDB Cluster: No error message was generated for setting 
MaxNoOfAttributes too low. (Bug #13965 
* Binary distributions for Solaris contained files with group 
ownership set to the non-existing wheel group. Now the bin group is 
used. (Bug #15562 ( 
* The DECIMAL data type was not being handled correctly with prepared 
statements. (Bug #16511 ( 
* The SELECT privilege was required for triggers that performed no 
selects. (Bug #15196 ( 
* The UPDATE privilege was required for triggers that performed no 
updates. (Bug #15166 ( 
* CAST(... AS TIME) operations returned different results when using 
versus not using prepared-statement protocol. (Bug #15805 
* Improper memory handling for stored routine variables could cause 
memory overruns and binary log corruption. (Bug #15588 
* Killing a long-running query containing a subquery could cause a 
server crash. (Bug #14851 ( 
* A FULLTEXT query in a prepared statement could result in unexpected 
behavior. (Bug #14496 ( 
* A RETURN statement within a trigger caused a server crash. RETURN 
now is disallowed within triggers. To exit immediately, use LEAVE. 
(Bug #16829 ( 
* STR_TO_DATE(1,NULL) caused a server crash. (Bug #15828 
* An invalid stored routine could not be dropped. (Bug #16303 
* When evaluation of the test in a CASE failed in a stored procedure 
that contained a CONTINUE handler, execution resumed at the 
beginning of the CASE statement instead of at the end. (Bug #16568 
* An INSERT statement in a stored procedure corrupted the binary log. 
(Bug #16621 ( 
* When MyODBC or any other client called my_init()/my_end() several 
times, it caused corruption of charset data stored in once_mem_pool. 
(Bug #11892 ( 
* When multiple handlers are created for the same MySQL error number 
within nested blocks, the outermost handler took precedence. (Bug 
#15011 ( 
* Certain LEAVE statements in stored procedures were not properly 
optimized. (Bug #15737 ( 
* Setting InnoDB path settings to an empty string caused InnoDB 
storage engine to crash upon server startup. (Bug #16157 
* InnoDB used full explicit table locks in trigger processing. (Bug 
#16229 ( 
* Server crash when dropping InnoDB constraints named 
TABLENAME_ibfk_0. (Bug #16387 ( 
* Corrected race condition when dropping the adaptive hash index for a 
B-tree page in InnoDB. (Bug #16582 ( 
* MYSQL_OPT_RECONNECT option was modified by calls to the 
mysql_real_connect() function. (Bug #15719 
* InnoDB: After upgrading an InnoDB table having a VARCHAR BINARY 
column created in MySQL 4.0 to MySQL 5.0, update operations on the 
table would cause the server to crash. (Bug #16298 
* Trying to compile the server on Windows generated a stack overflow 
warning due to a recursive definition of the internal 
Field_date::store() method. (Bug #15634 
* The use of LOAD INDEX within a stored routine was permitted and 
caused the server to crash. Note: LOAD INDEX statements within 
stored routines are not supported, and now yield an error if 
attempted. This behavior is intended. (Bug #14270 
* The mysqlbinlog utility did not output DELIMITER statements, causing 
syntax errors for stored routine creation statements. (Bug #11312 
* NDB Cluster returned incorrect Can't find file error for OS error 
24, changed to Too many open files. (Bug #15020 
* Performing a RENAME TABLE on an InnoDB table when the server is 
started with the --innodb-file-per-table and the data directory is a 
symlink caused a server crash. (Bug #15991 
* The mysql_stmt_attr_get function returned an unsigned int instead of 
a boolean for STMT_ATTR_UPDATE_MAX_LENGTH. (Bug #16144 
* Multi-byte path names for LOAD DATA and SELECT ... INTO OUTFILE 
caused errors. Added the character_set_filesystem system variable, 
which controls the interpretation of string literals that refer to 
filenames. (Bug #12448 ( 
* Certain subqueries where the inner query is the result of a 
aggregate function would return different results on MySQL 5.0 than 
on MySQL 4.1. (Bug #15347 ( 
* Attempts to create FULLTEXT indexes on VARCHAR columns larger than 
1000 bytes resulted in error. (Bug #13835 
* Characters in the gb2312 and euckr character sets which did not have 
Unicode mappings were truncated. (Bug #15377 
* Certain nested LEFT JOIN operations were not properly optimized. 
(Bug #16393 ( 
* GRANT statements specifying schema names that included underscore 
characters (i.e. my_schema) did not match if the underscore was 
escaped in the GRANT statement (i.e. GRANT ALL ON `my\_schema` ...). 
(Bug #14834 ( 
* Running out of diskspace in the location specified by the tmpdir 
option resulted in incorrect error message. (Bug #14634 
* Test suite sp test left behind tables when the test failed that 
could cause future tests to fail. (Bug #15866 
* UPDATE statement crashed multi-byte character set FULLTEXT index if 
update value was almost identical to initial value only differing in 
some spaces being changed to  . (Bug #16489 
* A SELECT query which contained a GROUP_CONCAT() and an ORDER BY 
clause against the INFORMATION_SCHEMA resulted in an empty result 
set. (Bug #15307 ( 
* The --replicate-do and --replicate-ignore options were not being 
enforced on multiple-table statements. (Bug #15699 
(, Bug #16487 
* A prepared statement created from a SELECT ... LIKE query (such as 
PREPARE stmt1 FROM 'SELECT col_1 FROM tedd_test WHERE col_1 LIKE 
?';) would begin to produce erratic results after being executed 
repeatedly numerous (thousands) of times. (Bug #12734 
* The server would crash when the size of an ARCHIVE table grew beyond 
2GB. (Bug #15787 ( 
* Created a user function with an empty string (that is, CREATE 
FUNCTION ''()), was accepted by the server. Following this, calling 
SHOW FUNCTION STATUS would cause the server to crash. (Bug #15658 
* In some cases the query optimizer did not properly perform multiple 
joins where inner joins followed left joins, resulting in corrupted 
result sets. (Bug #15633 ( 
* The absence of a table in the left part of a left or right join was 
not checked prior to name resolution, which resulted in a server 
crash. (Bug #15538 ( 
* NDBCluster: A bitfield whose offset and length totaled 32 would 
crash the cluster. (Bug #16125 ( 
* NDBCluster: Upon the completion of a scan where a key request 
remained outstanding on the primary replica and a starting node 
died, the scan did not terminate. This caused incompleted error 
handling of the failed node. (Bug #15908 
* NDBCluster: The ndb_autodiscover test failed sporadically due to a 
node not being permitted to connect to the cluster. (Bug #15619 
* NDBCluster: When running more than one management process in a 
+ ndb_mgm -c host:port -e "node_id stop" would stop a management 
process running only on the same system on which the command 
was issued. 
+ ndb_mgm -e "shutdown" failed to shut down any management 
processes at all. 
(Bug #12045 (, Bug #12124 
* The contents of fill_help_tables.sql could not be loaded in strict 
SQL mode. (Bug #15760 ( 
* fill_help_tables.sql was not included in binary distributions for 
several platforms. (Bug #15759 ( 
* An INSERT ... SELECT statement between tables in a MERGE set can 
return errors when statement involves insert into child table from 
merge table or vice-versa. (Bug #5390 ( 
* Certain permission management statements could create a NULL 
hostname for a user, resulting in a server crash. (Bug #15598 
* A COMMIT statement followed by a ALTER TABLE statement on a BDB 
table caused server crash. (Bug #14212 
* A DELETE statement involving a LEFT JOIN and an IS NULL test on the 
right-hand table of the join crashed the server when the 
innodb_locks_unsafe_for_binlog option was enabled. (Bug #15650 
* Performing an ORDER BY on an indexed ENUM column returned error. 
(Bug #15308 ( 
* The NOT FOUND condition handler for stored procedures did not 
distinguish between a NOT FOUND condition and an exception or 
warning. (Bug #15231 ( 
* A stored procedure with an undefined variable and an exception 
handler would hang the client when called. (Bug #14498 
* Subselect could return wrong results when records cache and grouping 
was involved. (Bug #15347 ( 
* Temporary table aliasing did not work inside stored functions. (Bug 
#12198 ( 
* MIN() and MAX() operations were not optimized for views. (Bug #16016 
* Using an aggregate function as the argument for a HAVING clause 
would result in the aggregate function always returning FALSE. (Bug 
#14274 ( 
* Parallel builds occasionally failed on Solaris. (Bug #16282 
* The FORCE INDEX keyword in a query would prevent an index merge from 
being used where an index merge would normally be chosen by the 
optimizer. (Bug #16166 ( 
* The COALESCE() function truncated data in a TINYTEXT column. (Bug 
#15581 ( 
* InnoDB: Comparison of indexed VARCHAR CHARACTER SET ucs2 COLLATE 
ucs2_bin columns using LIKE could fail. (Bug #14583 
* An attempt to open a table that requires a disabled storage engine 
could cause a server crash. (Bug #15185 
* Issuing a DROP USER command could cause some users to encounter a 
hostname is not allowed to connect to this MySQL server error. (Bug 
#15775 ( 
* Setting innodb_log_file_size to a value greater than 4G crashed the 
server. (Bug #15108 ( 
* A SELECT of a stored function that references the INFORMATION_SCHEMA 
could crash the server. (Bug #15533 ( 
* Tarball install package was missing a proper fill_help_tables.sql 
file. (Bug #15151 ( 


Brian Pontz, Senior Product Engineer 
MySQL Inc., 

Are you MySQL certified?

MySQL 5.0.19 has been releasedBrian Pontz10 Mar