MySQL 5.0.23 was never officially released.
This section documents all changes and bug fixes that have been applied since the last official MySQL release. 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.
Functionality added or changed:
Important Change: MySQL Cluster:
The status variables Ndb_connected_host and
Ndb_connected_port were renamed to
Ndb_config_from_host and
Ndb_config_from_port, respectively.
MySQL Cluster:
The limit of 2048 ordered indexes per cluster has been lifted.
There is now no upper limit on the number of ordered indexes
(including AUTO_INCREMENT columns) that may
be used.
(Bug#14509)
The mysqldumpslow script has been moved from client RPM packages to server RPM packages. This corrects a problem where mysqldumpslow could not be used with a client-only RPM install, because it depends on my_print_defaults which is in the server RPM. (Bug#20216)
Added the log_queries_not_using_indexes
system variable.
(Bug#19616)
Added the ssl_ca,
ssl_capath, ssl_cert,
ssl_cipher, and ssl_key
system variables, which display the values given via the
corresponding command options. See
Section 5.5.7.3, “SSL Command Options”.
(Bug#19606)
SQL syntax for prepared statements now supports ANALYZE
TABLE, OPTIMIZE TABLE, and
REPAIR TABLE.
(Bug#19308)
For a table with an AUTO_INCREMENT column,
SHOW CREATE TABLE now shows the next
AUTO_INCREMENT value to be generated.
(Bug#19025)
The ONLY_FULL_GROUP_BY SQL mode now also
applies to the HAVING clause. That is,
columns not named in the GROUP BY clause
cannot be used in the HAVING clause if not
used in an aggregate function.
(Bug#18739)
Added the --set-charset option to
mysqlbinlog to allow the character set to be
specified for processing binary log files.
(Bug#18351)
The bundled yaSSL library was upgraded to version 1.3.5. This improves handling of certain problems with SSL-related command options. (Bug#17737)
Added the --ssl-verify-server-cert option to
MySQL client programs. This option causes the server's Common
Name value in its certificate to be verified against the
hostname used when connecting to the server, and the connection
is rejected if there is a mismatch. Added
MYSQL_OPT_SSL_VERIFY_SERVER_CERT option for
the mysql_options() C API
function to enable this verification. This feature can be used
to prevent man-in-the-middle attacks. Verification is disabled
by default.
(Bug#17208)
It is now possible to use
NEW.
values within triggers as var_nameINOUT parameters to
stored procedures.
(Bug#14635)
Added the --angel-pid-file option to
mysqlmanager for specifying the file in which
the angel process records its process ID when
mysqlmanager runs in daemon mode.
(Bug#14106)
The mysql_get_ssl_cipher() C
API function was added.
The mysql_upgrade command has been converted from a shell script to a C program, so it is available on non-Unix systems such as Windows. This program should be run for each MySQL upgrade. See Section 4.4.9, “mysql_upgrade — Check Tables for MySQL Upgrade”.
Binary distributions that include SSL support now are built using yaSSL when possible.
Bugs fixed:
Security Fix:
A NUL byte within a comment in a statement
string caused the rest of the string not to be written to the
query log, allowing logging to be bypassed.
(Bug#17667, CVE-2006-0903)
MySQL Cluster:
The ndb_mgm client command ALL
CLUSTERLOG STATISTICS=15 had no effect.
(Bug#20336)
MySQL Cluster:
The failure of a data node when preparing to commit a
transaction (that is, while the node's status was
CS_PREPARE_TO_COMMIT) could cause the failure
of other cluster data nodes.
(Bug#20185)
MySQL Cluster: An internal formatting error caused some management client error messages to be unreadable. (Bug#20016)
MySQL Cluster: Renaming a table in such a way as to move it to a different database failed to move the table's indexes. (Bug#19967)
MySQL Cluster: Running management client commands while mgmd was in the process of disconnecting could cause the management server to fail. (Bug#19932)
MySQL Cluster:
Running ALL START in the
NDB management client or restarting multiple
nodes simultaneously could under some circumstances cause the
cluster to crash.
(Bug#19930)
MySQL Cluster:
TEXT columns in Cluster tables having both an
explicit primary key and a unique key were not correctly updated
by REPLACE statements.
(Bug#19906)
MySQL Cluster:
The cluster's data nodes failed while trying to load data when
NoOfFrangmentLogFiles was set equal to 1.
(Bug#19894)
MySQL Cluster:
Restoring a backup with ndb_restore failed
when the backup had been taken from a cluster whose
DataMemory had been completely used up.
(Bug#19852)
MySQL Cluster:
Resources for unique indexes on Cluster table columns were
incorrectly allocated, so that only one-fourth as many unique
indexes as indicated by the value of
UniqueHashIndexes could be created.
(Bug#19623)
MySQL Cluster:
(NDBAPI): On big-endian platforms,
NdbOperation::write_attr() did not update
32-bit fields correctly.
(Bug#19537)
MySQL Cluster:
LOAD DATA LOCAL failed to ignore duplicate
keys in Cluster tables.
(Bug#19496)
MySQL Cluster: For ndb_mgmd, Valgrind revealed problems with a memory leak and a dependency on an uninitialized variable. (Bug#19318, Bug#20333)
MySQL Cluster:
A problem with error handling when
ndb_use_exact_count was enabled could lead to
incorrect values returned from queries using
COUNT(). A warning is
now returned in such cases.
(Bug#19202)
MySQL Cluster:
TRUNCATE failed on tables having
BLOB or TEXT columns with
the error Lock wait timeout exceeded.
(Bug#19201)
MySQL Cluster:
mysql-test-run.pl started
NDB even for test cases that did not need it.
(Bug#19083)
MySQL Cluster: Stopping multiple nodes could cause node failure handling not to be completed. (Bug#19039)
MySQL Cluster:
The management client ALL STOP command shut
down mgmd processes (as well as
ndbd processes).
(Bug#18966)
MySQL Cluster:
TRUNCATE TABLE failed to reset the
AUTO_INCREMENT counter.
(Bug#18864)
MySQL Cluster:
Repeated CREATE - INSERT -
DROP operations tables could in some
circumstances cause the MySQL table definition cache to become
corrupt, so that some mysqld processes could
access table information but others could not.
(Bug#18595)
MySQL Cluster:
Repeated use of the SHOW and ALL
STATUS commands in the ndb_mgm
client could cause the mgmd process to crash.
(Bug#18591)
MySQL Cluster: ndbd sometimes failed to start with the error Node failure handling not completed following a graceful restart. (Bug#18550)
MySQL Cluster:
Backups could fail for large clusters with many tables, where
the number of tables approached
MaxNoOfTables.
(Bug#17607)
MySQL Cluster:
An issue with ndb_mgmd prevented more than 27
mysqld processes from connecting to a single
cluster at one time.
(Bug#17150)
MySQL Cluster:
Using “stale” mysqld
.FRM files could cause a newly-restored
cluster to fail. This situation could arise when restarting a
MySQL Cluster using the --intial option while
leaving connected mysqld processes running.
(Bug#16875)
MySQL Cluster: Data node failures could cause excessive CPU usage by ndb_mgmd. (Bug#13987)
MySQL Cluster: Cluster system status variables were not updated properly. (Bug#11459)
MySQL Cluster:
Some queries having a WHERE clause of the
form c1=val1 OR c2 LIKE 'val2' were not
evaluated correctly. (Bug # 17421)
MySQL Cluster: (NDBAPI): Update operations on blobs were not checked for illegal operations.
Read locks with blob update operations are now upgraded from read committed to read shared.
A buffer overwrite error in Instance Manager caused a crash. (Bug#20622)
On Windows, temporary tables containing “
: ” in the name could not be created.
(Bug#20616)
The fill_help_tables.sql file did not
contain a SET NAMES 'utf8' statement to
indicate its encoding. This caused problems for some settings of
the MySQL character set such as big5.
(Bug#20551)
The fill_help_tables.sql file did not load
properly if the ANSI_QUOTES SQL mode was
enabled.
(Bug#20542)
mysql_upgrade was missing from binary MySQL distributions. (Bug#20403, Bug#18516, Bug#20556)
Several aspects of view privileges were being checked incorrectly. (Bug#20363, Bug#18681)
Queries using an indexed column as the argument for the
MIN() and
MAX() functions following an
ALTER TABLE .. DISABLE KEYS statement
returned Got error 124 from storage
engine until ALTER TABLE ... ENABLE
KEYS was run on the table.
(Bug#20357)
The thread for INSERT DELAYED rows was
maintaining a separate AUTO_INCREMENT
counter, resulting in incorrect values being assigned if
DELAYED and non-DELAYED
inserts were mixed.
(Bug#20195)
On Linux, libmysqlclient when compiled with
yaSSL using the icc compiler had a spurious
dependency on C++ libraries.
(Bug#20119)
A number of dependency issues in the RPM
bench and test packages
caused installation of these packages to fail.
(Bug#20078)
A compatibility issue with NPTL (Native POSIX Thread Library) on
Linux could result in a deadlock with FLUSH TABLES WITH
READ LOCK under some conditions.
(Bug#20048)
Some outer joins were incorrectly converted to inner joins. (Bug#19816)
This regression was introduced by Bug#17146
CREATE DATABASE, RENAME
DATABASE, and DROP DATABASE could
deadlock in cases where there was a global read lock.
(Bug#19815)
The WITH CHECK OPTION was not enforced when a
REPLACE statement was executed against a
view.
(Bug#19789)
Multiple-table updates with FEDERATED tables
could cause a server crash.
(Bug#19773)
InnoDB unlocked its data directory before
committing a transaction, potentially resulting in
non-recoverable tables if a server crash occurred before the
commit.
(Bug#19727)
Subqueries that produced a BIGINT UNSIGNED
value were being treated as returning a signed value.
(Bug#19700)
GROUP BY on an expression that contained a
cast to DECIMAL produced an incorrect result.
(Bug#19667)
MERGE tables did not work reliably with
BIT columns.
(Bug#19648)
Re-execution of a prepared multiple-table
DELETE statement that involves a trigger or
stored function can result in a server crash.
(Bug#19634)
The range operator failed and caused a server crash for clauses
of the form
.
(Bug#19618)tbl_name.unsigned_keypart
NOT IN (negative_const,
...)
CHECK TABLE on a MyISAM
table briefly cleared its AUTO_INCREMENT
value, while holding only a read lock. Concurrent inserts to
that table could use the wrong AUTO_INCREMENT
value. CHECK TABLE no longer modifies the
AUTO_INCREMENT value.
(Bug#19604)
Using
CONCAT(@, where
user_var,
col_name)col_name is a column in an
INFORMATION_SCHEMA table, could cause
erroneous duplication of data in the query result.
(Bug#19599)
Some yaSSL public function names conflicted with those from
OpenSSL, causing conflicts for applications that linked against
both OpenSSL and a version of libmysqlclient
that was built with yaSSL support. The yaSSL public functions
now are renamed to avoid this conflict.
(Bug#19575)
A view definition that referred to an alias in the
HAVING clause could be saved in the
.frm file with the alias replaced by the
expression that it referred to, causing failure of subsequent
SELECT * FROM statements.
(Bug#19573)view_name
mysql displayed NULL for
strings that are empty or contain only spaces.
(Bug#19564)
InnoDB failed to increment the
handler_read_prev counter.
(Bug#19542)
Selecting from a view that used GROUP BY on a
non-constant temporal interval (such as
DATE(
could cause a server crash.
(Bug#19490)col) + INTERVAL
TIME_TO_SEC(col) SECOND
mysqldump did not dump the table name
correctly for some table identifiers that contained unusual
characters such as “ : ”.
(Bug#19479)
On 64-bit Windows systems, REGEXP for regular
expressions with exactly 31 characters did not work.
(Bug#19407)
An outer join of two views that was written using { OJ
... } syntax could cause a server crash.
(Bug#19396)
Race conditions on certain platforms could cause the Instance Manager to fail to initialize. (Bug#19391)
Use of the --no-pager option caused
mysql to crash.
(Bug#19363)
In the INFORMATION_SCHEMA.COLUMNS table, the
values for the CHARACTER_MAXIMUM_LENGTH and
CHARACTER_OCTET_LENGTH columns were incorrect
for multi-byte character sets.
(Bug#19236)
Multiple-table DELETE statements containing a
subquery that selected from one of the tables being modified
caused a server crash.
(Bug#19225)
On Windows, removal of binary log files would fail if the files were already open. (Bug#19208)
Flushing the compression buffer (via FLUSH
TABLE) no longer increases the size of an unmodified
ARCHIVE table.
(Bug#19204)
An ALTER TABLE operation that does not need
to copy data, when executed on a table created prior to MySQL
4.0.25, could result in a server crash for subsequent accesses
to the table.
(Bug#19192)
SSL connections using yaSSL on OpenBSD could fail. (Bug#19191)
Attempting to set the default value of an
ENUM or SET column to
NULL caused a server crash.
(Bug#19145)
Use of uninitialized user variables in a subquery in the
FROM clause resulted in invalid entries in
the binary log.
(Bug#19136)
A CREATE TABLE statement that created a table
from a materialized view did not inherit default values from the
underlying table.
(Bug#19089)
Index prefixes for utf8
VARCHAR columns did not work for
UPDATE statements.
(Bug#19080)
Premature optimization of nested subqueries in the
FROM clause that refer to aggregate functions
could lead to incorrect results.
(Bug#19077)
Valgrind revealed several issues with mysqld
that were corrected: A dangling stack pointer being overwritten;
possible uninitialized data in a string comparison; memory
corruption in replication slaves when switching databases;
syscall() write parameter pointing to an
uninitialized byte.
(Bug#19022, Bug#20579, Bug#20769, Bug#20783, Bug#20791)
The parser leaked memory when its stack needed to be extended. (Bug#18930)
BIT columns in a table could cause joins that
use the table to fail.
(Bug#18895)
The MySQL server startup script /etc/init.d/mysql (created from mysql.server) is now marked to ensure that the system services ypbind, nscd, ldap, and NTP are started first (if these are configured on the machine). (Bug#18810)
The COM_STATISTICS command was changed in
5.0.3 to display session status variable values rather than
global values. This causes mysqladmin status
information not to be useful for the Slow
queries and Opens values. Now
COM_STATISTICS displays the global values for
Slow queries and Opens.
(Bug#18669)
LOAD DATA FROM MASTER would fail when trying
to load the INFORMATION_SCHEMA database from
the master, because the INFORMATION_SCHEMA
system database would already exist on the slave.
(Bug#18607)
BLOB or TEXT arguments to
or values returned from stored functions were not copied
properly if too long and could become garbled.
(Bug#18587)
The IN-to-EXISTS
transformation was making a reference to a parse tree fragment
that was left out of the parse tree. This caused problems with
prepared statements.
(Bug#18492)
mysqldump produced garbled output for view definitions. (Bug#18462)
The configuration information for building the embedded server on Windows was missing a file. (Bug#18455)
In mysqltest, --sleep=0 had
no effect. Now it correctly causes sleep
commands in test case files to sleep for 0 seconds.
(Bug#18312)
INFORMATION_SCHEMA.TABLES provided
inconsistent info about invalid views. This could cause server
crashes or result in incorrect data being returned for queries
that attempt to obtain information from
INFORMATION_SCHEMA tables about views using
stored functions.
(Bug#18282)
On Windows, corrected a crash stemming from differences in Visual C runtime library routines from POSIX behavior regarding invalid file descriptors. (Bug#18275)
On Windows, terminating mysqld with Control-C could result in a crash during shutdown. (Bug#18235)
Selecting data from a MEMORY table with a
VARCHAR column and a HASH
index over it returned only the first row matched.
(Bug#18233)
The use of MIN() and
MAX() on columns with
an index prefix produced incorrect results in some queries.
(Bug#18206)
An entry in the mysql.proc table with an
empty routine name caused access to the
INFORMATION_SCHEMA.ROUTINES table to crash
the server.
(Bug#18177)
A UNION over more than 128
SELECT statements that use an aggregate
function failed.
(Bug#18175)
Updates to a MEMORY table caused the size of
BTREE indexes for the table to increase.
(Bug#18160)
SELECT DISTINCT queries sometimes returned
only the last row.
(Bug#18068)
Returning the value of a system variable from a stored function caused a server crash. (Bug#18037)
An update that used a join of a table to itself and modified the table on both sides of the join reported the table as crashed. (Bug#18036)
Race conditions on certain platforms could cause the Instance Manager to try to restart the same instance multiple times. (Bug#18023)
For a reference to a non-existent index in FORCE
INDEX, the error message referred to a column, not an
index.
(Bug#17873)
The sql_big_selects system variable was not
displayed by SHOW VARIABLES.
(Bug#17849)
REPAIR TABLE did not restore the length for
packed keys in tables created under MySQL 4.x, which caused them
to appear corrupt to CHECK TABLE but not to
REPAIR TABLE.
(Bug#17810)
Results from INFORMATION_SCHEMA.SCHEMATA
could contain uppercase information when
lower_case_table_names was not 0.
(Bug#17661)
CREATE TABLE ... SELECT did not always
produce the proper column default value in
TRADITIONAL SQL mode.
(Bug#17626)
A range access optimizer heuristic was invalid, causing some queries to be much slower in MySQL 5.0 than in 4.0. (Bug#17379, Bug#18940)
mysqldump would not dump views that had
become invalid because a table named in the view definition had
been dropped. Instead, it quit with an error message. Now you
can specify the --force option to cause
mysqldump to keep going and write an SQL
comment containing the view definition to the dump output.
(Bug#17371)
The --core-file-size option for
mysqld_safe was effective only for
root.
(Bug#17353)
On Windows, multiple clients simultaneously attempting to
perform ALTER TABLE operations on an
InnoDB table could deadlock.
(Bug#17264)
The binary log would create an incorrect DROP
query when creating temporary tables during replication.
(Bug#17263)
Revised memory allocation for local objects within stored functions and triggers to avoid memory leak for repeated function or trigger invocation. (Bug#17260)
Multiple calls to a stored procedure that selects from
INFORMATION_SCHEMA could cause a server
crash.
(Bug#17204)
Views created from prepared statements inside of stored
procedures were created with a definition that included both
SQL_CACHE and
SQL_NO_CACHE.
(Bug#17203)
mysqldump wrote an extra pair of
DROP DATABASE and CREATE
DATABASE statements if run with the
--add-drop-database option and the database
contained views.
(Bug#17201)
A Table ... doesn't exist error could occur for statements that called a function defined in another database. (Bug#17199)
For certain CREATE TABLE ... SELECT
statements, the selected values were truncated when inserted
into the new table.
(Bug#17048)
ALTER TABLE on a table created prior to 5.0.3
would cause table corruption if the ALTER
TABLE did one of the following:
Change the default value of a column.
Change the table comment.
Change the table password.
MyISAM table deadlock was possible if one
thread issued a LOCK TABLES request for write
locks and then an administrative statement such as
OPTIMIZE TABLE, if between the two statements
another client meanwhile issued a multiple-table
SELECT for some of the locked tables.
(Bug#16986)
Symlinking .mysql_history to
/dev/null to suppress statement history
saving by mysql did not work.
(mysql deleted the symlink and recreated
.mysql_history as a regular file, and then
wrote history to it.)
(Bug#16803)
Concatenating the results of multiple constant subselects produced incorrect results. (Bug#16716)
Privilege checking on the contents of the
INFORMATION_SCHEMA.VIEWS table was
insufficiently restrictive.
(Bug#16681)
mysqlcheck tried to check views instead of ignoring them. (Bug#16502)
IS_USED_LOCK() could return an
incorrect connection identifier.
(Bug#16501)
Concurrent reading and writing of privilege structures could crash the server. (Bug#16372)
Grant table modifications sometimes did not refresh the
in-memory tables if the hostname was '' or
not specified.
(Bug#16297)
The sql_notes and
sql_warnings system variables were not always
displayed correctly by SHOW VARIABLES (for
example, they were displayed as ON after
being set to OFF).
(Bug#16195)
The max_length metadata value for columns
created from CONCAT() could be
incorrect when the collation of an argument differed from the
collation of the CONCAT()
itself. In some contexts such as UNION, this
could lead to truncation of the column contents.
(Bug#15962)
The server no longer uses a signal handler for signal 0 because it could cause a crash on some platforms. (Bug#15869)
InnoDB does not support
SPATIAL indexes, but did not prevent creation
of such an index.
(Bug#15860)
Long multiple-row INSERT statements could
take a very long time for some multi-byte character sets.
(Bug#15811)
The system_time_zone and
version_* system variables could not be
accessed via SELECT
@@ syntax.
(Bug#15684, Bug#12792)var_name
EXPLAIN ... SELECT INTO caused the client to
hang.
(Bug#15463)
Nested natural joins worked executed correctly when executed as
a non-prepared statement could fail with an Unknown
column ' error when executed as a prepared statement, due
to a name resolution problem.
(Bug#15355)col_name' in 'field
list'
The MD5() and SHA()
functions treat their arguments as case-sensitive strings. But
when they are compared, their arguments were compared as
case-insensitive strings, which leads to two function calls with
different arguments (and thus different results) compared as
being identical. This can lead to a wrong decision made in the
range optimizer and thus to an incorrect result set.
(Bug#15351)
Invalid escape sequences in option files caused MySQL programs that read them to abort. (Bug#15328)
Re-executing a stored procedure with a complex stored procedure cursor query could lead to a server crash. (Bug#15217)
CREATE TABLE ... SELECT ... statements that
used a stored function explicitly or implicitly (through a view)
resulted in a Table not locked error.
(Bug#15137, Bug#12472)
An invalid comparison between keys with index prefixes over
multi-byte character fields could lead to incorrect result sets
if the selected query execution plan used a range scan by an
index prefix over a UTF8 character field.
This also caused incorrect results under similar circumstances
with many other character sets.
(Bug#14896)
A view with a non-existent account in the
DEFINER clause caused SHOW CREATE
VIEW to fail. Now SHOW CREATE VIEW
issues a warning instead.
(Bug#14875)
For BOOLEAN mode full-text searches on
non-indexed columns, NULL rows generated by a
LEFT JOIN caused incorrect query results.
(Bug#14708, Bug#25637)
SHOW CREATE TABLE did not display the
AUTO_INCREMENT column attribute if the SQL
mode was MYSQL323 or
MYSQL40. This also affected
mysqldump, which uses SHOW CREATE
TABLE to get table definitions.
(Bug#14515)
Some queries were slower in 5.0 than in 4.1 because some 4.1 cost-evaluation code had not been merged into 5.0. (Bug#14292)
The binary log lacked character set information for table names when dropping temporary tables. (Bug#14157)
The result from CONV() is a
string, but was not always treated the same way as a string when
converted to a real value for an arithmetic operation.
(Bug#13975)
RPM packages had spurious dependencies on Perl modules and other programs. (Bug#13634)
REPLACE statements caused activation of
UPDATE triggers, not
DELETE and INSERT
triggers.
(Bug#13479)
With settings of read_buffer_size >= 2G
and read_rnd_buffer_size >=2G,
LOAD DATA INFILE failed with no error message
or caused a server crash for files larger than 2GB.
(Bug#12982)
A B-TREE index on a MEMORY
table erroneously reported duplicate entry error for multiple
NULL values.
(Bug#12873)
Use of CONVERT_TZ() in a stored
function or trigger (or in a stored procedure called from a
stored function or trigger) caused an error.
(Bug#11081)
LOAD_FILE() returned an error if
the file did not exist, rather than NULL as
it should according to the manual.
(Bug#10418)
When myisamchk needed to rebuild a table,
AUTO_INCREMENT information was lost.
(Bug#10405)
For certain CREATE VIEW statements, the
server did not detect invalid subqueries within the
SELECT part.
(Bug#7549)
Within a trigger, SET used the SQL mode of
the invoking statement, not the mode in effect at trigger
creation time.
(Bug#6951)
An invalid GRANT statement for which
Ok was returned on a replication master
caused an error on the slave and replication to fail.
(Bug#6774)
Some queries that used ORDER BY and
LIMIT performed quickly in MySQL 3.23, but
slowly in MySQL 4.x/5.x due to an optimizer problem.
(Bug#4981)
The basedir and tmpdir
system variables could not be accessed via
@@ syntax.
(Bug#1039)var_name


User Comments
Add your own comment.