End of Product Lifecycle. Active development and support for MySQL Database Server versions 3.23, 4.0, and 4.1 has ended. For details, see http://www.mysql.com/about/legal/lifecycle/#calendar. Please consider upgrading to a recent version. Further updates to the content of this manual will be minimal. All formats of this manual will continue to be available until 31 Dec 2010.
Functionality added or changed:
Print version_comment (from
./configure --comment during compilation)
when starting the server. Example: Version:
'4.0.21-debug' socket: '/tmp/mysql.sock' port: 0 Official
MySQL Binary
Made the MySQL server not react to signals
SIGHUP and SIGQUIT on
Mac OS X 10.3. This is needed because under this OS, the MySQL
server receives lots of these signals (reported as Bug#2030).
On Windows, the mysqld-nt and mysqld-max-nt servers now write error messages to the Windows event log in addition to the MySQL error log.
Bugs fixed:
Fixed an old bug in concurrent accesses to
MERGE tables (even one
MERGE table and MyISAM
tables), that could've resulted in a crash or hang of the
server. (Bug#2408, CVE-2004-0837)
Fixed a bug that caused incorrect results from GROUP
BY queries with expression in
HAVING clause that refers to a columns such
as BLOB,
TEXT, or
TINYBLOB. (Bug#4358)
Fixed a bug when memory was not released when
HEAP table is dropped. It could only happen
on Windows when a symlink file (.sym) is used and if that
symlink file contained double backslashes (\\). (Bug#4973)
Fixed a bug which prevented TIMESTAMP(19)
fields from being created. (Bug#4491)
Fixed a bug that caused wrong results in queries that were
using index to search for NULL values in
BLOB
(TINYBLOB,
TEXT,
TINYTEXT, etc) columns of
MyISAM tables. (Bug#4816)
Fixed a bug in the function
ROUND() reporting incorrect
metadata (number of digits after the decimal point). It can be
seen, for example, in CREATE TABLE t1 SELECT ROUND(1,
34). (Bug#4393)
Fixed precision loss bug in some mathematical functions such
as SQRT() and
LOG(). (Bug#4356)
Fixed a long-standing problem with LOAD
DATA with the LOCAL option. The
problem occurs when an error happens during the
LOAD DATA operation.
Previously, the connection was broken. Now the error message
is returned and connection stays open.
Optimizer now treats col IN (val) the same
way it does for col = val.
Fixed a problem with
net_buffer_length when
building the DBD::mysql Perl module.
(Bug#4206)
lower_case_table_names = 2 (keep case for
table names) was not honored with ALTER
TABLE and CREATE/DROP INDEX.
(Bug#3109)
Fixed a crash on declaration of
DECIMAL(0,...) column. (Bug#4046)
Fixed a bug in IF() function
incorrectly determining the result type if aggregate functions
were involved. (Bug#3987)
Fixed bug in privilege checking where, under some conditions, one was able to grant privileges on the database, he has no privileges on. (Bug#3933)
Fixed crash in MATCH ... AGAINST() on a
phrase search operator with a missing closing double quote.
(Bug#3870, CVE-2004-0956)
Values greater than 4294967295 of system variables were truncated on 64-bit platforms. (Bug#3754)
If server-id was not set using startup
options but with
SET
GLOBAL, the replication slave still complained that
it was not set. (Bug#3829)
Fixed potential memory overrun in
mysql_real_connect() (which
required a compromised DNS server and certain operating
systems). (Bug#4017, CVE-2004-0836)
During the installation process of the server RPM on Linux,
mysqld was run as the
root system user, and if you had
--log-bin=
it created binary log files owned by somewhere_out_of_var_lib_mysqlroot
in this directory, which remained owned by
root after the installation. This is now
fixed by starting mysqld as the
mysql system user instead. (Bug#4038)
Made DROP DATABASE honor the
value of
lower_case_table_names.
(Bug#4066)
The slave SQL thread refused to replicate
INSERT ...
SELECT if it examined more than 4 billion rows.
(Bug#3871)
Fixed incorrect destruction of expression which led to crash
of server on complex
AND/OR
expressions if query was ignored (either by a replication
server because of --replicate-*-table rules,
or by any MySQL server because of a syntax error). (Bug#3969,
Bug#4494)
Fixed that mysqlbinlog --position
--read-from-remote-server had wrong #
at lines. (Bug#4506)
If CREATE TEMPORARY TABLE t SELECT failed
while loading the data, the temporary table was not dropped.
(Bug#4551)
Fixed that when a multiple-table DROP
TABLE failed to drop a table on the master server,
the error code was not written to the binary log. (Bug#4553)
When the slave SQL thread was replicating a
LOAD DATA
INFILE statement, it didn't show the statement in
the output of SHOW PROCESSLIST.
(Bug#4326)
Fixed that CREATE TABLE ... TYPE=HEAP ... AS
SELECT... caused replication slave to stop.
(Bug#4971)
Fixed that disable-local-infile option had
no effect if client read it from a configuration file using
mysql_options(...,MYSQL_READ_DEFAULT,...).
(Bug#5073)
Fixed that mysql-test-run failed on the
rpl_trunc_binlog test if running test from
the installed (the target of 'make install') directory.
(Bug#5050)
Fixed an unlikely deadlock which could happen when using
KILL. (Bug#4810)
Fixed a crash when one connection got
KILLed while it was doing
START SLAVE. (Bug#4827)
Made FLUSH TABLES WITH
READ LOCK block
COMMIT if server is running
with binary logging; this ensures that the binary log position
is trustable when doing a full backup of tables and the binary
log. (Bug#4953)
Fixed that the counter of an auto_increment
column was not reset by TRUNCATE
TABLE is the table was a temporary one. (Bug#5033)
Made database names to compare case-insensitively in fully
qualified column names
(database.table.column) when
lower_case_table_names = 1. (Bug#4792)
Fixed that SET CHARACTER SET was not
replicated correctly. MySQL 4.1 does not have that bug.
(Bug#4500)
Fixed a symlink vulnerability in the
mysqlhotcopy script. (CVE-2004-0457)

User Comments
Add your own comment.