Functionality added or changed:
Added syntax support for CHARACTER SET
xxx
and CHARSET=xxx
table
options (to be able to read table dumps from 4.1).
Fixed replication bug that caused the slave to loose its position in some cases when the replication log was rotated.
Fixed that a slave will restart 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 cache
because of low memory).
Fixed mysqlcheck
so it can deal with
table names containing dashes.
Bulk insert optimization (see
項4.6.8.4. 「SHOW 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
項6.3.6.2. 「その他の各種関数」.
Fixed CHECK
constraints to be compatible
with SQL-99. 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()
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..)
CHANGE MASTER
and RESET
SLAVE
now require that slave threads be both
already stopped; these commands will 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 file system (HFS+) is case
insensitive. See 項6.1.3. 「名前におけるケース依存」.
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.
Fixed security-related bug in
mysql_change_user()
handling. All users
are strongly recommended to upgrade to version 4.0.6.
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=xxx
didn't work for
UPDATE
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.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.