This is a Monthly Rapid Update release of the MySQL Enterprise Server 5.0.
This release was withdrawn from production and is no longer available.
This section documents all changes and bugfixes that have been applied since the last last MySQL Enterprise Server release (5.0.46). If you would like to receive more fine-grained and personalized update alerts about fixes that are relevant to the version and features you use, please consider subscribing to MySQL Enterprise (a commercial MySQL offering). For more details please see http://www.mysql.com/products/enterprise/advisors.html.
Functionality added or changed:
If a MyISAM
table is created with no
DATA DIRECTORY
option, the
.MYD
file is created in the database
directory. By default, if MyISAM
finds an
existing .MYD
file in this case, it
overwrites it. The same applies to .MYI
files for tables created with no INDEX
DIRECTORY
option. To suppress this behavior, start the
server with the new --keep_files_on_create
option, in which case MyISAM
will not
overwrite existing files and returns an error instead.
(Bug#29325)
MySQL source distributions are now available in Zip format. (Bug#27742)
The EXAMPLE
storage engine is now enabled by
default.
Bugs fixed:
Incompatible Change:
Failure to consider collation when comparing space characters
could result in incorrect index entry order, leading to
incorrect comparisons, inability to find some index values,
misordered index entries, misordered ORDER BY
results, or tables that CHECK
TABLE
reports as having corrupt indexes.
As a result of this bug fix, indexes must be rebuilt for columns
that use any of these character sets:
eucjpms
, euc_kr
,
gb2312
, latin7
,
macce
, ujis
. See
Section 2.18.3, “Checking Whether Tables or Indexes Must Be Rebuilt”.
(Bug#29461)
MySQL Cluster:
Warnings and errors generated by ndb_config
--config-file=
were sent to file
stdout
, rather than to
stderr
.
(Bug#25941)
MySQL Cluster:
When a cluster backup was terminated using the ABORT
BACKUP
command in the management client, a misleading
error message Backup aborted by application:
Permanent error: Internal error was returned. The
error message returned in such cases now reads Backup
aborted by user request.
(Bug#21052)
MySQL Cluster: Large file support did not work in AIX server binaries. (Bug#10776)
Replication:
SHOW SLAVE STATUS
failed when
slave I/O was about to terminate.
(Bug#34305)
Replication:
The thread ID was not reset properly after execution of
mysql_change_user()
, which could
cause replication failure when replicating temporary tables.
(Bug#29734)
Replication: Operations that used the time zone replicated the time zone only for successful operations, but did not replicate the time zone for errors that need to know it. (Bug#29536)
Replication:
INSERT DELAYED
statements on a
master server are replicated as non-DELAYED
inserts on slaves (which is normal, to preserve serialization),
but the inserts on the slave did not use concurrent inserts. Now
INSERT DELAYED
on a slave is
converted to a concurrent insert when possible, and to a normal
insert otherwise.
(Bug#29152)
Replication:
An error that happened inside
INSERT
,
UPDATE
, or
DELETE
statements performed from
within a stored function or trigger could cause inconsistency
between master and slave servers.
(Bug#27417)
Replication: Slave servers could incorrectly interpret an out-of-memory error from the master and reconnect using the wrong binary log position. (Bug#24192)
Memory corruption occurred for some queries with a top-level
OR
operation in the WHERE
condition if they contained equality predicates and other
sargable predicates in disjunctive parts of the condition.
(Bug#30396)
The server created temporary tables for filesort operations in
the working directory, not in the directory specified by the
tmpdir
system variable.
(Bug#30287)
The query cache does not support retrieval of statements for which column level access control applies, but the server was still caching such statements, thus wasting memory. (Bug#30269)
GROUP BY
on
BIT
columns produced incorrect
results.
(Bug#30219)
Using KILL QUERY
or KILL
CONNECTION
to kill a
SELECT
statement caused a server
crash if the query cache was enabled.
(Bug#30201)
Prepared statements containing
CONNECTION_ID()
could be written
improperly to the binary log.
(Bug#30200)
When a thread executing a DROP
TABLE
statement was killed, the table name locks that
had been acquired were not released.
(Bug#30193)
Use of local variables with non-ASCII names in stored procedures crashed the server. (Bug#30120)
On Windows, client libraries lacked symbols required for linking. (Bug#30118)
--myisam-recover=''
(empty option value) did
not disable MyISAM
recovery.
(Bug#30088)
The IS_UPDATABLE
column in the
INFORMATION_SCHEMA.VIEWS
table was
not always set correctly.
(Bug#30020)
Statements within stored procedures ignored the value of the
low_priority_updates
system
variable.
(Bug#29963)
See also Bug#26162.
For MyISAM
tables on Windows,
INSERT
,
DELETE
, or
UPDATE
followed by
ALTER TABLE
within
LOCK TABLES
could cause table
corruption.
(Bug#29957)
With auto-reconnect enabled, row fetching for a prepared statement could crash after reconnect occurred because loss of the statement handler was not accounted for. (Bug#29948)
LOCK TABLES
did not pre-lock
tables used in triggers of the locked tables. Unexpected locking
behavior and statement failures similar to failed:
1100: Table 'xx
' was not locked with
LOCK TABLES could result.
(Bug#29929)
INSERT ... VALUES(CONNECTION_ID(), ...)
statements were written to the binary log in such a way that
they could not be properly restored.
(Bug#29928)
Adding DISTINCT
could cause incorrect rows to
appear in a query result.
(Bug#29911)
Using the DATE()
function in a
WHERE
clause did not return any records after
encountering NULL
. However, using
TRIM()
or
CAST()
produced the correct
results.
(Bug#29898)
Very long prepared statements in stored procedures could cause a server crash. (Bug#29856)
If query execution involved a temporary table,
GROUP_CONCAT()
could return a
result with an incorrect character set.
(Bug#29850)
If one thread was performing concurrent inserts, other threads reading from the same table using equality key searches could see the index values for new rows before the data values had been written, leading to reports of table corruption. (Bug#29838)
Repeatedly accessing a view in a stored procedure (for example, in a loop) caused a small amount of memory to be allocated per access. Although this memory is deallocated on disconnect, it could be a problem for a long running stored procedures that make repeated access of views. (Bug#29834)
mysqldump produced output that incorrectly
discarded the
NO_AUTO_VALUE_ON_ZERO
value of
the sql_mode
variable after
dumping triggers.
(Bug#29788)
An assertion failure occurred within yaSSL for very long keys. (Bug#29784)
For MEMORY
tables, the
index_merge
union access
method could return incorrect results.
(Bug#29740)
Comparison of TIME
values using
the BETWEEN
operator led to string
comparison, producing incorrect results in some cases. Now the
values are compared as integers.
(Bug#29739)
For a table with a DATE
column
date_col
such that selecting rows
with WHERE
yielded
a nonempty result, adding date_col
=
'date_val
00:00:00'GROUP BY
caused the result
to be empty.
(Bug#29729)date_col
In some cases, INSERT INTO ... SELECT ... GROUP
BY
could insert rows even if the
SELECT
by itself produced an
empty result.
(Bug#29717)
For the embedded server, the
mysql_stmt_store_result()
C API
function caused a memory leak for empty result sets.
(Bug#29687)
EXPLAIN
produced
Impossible where
for statements of the form
SELECT ... FROM t WHERE c=0
, where
c
was an ENUM
column defined as a primary key.
(Bug#29661)
On Windows, ALTER TABLE
hung if
records were locked in share mode by a long-running transaction.
(Bug#29644)
A left join between two views could produce incorrect results. (Bug#29604)
Certain statements with unions, subqueries, and joins could result in huge memory consumption. (Bug#29582)
Clients using SSL could hang the server. (Bug#29579)
A slave running with
--log-slave-updates
would fail to
write INSERT DELAY IGNORE
statements to its
binary log, resulting in different binary log contents on the
master and slave.
(Bug#29571)
An incorrect result was returned when comparing string values
that were converted to TIME
values with CAST()
.
(Bug#29555)
In the ascii
character set, conversion of DEL
(0x7F
) to Unicode incorrectly resulted in
QUESTION MARK (0x3F
) rather than DEL.
(Bug#29499)
A field packet with NULL
fields caused a
libmysqlclient
crash.
(Bug#29494)
When using a combination of HANDLER... READ
and DELETE
on a table, MySQL
continued to open new copies of the table every time, leading to
an exhaustion of file descriptors.
(Bug#29474)
This regression was introduced by Bug#21587.
On Windows, the mysql client died if the user entered a statement and Return after entering Control-C. (Bug#29469)
Killing an INSERT DELAYED
thread
caused a server crash.
(Bug#29431)
The special “zero”
ENUM
value was coerced to the
normal empty string ENUM
value
during a column-to-column copy. This affected CREATE
... SELECT
statements and
SELECT
statements with aggregate
functions on ENUM
columns in the
GROUP BY
clause.
(Bug#29360)
Optimization of queries with DETERMINISTIC
stored functions in the WHERE
clause was
ineffective: A sequential scan was always used.
(Bug#29338)
MyISAM
corruption could occur with the
cp932_japanese_ci
collation for the
cp932
character set due to incorrect
comparison for trailing space.
(Bug#29333)
The mysql_list_fields()
C API
function incorrectly set
MYSQL_FIELD::decimals
for some view columns.
(Bug#29306)
InnoDB
refused to start on some versions of
FreeBSD with LinuxThreads. This is fixed by enabling file
locking on FreeBSD.
(Bug#29155)
A maximum of 4TB InnoDB
free space was
reported by SHOW TABLE STATUS,
which is
incorrect on systems with more than 4TB space.
(Bug#29097)
A byte-order issue in writing a spatial index to disk caused bad index files on some systems. (Bug#29070)
Creation of a legal stored procedure could fail if no default database had been selected. (Bug#29050)
Coercion of ASCII values to character sets that are a superset of ASCII sometimes was not done, resulting in illegal mix of collations errors. These cases now are resolved using repertoire, a new string expression attribute (see Section 9.1.8, “String Repertoire”). (Bug#28875)
Fast ALTER TABLE
(that works
without rebuilding the table) acquired duplicate locks in the
storage engine. In MyISAM
, if
ALTER TABLE
was issued under
LOCK
TABLE
, it caused all data inserted after
LOCK
TABLE
to disappear.
(Bug#28838)
Tables using the InnoDB
storage engine
incremented AUTO_INCREMENT
values incorrectly
with ON DUPLICATE KEY UPDATE
.
(Bug#28781)
Starting the server with an
innodb_force_recovery
value of
4 did not work.
(Bug#28604)
For InnoDB
tables, MySQL unnecessarily sorted
records in certain cases when the records were retrieved by
InnoDB
in the proper order already.
(Bug#28591)
mysql_install_db could fail to find script files that it needs. (Bug#28585)
If a stored procedure was created and invoked prior to selecting
a default database with USE
, a
No database selected error occurred.
(Bug#28551)
On Mac OS X, shared-library installation path names were incorrect. (Bug#28544)
Using the
--skip-add-drop-table
option with mysqldump generated
incorrect SQL if the database included any views. The recreation
of views requires the creation and removal of temporary tables.
This option suppressed the removal of those temporary tables.
The same applied to --compact
since this option also invokes
--skip-add-drop-table
.
(Bug#28524)
A race condition in the interaction between
MyISAM
and the query cache code caused the
query cache not to invalidate itself for concurrently inserted
data.
(Bug#28249)
Indexing column prefixes in InnoDB
tables
could cause table corruption.
(Bug#28138)
Index creation could fail due to truncation of key values to the maximum key length rather than to a mulitiple of the maximum character length. (Bug#28125)
On Windows, symbols for yaSSL and taocrypt were missing from
mysqlclient.lib
, resulting in unresolved
symbol errors for clients linked against that library.
(Bug#27861)
Some SHOW
statements and
INFORMATION_SCHEMA
queries could expose
information not allowed by the user's access privileges.
(Bug#27629)
Some character mappings in the ascii.xml
file were incorrect.
As a result of this bug fix, indexes must be rebuilt for columns
that use the ascii_general_ci
collation for
columns that contain any of these characters:
'`'
, '['
,
'\'
, ']'
,
'~'
. See
Section 2.18.3, “Checking Whether Tables or Indexes Must Be Rebuilt”.
(Bug#27562)
A SELECT
with more than 31 nested
dependent subqueries returned an incorrect result.
(Bug#27352)
INSERT INTO ...
SELECT
caused a crash if
innodb_locks_unsafe_for_binlog
was enabled.
(Bug#27294)
FEDERATED
tables had an artificially low
maximum of key length.
(Bug#26909)
After the first read of a TEMPORARY
table,
CHECK TABLE
could report the
table as being corrupt.
(Bug#26325)
If an operation had an InnoDB
table, and two
triggers, AFTER UPDATE
and AFTER
INSERT
, competing for different resources (such as two
distinct MyISAM
tables), the triggers were
unable to execute concurrently. In addition,
INSERT
and
UPDATE
statements for the
InnoDB
table were unable to run concurrently.
(Bug#26141)
ALTER DATABASE
did not require at
least one option.
(Bug#25859)
Using HANDLER
to open a table
having a storage engine not supported by
HANDLER
properly returned an
error, but also improperly prevented the table from being
dropped by other connections.
(Bug#25856)
When using a FEDERATED
table, the value of
LAST_INSERT_ID()
would not
correctly update the C API interface, which would affect the
autogenerated ID returned both through the C API and the MySQL
protocol, affecting Connectors that used the protocol and/or C
API.
(Bug#25714)
The server was blocked from opening other tables while the
FEDERATED
engine was attempting to open a
remote table. Now the server does not check the correctness of a
FEDERATED
table at
CREATE TABLE
time, but waits
until the table actually is accessed.
(Bug#25679)
Several InnoDB
assertion failures were
corrected.
(Bug#25645)
In a stored function or trigger, when InnoDB
detected deadlock, it attempted rollback and displayed an
incorrect error message (Explicit or implicit commit
is not allowed in stored function or trigger). Now
InnoDB
returns an error under these
conditions and does not attempt rollback. Rollback is handled
outside of InnoDB
above the function/trigger
level.
(Bug#24989)
Dropping a temporary InnoDB
table that had
been locked with LOCK TABLES
caused a server crash.
(Bug#24918)
On Windows, executables did not include Vista manifests. (Bug#24732)
See also Bug#22563.
If MySQL/InnoDB
crashed very quickly after
starting up, it would not force a checkpoint. In this case,
InnoDB
would skip crash recovery at next
startup, and the database would become corrupt. Now, if the redo
log scan at InnoDB
startup goes past the last
checkpoint, crash recovery is forced.
(Bug#23710)
SHOW INNODB STATUS
caused an
assertion failure under high load.
(Bug#22819)
A statement of the form CREATE TABLE IF NOT EXISTS t1
SELECT f1() AS i
failed with a deadlock error if the
stored function f1()
referred to a table with
the same name as the to-be-created table. Now it correctly
produces a message that the table already exists.
(Bug#22427)
Read lock requests that were blocked by a pending write lock request were not allowed to proceed if the statement requesting the write lock was killed. (Bug#21281)
On Windows, the server used 10MB of memory for each connection thread, resulting in memory exhaustion. Now each thread uses 1MB. (Bug#20815)
InnoDB
produced an unnecessary (and harmless)
warning:
.
(Bug#20090)InnoDB
: Error: trying to
declare trx to enter InnoDB
, but
InnoDB
: it already is declared
SQL_BIG_RESULT
had no effect for
CREATE TABLE ... SELECT SQL_BIG_RESULT ...
statements.
(Bug#15130)
mysql_setpermission tried to grant global-only privileges at the database level. (Bug#14618)
For the general query log, logging of prepared statements
executed via the C API differed from logging of prepared
statements performed with PREPARE
and EXECUTE
. Logging for the
latter was missing the Prepare
and
Execute
lines.
(Bug#13326)
Backup software can cause
ERROR_SHARING_VIOLATION
or
ERROR_LOCK_VIOLATION
conditions during file
operations. InnoDB
now retries forever until
the condition goes away.
(Bug#9709)
User Comments
Add your own comment.