Functionality added or changed:
NULL is now sorted LAST if you use ORDER BY ... DESC
(as it was before MySQL 4.0.2).  This change was required to comply
with the SQL-99 standard.  (The original change was made because we thought
that SQL-99 required NULL to be always sorted at the same position,
but this was incorrect).
START TRANSACTION (SQL-99 syntax) as alias for BEGIN.
This is recommended to use instead of BEGIN to start a transaction.
OLD_PASSWORD() as a synonym for PASSWORD().
ALL in group functions.
INNER JOIN and JOIN syntaxes.
For example, SELECT * FROM t1 INNER JOIN t2 didn't work before.
Bugs fixed:
InnoDB tables.
BLOB NOT NULL columns used with IS NULL.
InnoDB storage engine.
BLOB columns with long strings.
CREATE TABLE (...) 
AUTO_INCREMENT=#.
MIN(key_column) could in some cases return NULL on a column
with NULL and other values.
MIN(key_column) and MAX(key_column) could in some cases
return wrong values when used in OUTER JOIN.
MIN(key_column) and MAX(key_column) could return wrong
values if one of the tables was empty.
INTERVAL,
CASE, FIELD, CONCAT_WS, ELT and
MAKE_SET functions.
--lower-case-table-names (default on Windows)
and you had tables or databases with mixed case on disk, then
executing SHOW TABLE STATUS followed with DROP DATABASE
or DROP TABLE could fail with Errcode 13.