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).
Added START TRANSACTION (SQL-99 syntax) as alias for BEGIN. This is recommended to use instead of BEGIN to start a transaction.
Added OLD_PASSWORD() as a synonym for PASSWORD().
Allow keyword ALL in group functions.
Added support for some new INNER JOIN and JOIN syntaxes. For example, SELECT * FROM t1 INNER JOIN t2 didn't work before.
Novell NetWare 6.0 porting effort completed, Novell patches merged into the main source tree.
Bugs fixed:
Fixed problem with multiple-table delete and InnoDB tables.
Fixed a problem with BLOB NOT NULL columns used with IS NULL.
Re-added missing pre- and post(un)install scripts to the Linux RPM packages (they were missing after the renaming of the server subpackage).
Fixed that table locks are not released with multiple-table updates and deletes with InnoDB storage engine.
Fixed bug in updating BLOB columns with long strings.
Fixed integer-wraparound when giving big integer (>= 10 digits) to function that requires an unsigned argument, like 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 incorrect values when used in OUTER JOIN.
MIN(key_column) and MAX(key_column) could return incorrect values if one of the tables was empty.
Fixed rare crash in compressed MyISAM tables with blobs.
Fixed bug in using aggregate functions as argument for INTERVAL, CASE, FIELD, CONCAT_WS, ELT and MAKE_SET functions.
When running with --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.