End of Product Lifecycle. Active development and support for MySQL database server versions 3.23, 4.0, and 4.1 has ended. However, for MySQL 4.0 and 4.1, there is still extended support available. For details, see http://www.mysql.com/company/legal/lifecycle/#calendar. According to the MySQL Lifecycle Policy (see http://www.mysql.com/company/legal/lifecycle/#policy), only Security and Severity Level 1 issues will still be fixed for MySQL 4.0 and 4.1. Please consider upgrading to a recent version (MySQL 5.0 or 5.1).
Functionality added or changed:
Added syntax support for CHARACTER SET
and
xxxCHARSET=
table options (to be able to read table dumps from 4.1).
xxx
Fixed replication bug that caused the slave to loose its position in some cases when the replication log was rotated.
Fixed that a slave restarts from the start of a transaction if it's killed in the middle of one.
Moved the manual pages from man to
man/man1 in the binary distributions.
The default type returned by
IFNULL(A,B) is now set to be
the more 'general' of the types of A and
B. (The order is STRING,
REAL or INTEGER).
Moved the mysql.server startup script in
the RPM packages from
/etc/rc.d/init.d/mysql to
/etc/init.d/mysql (which almost all
current Linux distributions support for LSB compliance).
Added Qcache_lowmem_prunes status variable
(number of queries that were deleted from the cache because of
low memory).
Fixed mysqlcheck so it can deal with table names containing dashes.
Bulk insert optimization (see Section 5.1.3, “System Variables”) is no longer used when inserting small (less than 100) number of rows.
Optimization added for queries like SELECT ... FROM
.
merge_table WHERE
indexed_column=constant_expr
Added functions LOCALTIME and
LOCALTIMESTAMP as synonyms for
NOW().
CEIL is now an alias for
CEILING.
The CURRENT_USER() function
can be used to get a user@host value as it
was matched in the GRANT system. See
Section 11.10.3, “Information Functions”.
Fixed CHECK constraints to be compatible
with standard SQL. This made CHECK a
reserved word. (Checking of CHECK
constraints is still not implemented).
Added CAST(... as CHAR).
Added PostgreSQL compatible LIMIT syntax:
SELECT ... LIMIT
row_count
OFFSET offset
mysql_change_user() now
resets the connection to the state of a fresh connect (Ie,
ROLLBACK any active transaction, close all
temporary tables, reset all user variables etc..)
CHANGE MASTER and RESET
SLAVE now require that slave threads both be
stopped; these commands return an error if at least one of
these two threads is running.
Bugs fixed:
Fixed number of found rows returned in multi table
updates
Make --lower-case-table-names default on Mac
OS X as the default filesystem (HFS+) is case insensitive. See
Section 8.2.2, “Identifier Case Sensitivity”.
Transactions in AUTOCOMMIT=0 mode didn't
rotate binary log.
A fix for the bug in a SELECT with joined
tables with ORDER BY and
LIMIT clause when
filesort had to be used. In that case
LIMIT was applied to
filesort of one of the tables, although it
could not be. This fix also solved problems with LEFT
JOIN.
mysql_server_init() now makes
a copy of all arguments. This fixes a problem when using the
embedded server in C# program.
Fixed buffer overrun in libmysqlclient
library that allowed a malicious MySQL server to crash the
client application. (CVE-2002-1376)
Fixed security-related bug in
mysql_change_user() handling.
All users are strongly recommended to upgrade to version
4.0.6. (CVE-2002-1374, CVE-2002-1375)
Fixed bug that prevented --chroot
command-line option of mysqld from working.
Fixed bug in phrase operator "..." in
boolean full-text search.
Fixed bug that caused OPTIMIZE TABLE to
corrupt the table under some rare circumstances.
Part rewrite of multiple-table-update to optimize it, make it safer and more bug-free.
LOCK TABLES now works together with
multiple-table-update and multiple-table-delete.
--replicate-do=
didn't work for xxxUPDATE commands. (Bug
introduced in 4.0.0)
Fixed shutdown problem on Mac OS X.
Major InnoDB bugs in REPLACE,
AUTO_INCREMENT, INSERT INTO ... SELECT ... were
fixed. See the InnoDB changelog in the
InnoDB section of the manual.
RESET SLAVE caused a crash if the slave
threads were running.

User Comments
Add your own comment.