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.34).
After release, a trigger failure problem was found to have been introduced. (Bug#27006) Users affected by this issue should upgrade to MySQL 5.0.38, which corrects the problem.
Functionality added or changed:
Incompatible change:
Previously, the DATE_FORMAT() function
returned a binary string. Now it returns a string with a
character set and collation given by
character_set_connection and
collation_connection so that it can return
month and weekday names containing non-ASCII characters. (Bug#22646)
NDB Cluster: The
LockPagesInMainMemory configuration
parameter has changed its type and possible values. For more
information, see
LockPagesInMainMemory.
(Bug#25686)
Important: The values
true and false are no
longer accepted for this parameter. If you were using this
parameter and had it set to false in a
previous release, you must change it to 0.
If you had this parameter set to true, you
should instead use 1 to obtain the same
behavior as previously, or 2 to take
advantage of new functionality introduced with this release
described in the section cited above.
Important: When using
MERGE tables the definition of the
MERGE table and the
MyISAM tables are checked each time the
tables are opened for access (including any
SELECT or INSERT
statement. Each table is compared for column order, types,
sizes and associated. If there is a difference in any one of
the tables then the statement will fail.
The localhost anonymous user account
created during MySQL installation on Windows now has no global
privileges. Formerly this account had all global privileges.
For operations that require global privileges, the
root account can be used instead. (Bug#24496)
The bundled yaSSL library was upgraded to version 1.5.8.
Bugs fixed:
Security fix: Using an
INFORMATION_SCHEMA table with
ORDER BY in a subquery could cause a server
crash.
(CVE-2007-1420,
Bug#24630, Bug#26556) We would like to thank Oren Isacson
from Flowgate Security Consulting as well as well as Stefan
Streichsbier from SEC Consult for informing us about this
problem.
Incompatible change: For
ENUM columns that had enumeration values
containing commas, the commas were mapped to 0xff internally.
However, this rendered the commas indistinguishable from true
0xff characters in the values. This no longer occurs. However,
the fix requires that you dump and reload any tables that have
ENUM columns containing true 0xff in their
values: Dump the tables using mysqldump
with the current server before upgrading from a version of
MySQL 5.0 older than 5.0.36 to version 5.0.36 or newer. (Bug#24660)
If the duplicate key value was present in the table,
INSERT ... ON DUPLICATE KEY UPDATE reported
a row count indicating that a record was updated, even when no
record actually changed due to the old and new values being
the same. Now it reports a row count of zero. (Bug#19978)
Some UPDATE statements were slower than in
previous versions when the search key could not be converted
to a valid value for the type of the search column. (Bug#24035)
The WITH CHECK OPTION clause for views was
ignored for updates of multiple-table views when the updates
could not be performed on fly and the rows to update had to be
put into temporary tables first. (Bug#25931)
Using ORDER BY or GROUP
BY could yield different results when selecting from
a view and selecting from the underlying table. (Bug#26209)
LAST_INSERT_ID() was not reset to 0 if
INSERT ... SELECT inserted no rows. (Bug#23170)
Storing values specified as hexadecimal values 64 or more bits
long into BIT(64),
BIGINT, or BIGINT
UNSIGNED columns did not raise any warning or error
if the value was out of range. (Bug#22533)
Inserting DEFAULT into a column with no
default value could result in garbage in the column. Now the
same result occurs as when inserting NULL
into a NOT NULL column. (Bug#20691)
The presence of ORDER BY in a view
definition prevented the MERGE algorithm
from being used to resolve the view even if nothing else in
the definition required the TEMPTABLE
algorithm. (Bug#12122)
ISNULL(DATE(NULL)) and
ISNULL(CAST(NULL AS DATE)) erroneously
returned false. (Bug#23938)
If a slave server closed its relay log (for example, due to an error during log rotation), the I/O thread did not recognize this and still tried to write to the log, causing a server crash. (Bug#10798)
Collation for LEFT JOIN comparisons could
be evaluated incorrectly, leading to improper query results.
(Bug#26017)
For the IF() and
COALESCE() function and
CASE expressions, large unsigned integer
values could be mishandled and result in warnings. (Bug#22026)
The number of setsockopt() calls performed
for reads and writes to the network socket was reduced to
decrease system call overhead. (Bug#22943)
A WHERE clause that used
BETWEEN for DATETIME
values could be treated differently for a
SELECT and a view defined as that
SELECT. (Bug#26124)
ORDER BY on DOUBLE
values could change the set of rows returned by a query. (Bug#19690)
The code for generating USE statements for
binary logging of CREATE PROCEDURE
statements resulted in confusing output from
mysqlbinlog for DROP
PROCEDURE statements. (Bug#22043)
LOAD DATA INFILE did not work with pipes.
(Bug#25807)
DISTINCT queries that were executed using a
loose scan for an InnoDB table that had
been emptied caused a server crash. (Bug#26159)
The InnoDB parser sometimes did not account
for null bytes, causing spurious failure of some queries. (Bug#25596)
Type conversion errors during formation of index search conditions were not correctly checked, leading to incorrect query results. (Bug#22344)
Within a stored routine, accessing a declared routine variable
with PROCEDURE ANALYSE() caused a server
crash. (Bug#23782)
Use of already freed memory caused SSL connections to hang forever. (Bug#19209)
mysql.server stop timed out too quickly (35 seconds) waiting for the server to exit. Now it waits up to 15 minutes, to ensure that the server exits. (Bug#25341)
A yaSSL program named test was installed, causing conflicts with the test system utility. It is no longer installed. (Bug#25417)
perror crashed on some platforms due to
failure to handle a NULL pointer. (Bug#25344)
mysql_kill() caused a server crash when
used on an SSL connection. (Bug#25203)
The readline library wrote to uninitialized
memory, causing mysql to crash. (Bug#19474)
yaSSL was sensitive to the presence of whitespace at the ends of lines in PEM-encoded certificates, causing a server crash. (Bug#25189)
mysqld_multi and
mysqlaccess looked for option files in
/etc even if the
--sysconfdir option for
configure had been given to specify a
different directory. (Bug#24780)
The SEC_TO_TIME() and
QUARTER() functions sometimes did not
handle NULL values correctly. (Bug#25643)
With ONLY_FULL_GROUP_BY enables, the server
was too strict: Some expressions involving only aggregate
values were rejected as non-aggregate (for example,
MAX(a) - MIN(a)). (Bug#23417)
The arguments of the ENCODE() and the
DECODE() functions were not printed
correctly, causing problems in the output of EXPLAIN
EXTENDED and in view definitions. (Bug#23409)
An error in the name resolution of nested JOIN ...
USING constructs was corrected. (Bug#25575)
A return value of -1 from user-defined
handlers was not handled well and could result in conflicts
with server code. (Bug#24987)
The server might fail to use an appropriate index for
DELETE when ORDER BY,
LIMIT, and a non-restricting
WHERE are present. (Bug#17711)
Use of ON DUPLICATE KEY UPDATE defeated the
usual restriction against inserting into a join-based view
unless only one of the underlying tables is used. (Bug#25123)
Some queries against INFORMATION_SCHEMA
that used subqueries failed. (Bug#23299).
SHOW COLUMNS reported some NOT
NULL columns as NULL. (Bug#22377)
View definitions that used the ! operator
were treated as containing the NOT
operator, which has a different precedence and can produce
different results. (Bug#25580).
For a UNIQUE index containing many
NULL values, the optimizer would prefer the
index for conditions over other more selective indexes.
(Bug#25407).
col IS
NULL
GROUP BY and DISTINCT
did not group NULL values for columns that
have a UNIQUE index. (Bug#25551).
ALTER TABLE ... ENABLE KEYS acquired a
global lock, preventing concurrent execution of other
statements that use tables. (Bug#25044).
For an InnoDB table with any ON
DELETE trigger, TRUNCATE TABLE
mapped to DELETE and activated triggers.
Now a fast truncation occurs and triggers are not activated.
(Bug#23556).
For ALTER TABLE, using ORDER BY
could cause a
server crash. Now the expressionORDER BY clause
allows only column names to be specified as sort criteria
(which was the only documented syntax, anyway). (Bug#24562)
readline detection did not work correctly
on NetBSD. (Bug#23293)
The --with-readline option for
configure does not work for commercial
source packages, but no error message was printed to that
effect. Now a message is printed. (Bug#25530)
If an ORDER BY or GROUP
BY list included a constant expression being
optimized away and, at the same time, containing single-row
subselects that return more that one row, no error was
reported. If a query requires sorting by expressions
containing single-row subselects that return more than one
row, execution of the query may cause a server crash. (Bug#24653)
Attempts to access a MyISAM table with a
corrupt column definition caused a server crash. (Bug#24401)
To enable installation of MySQL RPMs on Linux systems running RHEL 4 (which includes SE-Linux) additional information was provided to specify some actions that are allowed to the MySQL binaries. (Bug#12676)
When SET PASSWORD was written to the binary
log double quotes were included in the statement. If the slave
was running in with the sql_mode set to
ANSI_QUOTES the event would fail and halt
the replication process. (Bug#24158)
Accessing a fixed record format table with a crashed key definition results in server/myisamchk segmentation fault. (Bug#24855)
When opening a corrupted .frm file during
a query, the server crashes. (Bug#24358)
If there was insufficient memory to store or update a blob
record in a MyISAM table then the table
will marked as crashed. (Bug#23196)
When updating a table that used a JOIN of
the table itself (for example, when building trees) and the
table was modified on one side of the expression, the table
would either be reported as crashed or the wrong rows in the
table would be updated. (Bug#21310)
Queries that evaluate NULL IN (SELECT ... UNION
SELECT ...) could produce an incorrect result
(FALSE instead of NULL).
(Bug#24085)
When reading from the standard input on Windows, mysqlbinlog opened the input in text mode rather than binary mode and consequently misinterpreted some characters such as Control-Z. (Bug#23735)
Within stored routines or prepared statements, inconsistent
results occurred with multiple use of INSERT ...
SELECT ... ON DUPLICATE KEY UPDATE when the
ON DUPLICATE KEY UPDATE clause erroneously
tried to assign a value to a column mentioned only in its
SELECT part. (Bug#24491)
Expressions of the form (a, b) IN (SELECT a, MIN(b)
FROM t GROUP BY a) could produce incorrect results
when column a of table t
contained NULL values while column
b did not. (Bug#24420)
Expressions of the form (a, b) IN (SELECT c, d
...) could produce incorrect results if
a, b, or both were
NULL. (Bug#24127)
No warning was issued for use of the DATA
DIRECTORY or INDEX DIRECTORY
table options on a platform that does not support them. (Bug#17498)
When a prepared statement failed during the prepare operation, the error code was not cleared when it was reused, even if the subsequent use was successful. (Bug#15518)
mysql_upgrade failed when called with a
basedir pathname containing spaces. (Bug#22801)
Hebrew-to-Unicode conversion failed for some characters. Definitions for the following Hebrew characters (as specified by the ISO/IEC 8859-8:1999) were added: LEFT-TO-RIGHT MARK (LRM), RIGHT-TO-LEFT MARK (RLM) (Bug#24037)
An AFTER UPDATE trigger on an
InnoDB table with a composite primary key
caused the server to crash. (Bug#25398)
A query that contained an EXIST subquery
with a UNION over correlated and
uncorrelated SELECT queries could cause the
server to crash. (Bug#25219)
A query with ORDER BY and GROUP
BY clauses where the ORDER BY
clause had more elements than the GROUP BY
clause caused a memory overrun leading to a crash of the
server. (Bug#25172)
If there was insufficient memory available to mysqld, this could sometimes cause the server to hang during startup. (Bug#24751)
If a prepared statement accessed a view, access to the tables listed in the query after that view was checked in the security context of the view. (Bug#24404)
A query using WHERE
could
cause the server to crash. (Bug#24261)
unsigned_column NOT IN
('negative_value')
A FETCH statement using a cursor on a table
which was not in the table cache could sometimes cause the
server to crash. (Bug#24117)
SSL connections could hang at connection shutdown. (Bug#24148, Bug#21781)
The STDDEV() function returned a positive
value for data sets consisting of a single value. (Bug#22555)
mysqltest incorrectly tried to retrieve result sets for some queries where no result set was available. (Bug#19410)
mysqltest crashed with a stack overflow. (Bug#24498)
Passing a NULL value to a user-defined
function from within a stored procedure crashes the server.
(Bug#25382)
The row count for MyISAM tables was not
updated properly, causing SHOW TABLE STATUS
to report incorrect values. (Bug#23526)
The BUILD/check-cpu script did not recognize Celeron processors. (Bug#20061)
On Windows, the SLEEP() function could
sleep too long, especially after a change to the system clock.
(Bug#14094, Bug#17635, Bug#24686)
A stored routine containing semicolon in its body could not be reloaded from a dump of a binary log. (Bug#20396)
For SET, SELECT, and
DO statements that invoked a stored
function from a database other than the default database, the
function invocation could fail to be replicated. (Bug#19725)
SET lc_time_names =
allowed only exact
literal values, not expression values. (Bug#22647)
value
Changes to the lc_time_names system
variable were not replicated. (Bug#22645)
SELECT ... FOR UPDATE, SELECT ...
LOCK IN SHARE MODE, DELETE, and
UPDATE statements executed using a full
table scan were not releasing locks on rows that did not
satisfy the WHERE condition. (Bug#20390)
A stored procedure, executed from a connection using a binary character set, and which wrote multibyte data, would write incorrectly escaped entries to the binary log. This caused syntax errors, and caused replication to fail. (Bug#23619, Bug#24492)
mysqldump --order-by-primary failed if the primary key name was an identifier that required quoting. (Bug#13926)
Re-execution of CREATE DATABASE,
CREATE TABLE, and ALTER
TABLE statements in stored routines or as prepared
statements caused incorrect results or crashes. (Bug#22060)
The internal functions for table preparation, creation, and alteration were not re-execution friendly, causing problems in code that: repeatedly altered a table; repeatedly created and dropped a table; opened and closed a cursor on a table, altered the table, and then reopened the cursor. (Bug#4968, Bug#6895, Bug#19182, Bug#19733)
A workaround was implemented to avoid a race condition in the
NPTL pthread_exit() implementation. (Bug#24507)
NDB Cluster (Cluster APIs):
libndbclient.so was not versioned. (Bug#13522)
NDB Cluster: The
ndb_size.tmpl file (necessary for using
the ndb_size.pl script) was missing from
binary distributions. (Bug#24191)
NDB Cluster: A query with an
IN clause against an NDB
table employing explicit user-defined partitioning did not
always return all matching rows. (Bug#25821)
NDB Cluster: An UPDATE
using an IN clause on an
NDB table on which there was a trigger
caused mysqld to crash. (Bug#25522)
NDB Cluster (Cluster APIs): Deletion of an
Ndb_cluster_connection object took a very
long time. (Bug#25487)
NDB Cluster: It was not possible to create
an NDB table with a key on two
VARCHAR columns where both columns had a
storage length in excess of 256. (Bug#25746)
NDB Cluster: In some circumstances,
shutting down the cluster could cause connected
mysqld processes to crash. (Bug#25668)
NDB Cluster: Memory allocations for
TEXT columns were calculated incorrectly,
resulting in space being wasted and other issues. (Bug#25562)
NDB Cluster: The failure of a master node
during a node restart could lead to a resource leak, causing
later node failures. (Bug#25554)
NDB Cluster: The management server did not
handle logging of node shutdown events correctly in certain
cases. (Bug#22013)
NDB Cluster: A node shutdown occurred if
the master failed during a commit. (Bug#25364)
NDB Cluster: Creating a non-unique index
with the USING HASH clause silently created
an ordered index instead of issuing a warning. (Bug#24820)
NDB Cluster: SELECT
statements with a BLOB or
TEXT column in the selected column list and
a WHERE condition including a primary key
lookup on a VARCHAR primary key produced
empty result sets. (Bug#19956)

User Comments
Add your own comment.