MySQL 4.0.21 will be released tonight on our YUM repositories. Your servers will auto-update (if it’s turned on). It’s already in our RHT90 EXPERIMENTAL YUM repository for those who want to update before the official release.
Hi,
MySQL 4.0.21, a new version of the popular Open Source/Free Software
Database Management System, has been released. It is now available in source
and binary form for a number of platforms from our download pages at
http://www.mysql.com/downloads/ 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 bug fix release for the current production version.
Please also note that this is the first 4.0.x version to have our FLOSS
licensing exception. This exception allows license compatibility with
important Open Source/Free Software projects. More information about our
FLOSS licensing exception can be found at:
http://dev.mysql.com/doc/mysql/en/MySQL_FLOSS_License_Exception.html
Please refer to our bug database at http://bugs.mysql.com/ for more details
about the individual bugs fixed in this version.
News from the ChangeLog:
Functionality added or changed:
-
Print VERSION_COMMENT (from
./configure --comment' during compilation) when starting the server. E.g.:
Version:
‘4.0.21-debug’ socket: ‘/tmp/mysql.sock’ port: 0 Official MySQL
Binary’ -
Made the MySQL server not react to signals
SIGHUP' and
SIGQUIT’
on Mac OS X 10.3. This is needed because under this OS, the MySQL
server receives lots of these signals (reported as Bug #2030). -
On Windows, the
mysqld-nt' and
mysqld-max-nt’ servers now write
error messages to the Windows event log in addition to the MySQL
error log. -
Renamed the
innodb.status.<PID>' files (created in the data directory) to
innodb_status.<PID>’. This avoids problems on
filesystems that do not allow multiple periods in filenames. -
Added
innodb_status_file' system variable to
mysqld’ to control
whether output fromSHOW INNODB STATUS' is written to a
innodb_status.<PID>’ file in the data directory. By default, the
file is not created. To create it, startmysqld' with the
–innodb_status_file=1’ option.
Bugs fixed:
-
Fixed an old bug in concurrent accesses to
MERGE' tables (even one
MERGE’ table and `MyISAM’ tables), that could’ve resulted in
a crash or hang of the server. (Bug #2408) -
Fixed a bug that caused incorrect results from
GROUP BY' queries with expression in
HAVING’ clause that refers to aBLOB' (
TEXT’, `TINYBLOB’, etc) fields. (Bug #4358) -
Fixed a bug when memory was not released when `HEAP’ table is
dropped. It could only happen on Windows when a symlink file
(.sym) is used and if that symlink file contained double
backslashes (\). (Bug #4973) -
Fixed a bug which prevented `TIMESTAMP(19)’ fields from being
created. (Bug #4491) -
Fixed a bug that caused wrong results in queries that were using
index to search forNULL' values in
BLOB’ (TINYBLOB',
TEXT’,
TINYTEXT', etc) columns of
MyISAM’ tables. (Bug #4816) -
Fixed a bug in the function
ROUND()' reporting incorrect metadata (number of digits after the decimal point). It can be seen, for example, in
CREATE TABLE t1 SELECT ROUND(1, 34)’. (Bug #4393) -
Fixed precision loss bug in some mathematical functions such as
SQRT()' and
LOG()’. (Bug #4356) -
Fixed a long-standing problem with
LOAD DATA' with the
LOCAL’
option. The problem occurs when an error happens during the `LOAD
DATA’ operation. Previously, the connection was broken. Now the
error message is returned and connection stays open. -
Optimizer now treats
col IN (val)' the same way it does for
col
= val’. -
Fixed a problem with
net_buffer_length' when building the
DBD::mysql’ Perl module. (Bug #4206) -
lower_case_table_names=2' (keep case for table names) was not honored with
ALTER TABLE’ and `CREATE/DROP INDEX’. (Bug #3109) -
Fixed a crash on declaration of `DECIMAL(0,…)’ column. (Bug
#4046) -
Fixed a bug in `IF()’ function incorrectly determining the result
type if aggregate functions were involved. (Bug #3987) -
Fixed bug in privilege checking where, under some conditions, one
was able to grant privileges on the database, he has no privileges
on. (Bug #3933) -
Fixed crash in `MATCH … AGAINST()’ on a phrase search operator
with a missing closing double quote. (Bug #3870) -
Fixed a bug with truncation of big values (> 4294967295) of 64-bit
system variables. (Bug #3754) -
If
server-id' was not set using startup options but with
SET
GLOBAL’, the replication slave still complained that it was not
set. (Bug #3829) -
Fixed potential memory overrun in `mysql_real_connect()’ (which
required a compromised DNS server and certain operating systems).
(Bug #4017) -
During the installation process of the server RPM on Linux,
mysqld' was run as the
root’ system user, and if you had
--log-bin=<somewhere_out_of_var_lib_mysql>' it created binary log files owned by
root’ in this directory, which remained owned by
root' after the installation. This is now fixed by starting
mysqld’ as the `mysql’ system user instead. (Bug #4038) -
Made
DROP DATABASE' honor the value of
lower_case_table_names’.
(Bug #4066) -
The slave SQL thread refused to replicate `INSERT … SELECT’ if it
examined more than 4 billion rows. (Bug #3871) -
Fixed incorrect destruction of expression which led to crash of
server on complexAND'/
OR’ expressions if query was ignored
(either by a replication server because of `replicate-*-table’
rules, or by any MySQL server because of a syntax error). (Bug
#3969, Bug #4494) -
Fixed that
mysqlbinlog --position --read-from-remote-server' had wrong
# at’ lines. (Bug #4506) -
If `CREATE TEMPORARY TABLE t SELECT’ failed while loading the
data, the temporary table was not dropped. (Bug #4551) -
Fixed that when a multiple-table `DROP TABLE’ failed to drop a
table on master, the error code was not written to the binary log.
(Bug #4553) -
When the slave SQL thread was replicating a
LOAD DATA INFILE' it didn't show it in the output of
SHOW PROCESSLIST’. (Bug #4326) -
Fixed that `CREATE TABLE … TYPE=HEAP … AS SELECT…’ caused
replication slave to stop. (Bug #4971) -
Fixed that
disable-local-infile' option had no effect if client read it from a configuration file using
mysql_options(…,MYSQL_READ_DEFAULT,…)’. (Bug #5073) -
Fixed that
mysql-test-run' failed on the
rpl_trunc_binlog’ test
if running test from the installed (the target of ‘make install’)
directory. (Bug #5050) -
Fixed an unlikely deadlock which could happen when using `KILL’.
(Bug #4810) -
Fixed a crash when one connection got
KILL'ed while it was doing
START SLAVE’. (Bug #4827) -
Made
FLUSH TABLES WITH READ LOCK' block
COMMIT’ if server is
running with binary logging; this ensures that the binary log
position is trustable when doing a full backup of tables and the
binary log. (Bug #4953) -
Fixed that the counter of an
auto_increment' column was not reset by
TRUNCATE TABLE’ is the table was a temporary one. (Bug #5033) -
Made database names to compare case-insensitively in fully
qualified column names (database.table.column') when
lower_case_table_names=1’. (Bug #4792) -
Fixed that `SET CHARACTER SET’ was not replicated correctly. MySQL
4.1 does not have that bug. (Bug #4500) -
Fixed a bug in
ON DELETE CASCADE' and
ON UPDATE CASCADE’ foreign
key constraints: long chains of cascaded operations would cause a
stack overflow and crash the server. Cascaded operations are now
limited to 15 levels. (Bug #4446) -
Fixed a possible bug in `LOCK TABLES’ introduced in
MySQL/InnoDB-4.0.19: The count of tables explicitly locked by a
transaction was incremented only after the locks were granted, but
decremented when the lock structures were destroyed.