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:
MySQL Cluster:
The parsing of the CLUSTERLOG
command by
ndb_mgm was corrected to allow multiple
items.
(Bug#12833)
Replication:
Better detection of connection timeout for replication servers
on Windows allows elimination of extraneous Lost
connection
errors in the error log.
(Bug#5588)
The limit of 255 characters on the input buffer for mysql on Windows has been lifted. The exact limit depends on what the system allows, but can be up to 64K characters. A typical limit is 16K characters. (Bug#12929)
Added the myisam_stats_method
,
which controls whether NULL
values in indexes
are considered the same or different when collecting statistics
for MyISAM
tables. This influences the query
optimizer as described in
Section 7.4.7, “MyISAM
Index Statistics Collection”.
(Bug#12232)
A new command line argument was added to mysqld to ignore client character set information sent during handshake, and use server side settings instead, to reproduce 4.0 behavior :
mysqld --skip-character-set-client-handshake
(Bug#9948)
RAND()
no longer allows
nonconstant initializers. (Prior to MySQL 4.1.15, the effect of
nonconstant initializers is undefined.)
(Bug#6172)
When using IF NOT EXISTS
with
CREATE DATABASE
or
CREATE TABLE
, a warning now is
generated if the database or table already exists. :
(Bug#6008)
Bugs fixed:
MySQL Cluster: Adding an index to a table with a large number of columns (more then 100) crashed the storage node. (Bug#13316)
MySQL Cluster:
The cluster management client START BACKUP
command could be interrupted by a
SHOW
command.
(Bug#13054)
MySQL Cluster:
Updating a column of one of the
TEXT
types during a cluster
backup could cause the ndbd process to crash,
due to the incorrect use of charset-normalized reads. This could
also lead to character data having the wrong lettercase in the
backup if such a column was updated during the backup; for
example, supposing that the column used
latin_ci
, then
“aAa
” might be stored in the
backup as “AAA
”.
(Bug#12950)
MySQL Cluster: When it could not copy a fragment, ndbd exited without printing a message about the condition to the error log. Now the message is written. (Bug#12900)
MySQL Cluster: When a Disk is full condition occurred, ndbd exited without reporting this condition in the error log. (Bug#12716)
MySQL Cluster:
An ALTER TABLE
command caused
loss of data stored prior to the issuing of the command.
(Bug#12118)
MySQL Cluster:
Invalid values in config.ini
caused
ndb_mgmd to crash.
(Bug#12043)
MySQL Cluster: Multiple ndb_mgmd processes in a cluster did not know each other's IP addresses. (Bug#12037)
MySQL Cluster: When a schema was detected to be corrupt, ndb neglected to close it, resulting in a file already open error if the schema was opened again later. written. (Bug#12027)
MySQL Cluster:
With two mgmd processes in a cluster,
ndb_mgm output for
SHOW
would display the same IP
address for both processes, even when they were on different
hosts.
(Bug#11595)
MySQL Cluster:
MySQL failed to compile when --with-ndb-ccflags
was specified.
(Bug#11538)
MySQL Cluster: Improved error messages related to file system issues. (Bug#11218)
MySQL Cluster:
LOAD DATA
INFILE
with a large data file failed.
(Bug#10694)
MySQL Cluster: A cluster shutdown following the crash of a data node failed to terminate any remaining node processes, even though ndb_mgm showed the shutdown request as having been completed. (Bug#9996, Bug#10938, Bug#11623)
MySQL Cluster:
When deleting a great many (tens of thousands of) rows at once
from an NDB
table, an improperly
dereferenced pointer could cause the mysqld
process to crash.
(Bug#9282)
Replication:
When any --replicate-wild-* option
is used, the
slave ignores SET ONE_SHOT TIME_ZONE
statements as belonging to a nonreplicated table.
(Bug#12542)
Replication:
The --replicate-rewrite-db
and
--replicate-do-table
options did
not work for statements in which tables were aliased to names
other than those listed by the options.
(Bug#11139)
Replication:
If a DROP DATABASE
fails on a
master server due to the presence of a nondatabase file in the
database directory, the master have the database tables deleted,
but not the slaves. To deal with failed database drops, we now
write DROP TABLE
statements to
the binary log for the tables so that they are dropped on
slaves.
(Bug#4680)
The server could over-allocate memory when performing a
FULLTEXT
search for stopwords only.
(Bug#13582)
After running configure with the
--with-embedded-privilege-control
option, the
embedded server failed to build.
(Bug#13501)
UNION
of two
DECIMAL
columns returned wrong
field type.
(Bug#13372)
Comparisons involving row constructors containing constants could cause a server crash. (Bug#13356)
MySQL would pass an incorrect key length to storage engines for
MIN()
. This could cause spurious
warnings such as InnoDB: Warning: using a
partial-field key prefix in search to appear in the
.err
log.
(Bug#13218, Bug#11039)
Aggregate functions sometimes incorrectly were allowed in the
WHERE
clause of
UPDATE
and
DELETE
statements.
(Bug#13180)
If special characters such as '_'
,
'%'
, or the escape character were included
within the prefix of a column index, LIKE
pattern matching on the indexed column did not return the
correct result.
(Bug#13046, Bug#13919)
SHOW CREATE TABLE
did not display
any FOREIGN KEY
clauses if a temporary file
could not be created. Now SHOW CREATE
TABLE
displays an error message in an SQL comment if
this occurs.
(Bug#13002)
On HP-UX 11.x (PA-RISC), the -L
option caused
mysqlimport to crash.
(Bug#12958)
The counters for the
Key_read_requests
,
Key_reads
,
Key_write_requests
, and
Key_writes
status variables
were changed from unsigned long
to
unsigned longlong
to accommodate larger
values before the variables roll over and restart from 0.
(Bug#12920)
For queries with DISTINCT
and WITH
ROLLUP
, the DISTINCT
should be
applied after the rollup operation, but was not always.
(Bug#12887)
A column that can be NULL
was not handled
properly for WITH ROLLUP
in a subquery or
view.
(Bug#12885)
MIN()
and
MAX()
sometimes returned a
non-NULL
value for an empty row set (for
example, SELECT MAX(1) FROM empty_table
).
(Bug#12882)
GROUP_CONCAT()
ignored an empty
string if it was the first value to occur in the result.
(Bug#12863)
SELECT GROUP_CONCAT(...) FROM DUAL
in a
subquery could cause the client to hang.
(Bug#12861)
If a client has opened an InnoDB
table for
which the .ibd
file is missing,
InnoDB
would not honor a
DROP TABLE
statement for the
table.
(Bug#12852)
The server crashed when one thread resized the query cache while another thread was using it. (Bug#12848)
A concurrency problem for CREATE ... SELECT
could cause a server crash.
(Bug#12845)
The ARCHIVE
storage engine does not support
deletes, but it was possible to delete by using
DELETE
or
TRUNCATE TABLE
with a
FEDERATED
table that points to an
ARCHIVE
table.
(Bug#12836)
After changing the character set with SET CHARACTER
SET
, the result of the
GROUP_CONCAT()
function was not
converted to the proper character set.
(Bug#12829)
Reverted a change introduced in MySQL 4.1.13 (SHOW
FIELDS
truncated the TYPE
column to
40 characters). This fix was reverted for MySQL 4.1 because it
broke existing applications. The fix will be made in MySQL 5.0
instead (5.0.13).
(Bug#12817)
The patch for the following bugs was reverted: Bug#7142.
An optimizer estimate of zero rows for a nonempty
InnoDB
table used in a left or right join
could cause incomplete rollback for the table.
(Bug#12779)
Shared-memory connections were not working on Windows. (Bug#12723)
Performing an IS NULL
check on the
MIN()
or
MAX()
of an indexed column in a
complex query could produce incorrect results.
(Bug#12695)
CHECKSUM TABLE
locked
InnoDB
tables and did not use a consistent
read.
(Bug#12669)
A SELECT
DISTINCT
query with a constant value for one of the
columns would return only a single row.
(Bug#12625)
The LIKE ... ESCAPE
syntax produced invalid
results when escape character was larger than one byte.
(Bug#12611)
DELETE
or
UPDATE
for an indexed
MyISAM
table could fail. This was due to a
change in end-space comparison behavior from 4.0 to 4.1.
(Bug#12565)
A UNION
of long
utf8
VARCHAR
columns was sometimes returned as a column with a
LONGTEXT
data
type rather than VARCHAR
. This
could prevent such queries from working at all if selected into
a MEMORY
table because the
MEMORY
storage engine does not support the
TEXT
data types.
(Bug#12537)
A client connection thread cleanup problem caused the server to crash when closing the connection if the binary log was enabled. (Bug#12517)
MEMORY
tables using B-Tree
index on 64-bit platforms could produce false table is full
errors.
(Bug#12460)
Deadlock occurred when several account management statements
were run (particularly between
FLUSH
PRIVILEGES
/SET PASSWORD
and
GRANT
/REVOKE
statements).
(Bug#12423)
InnoDB
was too permissive with LOCK
TABLE ... READ LOCAL
and allowed new inserts into the
table. Now READ LOCAL
is equivalent to
READ
for InnoDB
. This will
cause slightly more locking in mysqldump, but
makes InnoDB
table dumps consistent with
MyISAM
table dumps.
(Bug#12410)
A prepared statement failed with Illegal mix of
collations
if the client character set was
utf8
and the statement used a table that had
a character set of latin1
.
(Bug#12371)
The value of
character_set_results
could be
set to NULL
, but returned the string
"NULL"
when retrieved.
(Bug#12363)
On Windows, the server was preventing tables from being created
if the table name was a prefix of a forbidden name. For example,
nul
is a forbidden name because it is the
same as a Windows device name, but a table with the name of
n
or nu
was being
forbidden as well.
(Bug#12325)
Users created using an IP address or other alias rather than a
host name listed in /etc/hosts
could not
set their own passwords.
(Bug#12302)
CHECKSUM TABLE
command returned
incorrect results for tables with deleted rows. After upgrading,
users who used stored checksum information to detect table
changes should rebuild their checksum data.
(Bug#12296)
For VARCHAR
columns with the
ucs2
character set, InnoDB
trimmed trailing 0x20
bytes rather than
0x0020
words, resulting in incorrect index
lookups later.
(Bug#12178)
Outer join elimination was erroneously applied for some queries
that used a NOT BETWEEN
condition, an
IN(
condition, or an value_list
)IF()
condition.
(Bug#12102, Bug#12101)
LOAD DATA
INFILE
did not respect the
NO_AUTO_VALUE_ON_ZERO
SQL mode
setting.
(Bug#12053)
TRUNCATE TABLE
did not work with
TEMPORARY
InnoDB
tables.
(Bug#11816)
Queries that created implicit temporary tables could return incorrect data types for some columns. (Bug#11718)
Use of a user-defined function within the
HAVING
clause of a query resulted in an
Unknown column
error.
(Bug#11553)
ALTER TABLE
did not move the table to
default database unless the new name was qualified with the
database name.
(Bug#11493)db_name.t
RENAME
t
mysqld_multi now quotes arguments on command lines that it constructs to avoid problems with arguments that contain shell metacharacters. (Bug#11280)
Spatial index corruption could occur during updates. (Bug#9645)
The have_innodb
read-only
system variable could not be selected with SELECT
@@have_innodb
.
(Bug#9613)
Queries against a MERGE
table that has a
composite index could produce incorrect results.
(Bug#9112)
Display of the AUTO_INCREMENT
attribute by
SHOW CREATE TABLE
was not
controlled by the
NO_FIELD_OPTIONS
SQL mode as
it should have been.
(Bug#7977)
The data type for DECIMAL
columns
was not respected when updating the column from another column.
For example, updating a DECIMAL(10,1)
column
with the value from a DECIMAL(10,5)
column
resulted in a DECIMAL(10,5)
value being
stored. Similarly, altering a column with a
DECIMAL(10,5)
datatype to a
DECIMAL(10,1)
data type did not properly
convert data values.
(Bug#7598)
MySQL programs in binary distributions for Solaris 8/9/10 x86 systems would not run on Pentium III machines. (Bug#6772)
On Windows when the
--innodb_buffer_pool_awe_mem_mb
option has been given, the server detects whether AWE support is
available and has been compiled into the server, and displays an
appropriate error message if not.
(Bug#6581)
myisampack did not properly pack
BLOB
values larger than
224 bytes.
(Bug#4214)
User Comments
Add your own comment.