Functionality added or changed:
PRIMARY KEY
now implies NOT
NULL
. (Bug#390)
The Windows binary packages are now compiled with
--enable-local-infile
to match the Unix
build configuration.
Removed timing of tests from
mysql-test-run
. time
does not accept all required parameters on many platforms
(for example, QNX) and timing the tests is not really
required (it's not a benchmark anyway).
SHOW MASTER STATUS
and SHOW
SLAVE STATUS
required the SUPER
privilege; now they accept REPLICATION
CLIENT
as well. (Bug#343)
Added multi-threaded MyISAM repair optimization and
myisam_repair_threads
variable to enable
it. See 項4.6.8.4. 「SHOW VARIABLES
」.
Added innodb_max_dirty_pages_pct
variable
which controls amount of dirty pages allowed in
InnoDB
buffer pool.
CURRENT_USER()
and Access
denied
error messages now report the hostname
exactly as it was specified in the GRANT
command.
Removed benchmark results from the source and binary distributions. They are still available in the BK source tree, though.
InnoDB
tables now support
ANALYZE TABLE
.
MySQL now issues an error when it opens a table that was created with MySQL 4.1.
Option --new
now changes binary items
(0xFFDF
) to be treated as binary strings
instead of numbers by default. This fixes some problems with
character sets where it's convenient to input the string as
a binary item. After this change you have to convert the
binary string to INTEGER
with a
CAST
if you want to compare two binary
items with each other and know which one is bigger than the
other. SELECT CAST(0xfeff AS UNSIGNED) <
CAST(0xff AS UNSIGNED)
. This will be the default
behavior in MySQL 4.1. (Bug#152)
Enabled delayed_insert_timeout
on Linux
(most modern glibc libraries have a fixed
pthread_cond_timedwait
). (Bug#211)
Don't create more insert delayed threads than given by
max_insert_delayed_threads
. (Bug#211)
Changed UPDATE ... LIMIT
to apply the
limit to rows that were matched, whether or not they
actually were changed. Previously the limit was applied as a
restriction on the number of rows changed.
Tuned optimizer to favor clustered index over table scan.
BIT_AND()
and BIT_OR()
now return an unsigned 64-bit value.
Added warnings to error log of why a secure connection
failed (when running with --log-warnings
).
Deprecated options --skip-symlink
and
--use-symbolic-links
and replaced these
with --symbolic-links
.
The default option for
innodb_flush_log_at_trx_commit
was
changed from 0 to 1 to make InnoDB
tables
ACID by default. See 項7.5.3. 「InnoDB 起動オプション」.
Added a feature to SHOW KEYS
to display
keys that are disabled by ALTER TABLE DISABLE
KEYS
command.
When using a non-existing table type with CREATE
TABLE
, first try if the default table type exists
before falling back to MyISAM
.
Added MEMORY
as an alias for
HEAP
.
Renamed function rnd
to
my_rnd
as the name was too generic and is
an exported symbol in libmysqlclient
(thanks to Dennis Haney for the initial patch).
Portability fix: renamed include/dbug.h
to include/my_debug.h
.
mysqldump
no longer silently deletes the
binlogs when called with --master-data
or
--first-slave
; while this behavior was
convenient for some users, others may suffer from it. Now
one has to explicitely ask for this deletion with the new
--delete-master-logs
option.
If the slave is configured (using for example
replicate-wild-ignore-table=mysql.%
) to
exclude mysql.user
,
mysql.host
, mysql.db
,
mysql.tables_priv
and
mysql.columns_priv
from replication, then
GRANT
and REVOKE
will
not be replicated.
Bugs fixed:
Logged Access denied
error message had
incorrect Using password
value. (Bug#398)
Fixed bug with NATURAL LEFT JOIN
,
NATURAL RIGHT JOIN
and RIGHT
JOIN
when using many joined tables. The problem
was that the JOIN
method was not always
associated with the tables surrounding the
JOIN
method. If you have a query that
uses many RIGHT JOIN
or NATURAL
... JOINS
you should check that they work as you
expected after upgrading MySQL to this version. (Bug#291)
mysql
command line client no longer looks
for \*
commands inside backtick-quoted
strings.
Fixed Unknown error
when using
UPDATE ... LIMIT
. (Bug#373)
Fixed problem with ANSI mode and GROUP BY
with constants. (Bug#387)
Fixed bug with UNION
and OUTER
JOIN
. (Bug#386)
Fixed bug if one used a multiple-table
UPDATE
and the query required a temporary
table bigger than tmp_table_size
. (Bug#286)
Run mysql_install_db
with the
-IN-RPM
option for the Mac OS X
installation to not fail on systems with improperly
configured hostname configurations.
LOAD DATA INFILE
will now read
000000
as a zero date instead as
"2000-00-00"
.
Fixed bug that caused DELETE FROM table WHERE
const_expression
always to delete the whole table
(even if expression result was false). (Bug#355)
Fixed core dump bug when using
FORMAT('nan',#)
. (Bug#284)
Fixed name resolution bug with HAVING ...
COUNT(DISTINCT ...)
.
Fixed incorrect result from truncation operator
(*
) in MATCH ...
AGAINST()
in some complex joins.
Fixed a crash in REPAIR ... USE_FRM
command, when used on read-only, nonexisting table or a
table with a crashed index file.
Fixed a crashing bug in mysql monitor program. It occurred
if program was started with --no-defaults
,
with a prompt that contained hostname and connection to
non-existing db was requested
Fixed problem when comparing a key for a multi-byte-character set. (Bug#152)
Fixed bug in LEFT
,
RIGHT
and MID
when
used with multi-byte character sets and some GROUP
BY
queries. (Bug#314)
Fix problem with ORDER BY
being discarded
for some DISTINCT
queries. (Bug#275)
Fixed that SET SQL_BIG_SELECTS=1
works as
documented (This corrects a new bug introduced in 4.0)
Fixed some serious bugs in UPDATE ... ORDER
BY
. (Bug#241)
Fixed unlikely problem in optimizing
WHERE
clause with constant expression
like in WHERE 1 AND (a=1 AND b=1)
.
Fixed that SET SQL_BIG_SELECTS=1
works
again.
Introduced proper backtick quoting for db.table in
SHOW GRANTS
.
FULLTEXT
index stopped working after
ALTER TABLE
that converts
TEXT
column to CHAR
.
(Bug#283)
Fixed a security problem with SELECT
and
wildcarded select list, when user only had partial column
SELECT
privileges on the table.
Mark a MyISAM table as "analyzed" only when all the keys are indeed analyzed.
Only ignore world-writeable my.cnf
files that are regular files (and not, for example, named
pipes or character devices).
Fixed few smaller issues with SET
PASSWORD
.
Fixed error message which contained deprecated text.
Fixed a bug with two NATURAL JOIN
s in the
query.
SUM()
didn't return
NULL
when there was no rows in result or
when all values was NULL
.
On Unix symbolic links handling was not enabled by default and there was no way to turn this on.
Added missing dashes to parameter
--open-files-limit
in
mysqld_safe
. (Bug#264)
Fixed incorrect hostname for TCP/IP connections displayed in
SHOW PROCESSLIST
.
Fixed a bug with NAN
in
FORMAT(...)
function ...
Fixed a bug with improperly cached database privileges.
Fixed a bug in ALTER TABLE ENABLE / DISABLE
KEYS
which failed to force a refresh of table data
in the cache.
Fixed bugs in replication of LOAD DATA
INFILE
for custom parameters
(ENCLOSED
, TERMINATED
and so on) and temporary tables. (Bug#183, Bug#222)
Fixed a replication bug when the master is 3.23 and the
slave 4.0: the slave lost the replicated temporary tables if
FLUSH LOGS
was issued on the master. (Bug#254)
Fixed a bug when doing LOAD DATA INFILE
IGNORE
: When reading the binary log,
mysqlbinlog
and the replication code read
REPLACE
instead of
IGNORE
. This could make the slave's table
become different from the master's table. (Bug#218)
Fixed a deadlock when
relay_log_space_limit
was set to a too
small value. (Bug#79)
Fixed a bug in HAVING clause when an alias is used from the select list.
Fixed overflow bug in MyISAM
when a row
is inserted into a table with a large number of columns and
at least one BLOB/TEXT
column. Bug was
caused by incorrect calculation of the needed buffer to pack
data.
Fixed a bug when SELECT
@nonexistent_variable
caused the error in client - server protocol due to
net_printf() being sent to the client twice.
Fixed a bug in setting SQL_BIG_SELECTS
option.
Fixed a bug in SHOW PROCESSLIST
which
only displayed a localhost in the "Host"
column. This was caused by a glitch that only used current
thread information instead of information from the linked
list of threads.
Removed unnecessary Mac OS X helper files from server RPM. (Bug#144)
Allow optimization of multiple-table update for
InnoDB
tables as well.
Fixed a bug in multiple-table updates that caused some rows to be updated several times.
Fixed a bug in mysqldump
when it was
called with --master-data
: the
CHANGE MASTER TO
commands appended to the
SQL dump had incorrect coordinates. (Bug#159)
Fixed a bug when an updating query using
USER()
was replicated on the slave; this
caused segfault on the slave. (Bug#178).
USER()
is still badly replicated on the
slave (it is replicated to ""
).
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.