This is a Monthly Rapid Update release of the MySQL Enterprise Server 5.0.
This section documents all changes and bugfixes that have been applied since the last MySQL Enterprise Server release (5.0.58). 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:
For binary .tar.gz packages,
mysqld and other binaries now are compiled
with debugging symbols included to enable easier use with a
debugger.
(Bug#33252)
Bugs fixed:
Important Change: Security Fix:
It was possible to circumvent privileges through the creation of
MyISAM tables employing the DATA
DIRECTORY and INDEX DIRECTORY
options to overwrite existing table files in the MySQL data
directory. Use of the MySQL data directory in DATA
DIRECTORY and INDEX DIRECTORY is
now disallowed.
(Bug#32167)
Important Change:
It was possible to use FRAC_SECOND as a
synonym for MICROSECOND with
DATE_ADD(),
DATE_SUB(), and
INTERVAL; now, using
FRAC_SECOND with anything other than
TIMESTAMPADD() or
TIMESTAMPDIFF() produces a
syntax error.
It is now possible (and preferable) to use
MICROSECOND with
TIMESTAMPADD() and
TIMESTAMPDIFF(), and
FRAC_SECOND is now deprecated.
(Bug#33834)
Important Change:
The server handled truncation of values having excess trailing
spaces into CHAR, VARCHAR,
and TEXT columns in different ways. This
behavior has now been made consistent for columns of all three
of these types, and now follows the existing behavior of
VARCHAR columns in this regard; that is, a
Note is always issued whenever such
truncation occurs.
This change does not affect columns of these three types when
using a binary encoding; BLOB columns are
also unaffected by the change, since they always use a binary
encoding.
(Bug#30059)
Replication:
INSERT_ID was not written to the binary log
for inserts into BLACKHOLE tables.
(Bug#35178)
Replication: The character sets and collations used for constant identifiers in stored procedures were not replicated correctly. (Bug#34289)
Replication:
An extraneous ROLLBACK statement was written
to the binary log by a connection that did not use any
transactional tables.
(Bug#33329)
Replication:
When a stored routine or trigger, running on a master that used
MySQL 5.0 or MySQL 5.1.11 or earlier, performed an insert on an
AUTO_INCREMENT column, the
INSERT_ID value was not replicated correctly
to a slave running MySQL 5.1.12 or later (including any MySQL
6.0 release).
(Bug#33029)
See also Bug#19630
Replication:
STOP SLAVE did not stop connection attempts
properly. If the IO slave thread was attempting to connect,
STOP SLAVE waited for the attempt to finish,
sometimes for a long period of time, rather than stopping the
slave immediately.
(Bug#31024)
See also Bug#30932
Replication:
MASTER_POS_WAIT() did not return
NULL when the server was not a slave.
(Bug#26622)
Replication:
The inspecific error message Wrong parameters to
function register_slave resulted when START
SLAVE failed to register on the master due to excess
length of any the slave server options
--report-host, --report-user,
or --report-password. An error message specific
to each of these options is now returned in such cases. The new
error messages are:
Failed to register slave: too long 'report-host'
Failed to register slave: too long 'report-user'
Failed to register slave; too long 'report-password'
See also Bug#19328
Replication:
START SLAVE UNTIL
MASTER_LOG_POS=
issued on a slave that was using
position--log-slave-updates and that was involved in
circular replication would cause the slave to run and stop one
event later than that specified by the value of
position.
(Bug#13861)
Replication:
PURGE BINARY LOGS TO and PURGE
BINARY LOGS BEFORE did not handle missing binary log
files correctly or in the same way. Now for both of these
statements, if any files listed in the
.index file are missing from the
filesystem, the statement fails with an error.
On Windows, the installer attempted to use JScript to determine whether the target data directory already existed. On Windows Vista x64, this resulted in an error because the installer was attempting to run the JScript in a 32-bit engine, which wasn't registered on Vista. The installer no longer uses JScript but instead relies on a native WiX command. (Bug#36103)
There was a memory leak when connecting to a
FEDERATED table using a connection string
that had a host value of localhost or omitted
the host and a port value of 0 or omitted the
port.
(Bug#35509)
Using LOAD DATA INFILE with a view could
crash the server.
(Bug#35469)
When a view containing a reference to DUAL
was created, the reference was removed when the definition was
stored, causing some queries against the view to fail with
invalid SQL syntax errors.
(Bug#35193)
A query that performed a ref_or_null join
where the second table used a key having one or columns that
could be NULL and had a column value that was
NULL caused the server to crash.
(Bug#34945)
This regression was introduced by Bug#12144
Some binaries produced stack corruption messages due to being built with versions of bison older than 2.1. Builds are now created using bison 2.3. (Bug#34926)
mysqldump failed to return an error code when
using the --master-data option without binary
logging being enabled on the server.
(Bug#34909)
Under some circumstances, the value of
mysql_insert_id() following a
SELECT ... INSERT statement could return an
incorrect value. This could happen when the last SELECT
... INSERT did not involve an
AUTO_INCREMENT column, but the value of
mysql_insert_id() was changed
by some previous statements.
(Bug#34889)
Table and database names were mixed up in some places of the subquery transformation procedure. This could affect debugging trace output and further extensions of that procedure. (Bug#34830)
A malformed URL used for a FEDERATED
table's CONNECTION option value in a
CREATE TABLE statement was not handled
correctly and could crash the server.
(Bug#34788)
Queries such as SELECT ROW(1, 2) IN (SELECT t1.a, 2)
FROM t1 GROUP BY t1.a (combining row constructors and
subqueries in the FROM clause) could lead to
assertion failure or unexpected error messages.
(Bug#34763)
Using NAME_CONST() with a negative number and
an aggregate function caused MySQL to crash. This could also
have a negative impact on replication.
(Bug#34749)
A memory-handling error associated with use of
GROUP_CONCAT() in subqueries
could result in a server crash.
(Bug#34747)
For an indexed integer column
col_name and a value
N that is one greater than the
maximum value allowed for the data type of
col_name, conditions of the form
WHERE failed to return rows
where the value of col_name <
Ncol_name is
.
(Bug#34731)N - 1
Executing a TRUNCATE statement on a table
having both a foreign key reference and a
DELETE trigger crashed the server.
(Bug#34643)
Some subqueries using an expression that included an aggregate function could fail or in some cases lead to a crash of the server. (Bug#34620)
CAST(AVG( produced incorrect results for
non-arg) AS
DECIMAL)DECIMAL arguments.
(Bug#34512)
Under some conditions, a SET GLOBAL
innodb_commit_concurrency or SET GLOBAL
innodb_autoextend_increment statement could fail.
(Bug#34223)
mysqldump attempts to set the
character_set_results system variable after
connecting to the server. This failed for pre-4.1 servers that
have no such variable, but mysqldump did not
account for this and 1) failed to dump database contents; 2)
failed to produce any error message alerting the user to the
problem.
(Bug#34192)
For a FEDERATED table with an index on a
nullable column, accessing the table could crash a server,
return an incorrect result set, or return ERROR 1030
(HY000): Got error 1430 from storage engine.
(Bug#33946)
A query using WHERE
(column1=', where
string1' AND
column2=constant1) OR
(column1='string2' AND
column2=constant2)col1 used a binary collation and
string1 matched
string2 except for case, failed to
match any records even when matches were found by a query using
the equivalent clause WHERE
column2=.
(Bug#33833)constant1 OR
column2=constant2
Reuse of prepared statements could cause a memory leak in the embedded server. (Bug#33796)
Some queries using a combination of IN,
CONCAT(), and an implicit type
conversion could return an incorrect result.
(Bug#33764)
In some cases a query that produced a result set when using
ORDER BY ASC did not return any results when
this was changed to ORDER BY DESC.
(Bug#33758)
Disabling concurrent inserts caused some cacheable queries not to be saved in the query cache. (Bug#33756)
Certain combinations of views, subselects with outer references and stored routines or triggers could cause the server to crash. (Bug#33389)
SLEEP(0) failed to return on
64-bit Mac OS X due to a bug in
pthread_cond_timedwait().
(Bug#33304)
Granting the UPDATE privilege on one column
of a view caused the server to crash.
(Bug#33201)
Under some circumstances a combination of aggregate functions
and GROUP BY in a SELECT
query over a view could lead to incorrect calculation of the
result type of the aggregate function. This in turn could lead
to incorrect results, or to crashes on debug builds of the
server.
(Bug#33049)
For DISTINCT queries, 4.0 and 4.1 stopped
reading joined tables as soon as the first matching row was
found. However, this optimzation was lost in MySQL 5.0, which
instead read all matching rows. This fix for this regression may
result in a major improvement in performance for
DISTINCT queries in cases where many rows
match.
(Bug#32942)
Incorrect assertions could cause a server crash for
DELETE triggers for transactional tables.
(Bug#32790)
Inserting strings with a common prefix into a table that used
the ucs2 character set corrupted the table.
(Bug#32705)
Queries using LIKE on tables having indexed
CHAR columns using either of the
eucjpms or ujis character
sets did not return correct results.
(Bug#32510)
Queries testing numeric constants containing leading zeroes
against ZEROFILL columns were not evaluated
correctly.
(Bug#31887)
If an error occurred during file creation, the server sometimes did not remove the file, resulting in an unused file in the filesystem. (Bug#31781)
The server returned the error message Out of memory; restart server and try again when the actual problem was that the sort buffer was too small. Now an appropriate error message is returned in such cases. (Bug#31590)
When sorting privilege table rows, the server treated escaped
wildcard characters (\% and
\_) the same as unescaped wildcard characters
(% and _), resulting in
incorrect row ordering.
(Bug#31194)
On WIndows, SHOW PROCESSLIST could display
process entries with a State value of
*** DEAD ***.
(Bug#30960)
If an alias was used to refer to the value returned by a stored function within a subselect, the outer select recognized the alias but failed to retrieve the value assigned to it in the subselect. (Bug#30787)
Binary logging for a stored procedure differed depending on whether or not execution occurred in a prepared statement. (Bug#30604)
An orphaned PID file from a no-longer-running process could cause mysql.server to wait for that process to exit even though it does not exist. (Bug#30378)
The mysql_config command would output
CFLAGS values that were incompatible with C++
for the HP-UX platform.
(Bug#29645)
The SQL parser did not accept an empty
UNION=() clause. This meant that, when there
were no underlying tables specified for a
MERGE table, SHOW CREATE
TABLE and mysqldump both output
statements that could not be executed.
Now it is possible to execute a CREATE TABLE
or ALTER TABLE statement with an empty
UNION=() clause. However, SHOW
CREATE TABLE and mysqldump do not
output the UNION=() clause if there are no
underlying tables specified for a MERGE
table. This also means it is now possible to remove the
underlying tables for a MERGE table using
ALTER TABLE ... UNION=().
(Bug#28248)
It was possible to exhaust memory by repeatedly running
index_merge queries and never performing any
FLUSH TABLES statements.
(Bug#27732)
When utf8 was set as the connection character
set, using SPACE() with a
non-Unicode column produced an error.
(Bug#27580)
See also Bug#23637
In ORDER BY clauses, mixing aggregate
functions and non-grouping columns is not allowed if the
ONLY_FULL_GROUP_BY SQL mode is enabled.
However, in some cases, no error was thrown because of
insufficient checking.
(Bug#27219)
For the --record_log_pos option,
mysqlhotcopy now determines the slave status
information from the result of SHOW SLAVE
STATUS by using the
Relay_Master_Log_File and
Exec_Master_Log_Pos values rather than the
Master_Log_File and
Read_Master_Log_Pos values. This provides a
more accurate indication of slave execution relative to the
master.
(Bug#27101)
config-win.h unconditionally defined
bool as BOOL, causing
problems on systems where bool is 1 byte and
BOOL is 4 bytes.
(Bug#26461)
On Windows, for distributions built with debugging support, mysql could crash if the user typed Control-C. (Bug#26243)
On Windows, an error in configure.js caused
installation of source distributions to fail.
(Bug#25340)
Using mysqldump in MySQL 5.1 resulted in dump
files that could not be loaded in MySQL 5.0 because
USING
options in index definitions appeared after the index column
list, whereas 5.0 accepted only the old syntax that has
type_nameUSING before the column list. The parser in
5.0 now accepts USING following the column
list.
(Bug#25162)
The client library had no way to return an error if no
connection had been established. This caused problems such as
mysql_library_init() failing
silently if no errmsg.sys file was
available.
(Bug#25097)
On Mac OS X, the StartupItem for MySQL did not work. (Bug#25008)
For Windows 64-bit builds, enabling shared-memory support caused client connections to fail. (Bug#24992)
If a user installed MySQL Server and set a password for the
root user, and then uninstalled and
reinstalled MySQL Server to the same location, the user could
not use the MySQL Instance Config wizard to configure the server
because the uninstall operation left the previous data directory
intact. The config wizard assumed that any
new install (not an upgrade) would have the default data
directory where the root user has no
password. The installer now writes a registry key named
FoundExistingDataDir. If the installer finds
an existing data directory, the key will have a value of 1,
otherwise it will have a value of 0. When
MySQLInstanceConfig.exe is run, it will
attempt to read the key. If it can read the key, and the value
is 1 and there is no existing instance of the server (indicating
a new installation), the Config Wizard will allow the user to
input the old password so the server can be configured.
(Bug#24215)
The MySQL header files contained some duplicate macro definitions that could cause compilation problems. (Bug#23839)
SHOW COLUMNS on a TEMPOARY
table caused locking issues.
(Bug#23588)
For distributions compiled with the bundled
libedit library, there were difficulties
using the mysql client to enter input for
non-ASCII or multi-byte characters.
(Bug#23097)
On Mac OS X, mysqld did not react to Ctrl-C
when run under gdb, even when run with the
--gdb option.
(Bug#21567)
mysql-stress-test.pl and mysqld_multi.server.sh were missing from some binary distributions. (Bug#21023, Bug#25486)
A SET column whose definition specified 64
elements could not be updated using integer values.
(Bug#15409)
MySQLInstanceConfig.exe did not save the
innodb_data_home_dir value to the
my.ini file under certain circumstances.
(Bug#6627)

User Comments
Add your own comment.