This is a Monthly Rapid Update release of the MySQL Enterprise Server 5.0.
This section documents all changes and bug fixes that have been applied since the last MySQL Enterprise Server release (5.0.28).
Functionality added or changed:
If the user specified the server options
--max-connections=
or
N--table-open-cache=,
a warning would be given in some cases that some values were
recalculated, with the result that
M--table-open-cache could be assigned greater
value.
It should be noted that, in such cases, both the warning and
the increase in the --table-open-cache value
were completely harmless. Note also that it is not possible
for the MySQL Server to predict or to control limitations on
the maximum number of open files, since this is determined by
the operating system.
The recalculation code has now been fixed to ensure that the
value of --table-open-cache is no longer
increased automatically, and that a warning is now given only
if some values had to be decreased due to operating system
limits.
NDB Cluster: A potential memory leak in the
NDB storage engine's handling of file
operations was uncovered. (Bug#21858)
NDB Cluster: The HELP
command in the Cluster management client now provides
command-specific help. For example, HELP
RESTART in ndb_mgm provides
detailed information about the START
command. (Bug#19620)
NDB Cluster: Added the --bind-address
option for ndbd. This allows a data node
process to be bound to a specific network interface. (Bug#22195)
NDB Cluster: The
Ndb_number_of_storage_nodes system variable
was renamed to Ndb_number_of_data_nodes.
(Bug#20848)
NDB Cluster: The
ndb_config utility now accepts
-c as a short form of the
--ndb-connectstring option. (Bug#22295)
SHOW STATUS is no longer logged to the slow
query log. (Bug#19764)
mysqldump --single-transaction now uses
START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT
*/ rather than BEGIN to start a
transaction, so that a consistent snapshot will be used on
those servers that support it. (Bug#19660)
mysql_upgrade now passes all the parameters
specified on the command line to both
mysqlcheck and mysql
using the upgrade_defaults file. (Bug#20100)
For the CALL statement, stored procedures
that take no arguments now can be invoked without parentheses.
That is, CALL p() and CALL
p are equivalent. (Bug#21462)
Bugs fixed:
NDB Cluster: Data nodes added while the
cluster was running in single user mode were all assigned node
ID 0, which could later cause multiple node failures. Adding
of nodes in single user mode is no longer possible. (Bug#20395)
NDB Cluster: Attempting to create an
NDB table on a MySQL with an existing
non-Cluster table with the same name in the same database
could result in data loss or corruption. MySQL now issues a
warning when a SHOW TABLES or other
statement causing table discovery finds such a table. (Bug#21378)
NDB Cluster (NDB API): Inacivity timeouts
for scans were not correctly handled. (Bug#23107)
NDB Cluster (NDB API): Attempting to read a
nonexistent tuple using Commit mode for
NdbTransaction::execute() caused node
failures. (Bug#22672)
NDB Cluster (NDB API): Scans closed before
being executed were still placed in the send queue. (Bug#21941)
NDB Cluster (NDB API): The
NdbOperation::getBlobHandle() method, when
called with the name of a nonexistent column, caused a
segmentation fault. (Bug#21036)
NDB Cluster: A problem with takeover during
a system restart caused ordered indexes to be rebuilt
incorrectly. (Bug#15303)
NDB Cluster: The
ndb_config utility did not perform host
lookups correctly when using the --host
option. (Bug#17582)
NDB Cluster: The
ndb_config utility did not perform host
lookups correctly when using the --host
option (Bug#17582)
NDB Cluster: The error returned by the
cluster when too many nodes were defined did not make clear
the nature of the problem. (Bug#19045)
NDB Cluster: ndb_mgm -e show |
head would hang after displaying the first 10 lines
of output. (Bug#19047)
NDB Cluster: In rare situations with
resource shortages, a crash could result from insufficient
IndexScanOperations. (Bug#19198)
NDB Cluster: ndb_restore
did not always make clear that it had recovered successfully
from temporary errors while restoring a cluster backup. (Bug#19651)
NDB Cluster: Error messages given when
trying to make online changes parameters such as
NoOfReplicas thast can only be changed via
a complete shutdown and restart of the cluster did not
indicate the true nature of the problem. (Bug#19787)
NDB Cluster: Following the restart of an
MGM node, the Cluster management client did not automatically
reconnect. (Bug#19873)
NDB Cluster: In some cases where
SELECT COUNT(*) from an
NDB table should have yielded an error,
MAX_INT was returned instead. (Bug#19914)
NDB Cluster (NDB API): When multiple
processes or threads in parallel performed the same ordered
scan with exclusive lock and updating the retrieved records,
the scan could skip some records, which were not updated as a
result. (Bug#20446)
NDB Cluster: Using an invalid node ID with
the management client STOP command could
cause ndb_mgm to hang. (Bug#20575)
NDB Cluster: Under some circumstances,
local checkpointing would hang, keeping any unstarted nodes
from being started. (Bug#20895)
NDB Cluster: Condition pushdown did not
work correctly with DATETIME columns. (Bug#21056)
NDB Cluster: When inserting a row into an
NDB table with a duplicate value for a
non-primary unique key, the error issued would reference the
wrong key. (Bug#21072)
NDB Cluster: Cluster logs were not rotated
following the first rotation cycle. (Bug#21345)
NDB Cluster: The ndb_mgm
management client did not set the exit status on errors,
always returning 0 instead. (Bug#21530)
NDB Cluster: Partition distribution keys
were updated only for the primary and starting replicas during
node recovery. This could lead to node failure recovery for
clusters having an odd number of replicas. (Bug#21535)
Note: We recommend values for
NumberOfReplicas that are even powers of 2,
for best results.
NDB Cluster: The output for the
--help option used with
NDB executable programs
(ndbd, ndb_mgm,
ndb_restore, ndb_config,
and so on) referred to the Ndb.cfg file,
instead of my.cnf. (Bug#21585)
NDB Cluster: The node recovery algorithm
was missing a version check for tables in the
ALTER_TABLE_COMMITTED state (as opposed to
the TABLE_ADD_COMMITTED state, which has
the version check). This could cause inconsistent schemas
across nodes following node recovery. (Bug#21756)
NDB Cluster: A scan timeout returned Error
4028 (Node failure caused abort of
transaction) instead of Error 4008
(Node failure caused abort of
transaction...). (Bug#21799)
NDB Cluster: The --help
output from NDB binaries did not include
file-related options. (Bug#21994)
NDB Cluster: Multiple node restarts in
rapid succession could cause a system restart to fail (Bug#22892), or induce a race condition (Bug#23210).
NDB Cluster: If a node restart could not be
performed from the REDO log, no node takeover took place. This
could cause partitions to be left empty during a system
restart. (Bug#22893)
NDB Cluster: INSERT ... ON
DUPLICATE KEY UPDATE on an NDB
table could lead to deadlocks and memory leaks. (Bug#23200)
NDB Cluster: The management client command
ALL DUMP 1000 would cause the cluster to
crash if data nodes were connected to the cluster but not yret
fully started. (Bug#23203)
NDB Cluster: Cluster backups would fail
when there were more than 2048 schema objects in the cluster.
(Bug#23499)
NDB Cluster: Restoring a cluster failed if
there were any tables with 128 or more columns. (Bug#23502)
If an init_connect SQL statement produced
an error, the connection was silently terminated with no error
message. Now the server writes a warning to the error log.
(Bug#22158)
The internal SQL interpreter of InnoDB
placed an unnecessary lock on the supremum record when
innodb_locks_unsafe_for_binlog=1. This
caused an assertion failure when InnoDB was
built with debugging enabled. (Bug#23769)
If a table contains an AUTO_INCREMENT
column, inserting into an insertable view on the table that
does not include the AUTO_INCREMENT column
should not change the value of
LAST_INSERT_ID(), because the side effects
of inserting default values into columns not part of the view
should not be visible. MySQL was incorrectly setting
LAST_INSERT_ID() to zero. (Bug#22584)
returns
M % 0NULL, but
(
evaluated to false. (Bug#23411)
M % 0) IS NULL
Within a stored routine, a view definition cannot refer to routine parameters or local variables. However, an error did not occur until the routine was called. Now it occurs during parsing of the routine creation statement. (Bug#20953)
Note: A side effect of this
fix is that if you have already created such routines, and
error will occur if you execute SHOW CREATE
PROCEDURE or SHOW CREATE
FUNCTION. You should drop these routines because
they are erroneous.
A client library crash was caused by executing a statement
such as SELECT * FROM t1 PROCEDURE
ANALYSE() using a server side cursor on a table
t1 that does not have the same number of
columns as the output from PROCEDURE
ANALYSE(). (Bug#17039)
mysql did not check for errors when fetching data during result set printing. (Bug#22913)
Adding a day, month, or year interval to a
DATE value produced a
DATE, but adding a week interval produced a
DATETIME value. Now all produce a
DATE value. (Bug#21811)
The column default value in the output from SHOW
COLUMNS or SELECT FROM
INFORMATION_SCHEMA.COLUMNS was truncated to 64
characters. (Bug#23037)
For not-yet-authenticated connections, the
Time column in SHOW
PROCESSLIST was a random value rather than
NULL. (Bug#23379)
The Host column in SHOW
PROCESSLIST output was blank when the server was
started with the --skip-grant-tables option.
(Bug#22728)
The Handler_rollback status variable
sometimes was incremented when no rollback had taken place.
(Bug#22728)
Within a prepared statement, SELECT (COUNT(*) =
1) (or similar use of other aggregate functions) did
not return the correct result for statement re-execution. (Bug#21354)
Lack of validation for input and output
TIME values resulted in several problems:
SEC_TO_TIME() within subqueries incorrectly
clipped large values; SEC_TO_TIME() treated
BIGINT UNSIGNED values as signed; only
truncation warnings were produced when both truncation and
out-of-range TIME values occurred. (Bug#11655, Bug#20927)
Range searches on columns with an index prefix could miss records. (Bug#20732)
With SQL_MODE=TRADITIONAL, MySQL
incorrectly aborted on warnings within stored routines and
triggers. (Bug#20028)
In mysql, invoking
connect or \r with very
long db_name or
host_name parameters caused buffer
overflow. (Bug#20894)
mysqldump --xml produced invalid XML for
BLOB data. (Bug#19745)
For a debug server, a reference to an undefined user variable
in a prepared statment executed with
EXECUTE caused an assertion failure. (Bug#19356)
Within a trigger for a base table, selecting from a view on that base table failed. (Bug#19111)
DELETE IGNORE could hang for foreign key
parent deletes. (Bug#18819)
Transient errors in replication from master to slave may
trigger multiple Got fatal error 1236: 'binlog
truncated in the middle of event' errors on the
slave. (Bug#4053)
The value of the warning_count system
variable was not being calculated correctly (also affecting
SHOW COUNT(*) WARNINGS). (Bug#19024)
InnoDB exhibited thread thrashing with more
than 50 concurrent connections under an update-intensive
workload. (Bug#22868)
InnoDB showed substandard performance with
multiple queries running concurrently. (Bug#15815)
There was a race condition in the InnoDB
fil_flush_file_spaces() function. (Bug#24089)
FROM_UNIXTIME() did not accept arguments up
to POWER(2,31)-1, which it had previously.
(Bug#9191)
Some yaSSL-related memory leaks detected by Valgrind were fixed. (Bug#23981)
If COMPRESS() returned
NULL, subsequent invocations of
COMPRESS() within a result set or within a
trigger also returned NULL. (Bug#23254)
mysql would lose its connection to the server if its standard output was not writable. (Bug#17583)
mysql-test-run did not work correctly for RPM-based installations. (Bug#17194)
The return value from my_seek() was
ignored. (Bug#22828)
Use of PREPARE with a CREATE
PROCEDURE statement that contained a syntax error
caused a server crash. (Bug#21868)
Use of a DES-encrypted SSL certificate file caused a server crash. (Bug#21868)
Column names were not quoted properly for replicated views. (Bug#19736)
InnoDB used table locks (not row locks)
within stored functions. (Bug#18077)
Statements such as DROP PROCEDURE and
DROP VIEW were written to the binary log
too late due to a race condition. (Bug#14262)
MySQL would fail to build on the Alpha platform. (Bug#23256)
The optimizer failed to use equality propagation for
BETWEEN and IN
predicates with string arguments. (Bug#22753)
The optimizer used the ref join type rather
than eq_ref for a simple join on strings.
(Bug#22367)
The WITH CHECK OPTION for a view failed to
prevent storing invalid column values for
UPDATE statements. (Bug#16813)
A literal string in a GROUP BY clause could
be interpreted as a column name. (Bug#14019)
Some queries that used MAX() and
GROUP BY could incorrectly return an empty
result. (Bug#22342)
WITH ROLLUP could group unequal values.
(Bug#20825)
Use of a subquery that invoked a function in the column list of the outer query resulted in a memory leak. (Bug#21798)
LIKE searches failed for indexed
utf8 character columns. (Bug#20471)
FLUSH INSTANCES in Instance Manager
triggered an assertion failure. (Bug#19368)
ALTER TABLE was not able to rename a view.
(Bug#14959)
Entries in the slow query log could have an incorrect
Rows_examined value. (Bug#12240)
Insufficient memory
(myisam_sort_buffer_size) could cause a
server crash for several operations on
MyISAM tables: repair table, create index
by sort, repair by sort, parallel repair, bulk insert. (Bug#23175)
OPTIMIZE TABLE with
myisam_repair_threads > 1 could result
in MyISAM table corruption. (Bug#8283)
Selecting from a MERGE table could result
in a server crash if the underlying tables had fewer indexes
than the MERGE table itself. (Bug#22937)
A locking safety check in InnoDB reported a
spurious error stored_select_lock_type is 0 inside
::start_stmt() for INSERT ...
SELECT statements in
innodb_locks_unsafe_for_binlog mode. The
safety check was removed. (Bug#10746)
For multiple-table UPDATE statements,
storage engines were not notified of duplicate-key errors.
(Bug#21381)
Incorrect results could be obtained from re-execution of a
parametrized prepared statement or a stored routine with a
SELECT that uses LEFT
JOIN with a second table having only one row. (Bug#21081)
An UPDATE that referred to a key column in
the WHERE clause and activated a trigger
that modified the column resulted in a loop. (Bug#20670)
Creating a TEMPORARY table with the same
name as an existing table that was locked by another client
could result in a lock conflict for DROP TEMPORARY
TABLE because the server unnecessarily tried to
acquire a name lock. (Bug#21096)
After FLUSH TABLES WITH READ LOCK followed
by UNLOCK TABLES, attempts to drop or alter
a stored routine failed with an error that the routine did not
exist, and attempts to execute the routine failed with a lock
conflict error. (Bug#21414)
SHOW VARIABLES truncated the
Value field to 256 characters. (Bug#20862)
Instance Manager didn't close the client socket file when starting a new mysqld instance. mysqld inherited the socket, causing clients connected to Instance Manager to hang. (Bug#12751)
Instance Manager had a race condition involving mysqld PID file removal. (Bug#22379)
It was possible for a stored routine with a
non-latin1 name to cause a stack overrun.
(Bug#21311)

User Comments
Add your own comment.