Functionality added or changed:
CHARACTER SET xxx
and CHARSET=xxx
table options (to be able to read table dumps from 4.1).
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
).
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).
Qcache_lowmem_prunes
status variable (number of queries that were
deleted from cache because of low memory).
mysqlcheck
so it can deal with table names containing dashes.
SHOW VARIABLES
)
is no longer used when inserting small (less than 100) number of rows.
SELECT ... FROM merge_table WHERE indexed_column=constant_expr
.
LOCALTIME
and LOCALTIMESTAMP
as synonyms for
NOW()
.
CEIL
is now an alias for CEILING
.
CURRENT_USER()
function can be used to get a user@host
value as it was matched in the GRANT
system.
See section 6.3.6.2 Miscellaneous Functions.
CHECK
constraints to be compatible with SQL-99. This made
CHECK
a reserved word. (Checking of CHECK
constraints is
still not implemented).
CAST(... as CHAR)
.
LIMIT
syntax:
SELECT ... LIMIT row_count OFFSET offset
mysql_change_user()
will now reset the connection to the state
of a fresh connect (Ie, ROLLBACK
any active transaction, close
all temporary tables, reset all user variables etc..)
Bugs fixed:
multi table updates
--lower-case-table-names
default on Mac OS X as the default
file system (HFS+) is case insensitive.
See section 6.1.3 Case Sensitivity in Names.
AUTOCOMMIT=0
mode didn't rotate binary log.
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 solved problems with LEFT JOIN
too.
mysql_server_init()
now makes a copy of all arguments. This fixes
a problem when using the embedded server in C# program.
libmysqlclient
library
that allowed a malicious MySQL
server to crash the client
application.
mysql_change_user()
handling.
All users are strongly recommended to upgrade to version 4.0.6.
--chroot
command-line option of
mysqld
from working.
"..."
in boolean full-text search.
OPTIMIZE TABLE
to corrupt the table
under some rare circumstances.
LOCK TABLES
now works together with multi-table-update and
multi-table-delete.
--replicate-do=xxx
didn't work for UPDATE
commands.
(Bug introduced in 4.0.0)
InnoDB
bugs in REPLACE, AUTO_INCREMENT,
INSERT INTO ... SELECT ...
were fixed. See the InnoDB
changelog
in the InnoDB
section of the manual.