MySQL 5.0.24がリリースされました。


最も普及しているオープンソースデータベース管理システムであるMySQL 5.0.24がリリースされました。コミュニティエディションは、http://dev.mysql.com/downloads/とミラーサイトのダウンロード・ページから、ソースコード及び多くのプラットフォームのためのバイナリで現在利用可能です。




このバージョンでの個々のバグ修正に関するより詳細については、http://bugs.mysql.com/ で、バグデータベースを参照して下さい。



Bugs fixed:
   * Security fix: If a user has access to MyISAM table t, that
     user can create a MERGE table m that accesses t. However, if
     the user's privileges on t are subsequently revoked, the user
     can continue to access t by doing so through m. If this
     behavior is undesirable, you can start the server with the new
     --skip-merge option to disable the MERGE storage engine.
   * NDB Cluster: The repeated creating and dropping of a table
     would eventually lead to NDB Error 826, Too many tables and
     attributes ... Insufficient space.
   * With the auto_increment_increment system variable set larger
     than 1, if the next generate AUTO_INCREMENT value would be
     larger than the column's maximum value, the value would be
     clipped down to that maximum value and inserted, even if the
     resulting value would not be in the generated sequence. This
     could cause problems for master-master replication. Now the
     server clips the value down to the previous value in the
     sequence, which correctly produces a duplicate-key error if
     that value already exists in the column.
   * If a table on a slave server had a higher AUTO_INCREMENT
     counter than the corresponding master table (even though all
     rows of the two tables were identical), in some cases REPLACE
     or INSERT ... ON DUPLICATE KEY UPDATE would not replicate
     properly using statement-based logging. (Different values
     would be inserted on the master and slave.)
   * Under heavy load (executing more than 1024 simultaneous
     complex queries), a problem in the code that handles internal
     temporary tables could lead to writing beyond allocated space
     and memory corruption. Use of more than 1024 simultaneous
     cursors server wide also could lead to memory corruption.
     (This applies both to stored procedure and C API cursors.)
   * A race condition during slave server shutdown caused an assert
     failure. (Bug#20850:http://bugs.mysql.com/20850)
   * mysqldump produced a malformed dump file when dumping multiple
     databases that contained views.
   * SELECT @@INSERT_ID displayed a value unrelated to a preceding
     SET INSERT_ID. (It was returning LAST_INSERT_ID instead.)
   * Updating a column of a FEDERATED table to NULL sometimes
     failed. (Bug#16494:http://bugs.mysql.com/16494)
   * Performing INSERT ... SELECT ... JOIN ... USING without
     qualifying the column names caused ERROR 1052 "column 'x' in
     field list is ambiguous" even in cases where the column
     references were unambiguous.
   * Bug#10952:http://bugs.mysql.com/10952may cause inadvertent data
     loss. A fix for this bug had been contained in MySQL 5.0.23,
     but the approach used causes a loss of intended functionality.
     Because of this, that fix has been reverted in MySQL 5.0.24.
     As a consequence, the risk of inadvertent data loss still exists,
     see Bug#10952:http://bugs.mysql.com/10952
   * A SELECT that used a subquery in the FROM clause that did not
     select from a table failed when the subquery was used in a
     join. (Bug#21002:http://bugs.mysql.com/21002)
   * REPLACE ... SELECT for a view required the INSERT privilege
     for tables other than the table being modified.
   * Failure to account for a NULL table pointer on big-endian
     machines could cause a server crash during type conversion.
   * mysqldump sometimes did not select the correct database before
     trying to dump views from it, resulting in an empty result set
     that caused mysqldump to die with a segmentation fault.

Changes in release 5.0.23 (Not released)

MySQL 5.0.23 was never officially released.

Functionality added or changed:
   * NDB 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:http://bugs.mysql.com/14509)
   * NDB Cluster: The status variables Ndb_connected_host and
     Ndb_connected_port were renamed to Ndb_config_from_host and
     Ndb_config_from_port, respectively.
   * 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 5.6.2, "mysql_upgrade --- Check Tables
     for MySQL Upgrade."
   * Binary distributions that include SSL support now are built
     using yaSSL when possible.
   * 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:http://bugs.mysql.com/17208)
   * 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, "SSL
     Command Options." (Bug#19606:http://bugs.mysql.com/19606)
   * Added the log_queries_not_using_indexes system variable.
   * 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.
   * 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:http://bugs.mysql.com/18739)
   * SQL syntax for prepared statements now supports ANALYZE TABLE,
   * The bundled yaSSL library was upgraded to version 1.3.5. This
     improves handling of certain problems with SSL-related command
     options. (Bug#17737:http://bugs.mysql.com/17737)
   * Added the --set-charset option to mysqlbinlog to allow the
     character set to be specified for processing binary log files.
   * For a table with an AUTO_INCREMENT column, SHOW CREATE TABLE
     now shows the next AUTO_INCREMENT value to be generated.
   * It is now possible to use NEW.var_name values within triggers
     as INOUT parameters to stored procedures.
   * 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:http://bugs.mysql.com/20216)

Bugs fixed:
   * Re-executing a stored procedure with a complex stored
     procedure cursor query could lead to a server crash.
   * Views created from prepared statements inside of stored
     procedures were created with a definition that included both
   * mysqldump did not dump the table name correctly for some table
     identifiers that contained unusual characters such as `:'.
   * 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
     a SQL comment containing the view definition to the dump
     output. (Bug#17371:http://bugs.mysql.com/17371)
   * The WITH CHECK OPTION was not enforced when a REPLACE
     statement was executed against a view.
   * The use of MIN() and MAX() on columns with a partial index
     produced incorrect results in some queries.
   * Concatenating the results of multiple constant subselects
     produced incorrect results.
   * A "table not found" error could occur for statements that
     called a function defined in another database.
   * A buffer overwrite error in Instance Manager caused a crash.
   * Re-execution of a prepared multiple-table DELETE statement
     that involves a trigger or stored function can result in a
     server crash. (Bug#19634:http://bugs.mysql.com/19634)
   * On Windows, corrected a crash stemming from differences in
     Visual C runtime library routines from POSIX behavior
     regarding invalid file descriptors.
   * Multiple-table updates with FEDERATED tables could cause a
     server crash. (Bug#19773:http://bugs.mysql.com/19773)
   * On Windows, terminating mysqld with Control-C could result in
     a crash during shutdown.
   * On Windows, removal of binary log files would fail if the
     files were already open.
   * mysqldump produced garbled output for view definitions.
   * The omission of leading zeros in dates could lead to erroneous
     results when these were compared with the output of certain
     date and time functions.
   * An invalid comparison between keys in partial indexes over
     multi-byte character fields could lead to incorrect result
     sets if the selected query execution plan used a range scan by
     a partial index over a UTF8 character field. This also caused
     incorrect results under similar circumstances with many other
     character sets. (Bug#14896:http://bugs.mysql.com/14896)
   * NDB Cluster: Cluster system status variables were not updated.
   * NDB Cluster: The cluster's data nodes would fail while trying
     to load data when NoOfFrangmentLogFiles was equal to 1.
   * NDB 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:http://bugs.mysql.com/19202)
   * NDB Cluster: Restoring a backup made using ndb_restore failed
     when the backup had been taken from a cluster whose data
     memory was full. (Bug#19852:http://bugs.mysql.com/19852)
   * NDB Cluster: TEXT columns in Cluster tables having both an
     explicit primary key and a unique key were not correctly
     updated by REPLACE statements.
   * NDB Cluster: An internal formatting error caused some
     management client error messages to be unreadable.
   * NDB Cluster: Running management client commands while mgmd was
     in the process of disconnecting could cause the management
     server to fail. (Bug#19932:http://bugs.mysql.com/19932)
   * NDB Cluster (NDBAPI): Update operations on blobs were not
     checked for illegal operations.
     Note: Read locks with blob update operations are now upgraded
     from read committed to read shared.
   * NDB Cluster: The management client ALL STOP command shut down
     mgmd processes (as well as ndbd processes).
   * NDB Cluster: LOAD DATA LOCAL failed to ignore duplicate keys
     in Cluster tables. (Bug#19496:http://bugs.mysql.com/19496)
   * NDB 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.
   * NDB Cluster: The mgm client command ALL CLUSTERLOG
     STATISTICS=15; had no effect.
   * NDB Cluster: TRUNCATE TABLE failed to reset the AUTO_INCREMENT
     counter. (Bug#18864:http://bugs.mysql.com/18864)
   * NDB Cluster: SELECT ... FOR UPDATE failed to lock the selected
     rows. (Bug#18184:http://bugs.mysql.com/18184)
   * NDB 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:http://bugs.mysql.com/20185)
   * NDB Cluster: Renaming a table in such a way as to move it to
     to a different database failed to move the table's indexes.
   * NDB 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.
   * NDB Cluster: Running ALL START in the NDB management client or
     restarting multiple nodes simultaneously could under some
     circumstances cause the cluster to crash.
   * 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. Note: This issue affected the 5.0 series of MySQL
     Cluster releases only.
   * NDB Cluster (NDBAPI): On big-endian platforms,
     NdbOperation::write_attr() did not update 32-bit fields
     correctly. (Bug#19537:http://bugs.mysql.com/19537)
   * NDB Cluster: Some queries having a WHERE clause of the form
     c1=val1 OR c2 LIKE 'val2' were not evaluated correctly. (Bug #
   * NDB 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.
   * NDB Cluster: Repeated use of the SHOW and ALL STATUS commands
     in the ndb_mgm client could cause the mgmd process to crash.
   * NDB Cluster: An issue with ndb_mgmd prevented more than 27
     mysqld processes from connecting to a single cluster at one
     time. (Bug#17150:http://bugs.mysql.com/17150)
   * NDB Cluster: Data node failures could cause excessive CPU
     usage by ndb_mgmd. (Bug#13987:http://bugs.mysql.com/13987)
   * NDB Cluster: TRUNCATE failed on tables having BLOB or TEXT
     columns with the error Lock wait timeout exceeded.
   * NDB Cluster: Stopping multiple nodes could cause node failure
     handling not to be completed.
   * NDB Cluster: ndbd could sometimes fail to start with the error
     Node failure handling not completed following a graceful
     restart. (Bug#18550:http://bugs.mysql.com/18550)
   * NDB Cluster: Backups could fail for large clusters with many
     tables, where the number of tables approached MaxNoOfTables.
   * On Windows, temporary tables containing `:' in the name could
     not be created. (Bug#20616:http://bugs.mysql.com/20616)
   * The --core-file-size option for mysqld_safe was effective only
     for root. (Bug#17353:http://bugs.mysql.com/17353)
   * 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:http://bugs.mysql.com/4981)
   * mysql_upgrade was missing from binary MySQL distributions.
   * 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.
   * A number of dependency issues in the RPM bench and test
     packages caused installation of these packages to fail.
   * Nested natural joins worked executed correctly when executed
     as a non-prepared statement could fail with an Unknown column
     'col_name' in 'field list' error when executed as a prepared
     statement, due to a name resolution problem.
   * GROUP BY on an expression that contained a cast to DECIMAL
     produced an incorrect result.
   * 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:http://bugs.mysql.com/15962)
   * 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:http://bugs.mysql.com/15351)
   * For BOOLEAN mode full-text searches on non-indexed columns,
     NULL rows generated by a LEFT JOIN caused incorrect query
     results. (Bug#14708:http://bugs.mysql.com/14708)
   * BIT columns in a table could cause joins that use the table to
     fail. (Bug#18895:http://bugs.mysql.com/18895)
   * A UNION over more than 128 SELECT statements that use an
     aggregate function failed.
   * InnoDB unlocked its data directory before committing a
     transaction, potentially resulting in non-recoverable tables
     if a server crash occurred before the commit.
   * Multiple-table DELETE statements containing a subquery that
     selected from one of the tables being modified caused a server
     crash. (Bug#19225:http://bugs.mysql.com/19225)
   * 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:http://bugs.mysql.com/12982)
   * REPLACE statements caused activation of UPDATE triggers, not
     DELETE and INSERT triggers.
   * 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.
   * 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.
   * On 64-bit Windows systems, REGEXP for regular expressions with
     exactly 31 characters did not work.
   * For mysqld, Valgrind revealed problems that were corrected: A
     dangling stack pointer being overwritten
     (Bug#20769:http://bugs.mysql.com/20769); possible
     uninitialized data in a string comparison
     (Bug#20783:http://bugs.mysql.com/20783); memory corruption in
     replication slaves when switching databases
     (Bug#19022:http://bugs.mysql.com/19022); syscall write
     parameter pointing to uninitialized byte
   * For ndb_mgmd, Valgrind revealed problems that were corrected:
     A memory leak (Bug#19318:http://bugs.mysql.com/19318); a
     dependency on an uninitialized variable
   * 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:http://bugs.mysql.com/18036)
   * SSL connections using yaSSL on OpenBSD could fail.
   * On Windows, multiple clients simultaneously attempting to
     perform ALTER TABLE operations on an InnoDB table could
     deadlock. (Bug#17264:http://bugs.mysql.com/17264)
   * The fill_help_tables.sql file did not load properly if the
     ANSI_QUOTES SQL mode was enabled.
   * 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:http://bugs.mysql.com/20551)
   * 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).
   * MERGE tables did not work reliably with BIT columns.
   * For a reference to a non-existent index in FORCE INDEX, the
     error message referred to a column, not an index.
   * 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.
   * CHECK TABLE temporarily cleared the AUTO_INCREMENT value.
     Because it runs with a read lock, other readers could perform
     concurrent inserts, and if so, they could get an incorrect
     AUTO_INCREMENT value. CHECK TABLE no longer modifies the
     AUTO_INCREMENT value. (Bug#19604:http://bugs.mysql.com/19604)
   * If there is a global read lock, CREATE DATABASE, RENAME
     DATABASE, and DROP DATABASE could deadlock.
   * On Linux, libmysqlclient when compiled with yaSSL using the
     icc compiler had a spurious dependency on C++ libraries.
   * Using CONCAT(@user_var, col_name), where col_name is a column
     in an INFORMATION_SCHEMA table, could cause erroneous
     duplication of data in the query result.
   * Results from INFORMATION_SCHEMA.SCHEMATA could contain
     uppercase information when lower_case_table_names was not 0.
   * Grant table modifications sometimes did not refresh the
     in-memory tables if the hostname was '' or not specified.
   * Invalid escape sequences in option files caused MySQL programs
     that read them to abort.
   * InnoDB did not increment the handler_read_prev counter.
   * Race conditions on certain platforms could cause the Instance
     Manager to fail to initialize.
   * 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.
   * 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.
   * The binary log lacked character set information for table name
     when dropping temporary tables.
   * A B-TREE index on a MEMORY table erroneously reported
     duplicate entry error for multiple NULL values.
   * Race conditions on certain platforms could cause the Instance
     Manager to try to restart the same instance multiple times.
   * A CREATE TABLE statement that created a table from a
     materialized view did not inherit default values from the
     underlying table. (Bug#19089:http://bugs.mysql.com/19089)
   * 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.
   * 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.
   * Multiple calls to a stored procedure that selects from
     INFORMATION_SCHEMA could cause a server crash.
   * Premature optimization of nested subqueries in the FROM clause
     that refer to aggregate functions could lead to incorrect
     results. (Bug#19077:http://bugs.mysql.com/19077)
   * 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 view_name statements.
   * Several aspects of view privileges were being checked
     incorrectly. (Bug#18681:http://bugs.mysql.com/18681,
   * 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#20048:http://bugs.mysql.com/20048)
   * A bug in NTPL threads on Linux could result in a deadlock with
     FLUSH TABLES WITH READ LOCK under some conditions.
   * 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.
   * Subqueries that produced a BIGINT UNSIGNED value were being
     treated as returning a signed value.
   * The patch for Bug#17164:http://bugs.mysql.com/17164
     introduced the problem that some outer joins were incorrectly
     converted to inner joins.
   * BLOB or TEXT arguments to or values returned from stored
     functions were not copied properly if too long and could
     become garbled. (Bug#18587:http://bugs.mysql.com/18587)
   * Selecting data from a MEMORY table with a VARCHAR column and a
     HASH index over it returned only the first row matched.
   * CREATE TABLE ... SELECT did not always produce the proper
     column default value in TRADITIONAL SQL mode.
   * Privilege checking on the contents of the
     INFORMATION_SCHEMA.VIEWS table was insufficiently restrictive.
   * 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:http://bugs.mysql.com/13975)
   * CREATE TABLE ... SELECT ... statements that used a stored
     function explicitly or implicitly (through a view) resulted in
     a Table not locked error.
   * Within a trigger, SET used the SQL mode of the invoking
     statement, not the mode in effect at trigger creation time.
   * The server no longer uses a signal handler for signal 0
     because it could cause a crash on some platforms.
   * Revised memory allocation for local objects within stored
     functions and triggers to avoid memory leak for repeated
     function or trigger invocation.
   * EXPLAIN ... SELECT INTO caused the client to hang.
   * 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.)
   * The basedir and tmpdir system variables could not be accessed
     via @@var_name syntax. (Bug#1039:http://bugs.mysql.com/1039)
   * For certain CREATE VIEW statements, the server did not detect
     invalid subqueries within the SELECT part.
   * The range operator failed and caused a server crash for
     clauses of the form tbl_name.unsigned_keypart NOT IN
     (negative_const, ...).
   * Returning the value of a system variable from a stored
     function caused a server crash.
   * Updates to a MEMORY table caused the size of BTREE indexes for
     the table to increase.
   * REPAIR TABLE did not restore the length for packed keys in
     tables created under MySQL 4.x.
   * Selecting from a view that used GROUP BY on a non-constant
     temporal interval (such as DATE(col) + INTERVAL
     TIME_TO_SEC(col) SECOND could cause a server crash.
   * An outer join of two views that was written using { OJ ... }
     syntax could cause a server crash.
   * LOAD_FILE() returned an error if the file did not exist,
     rather than NULL as it should according to the manual.
   * For certain CREATE TABLE ... SELECT statements, the selected
     values were truncated when inserted into the new table.
   * Use of uninitialized user variables in a subquery in the FROM
     clause results in bad entries in the binary log.
   * In the INFORMATION_SCHEMA.COLUMNS table, the values for the
     were incorrect for multi-byte character sets.
   * 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:http://bugs.mysql.com/18177)
   * A range access optimizer heuristic was invalid, causing some
     queries to be much slower in MySQL 5.0 than in 4.0.
   * IS_USED_LOCK() could return an incorrect connection
     identifier. (Bug#16501:http://bugs.mysql.com/16501)
   * mysql displayed NULL for strings that are empty or contain
     only spaces. (Bug#19564:http://bugs.mysql.com/19564)
   * Concurrent reading and writing of privilege structures could
     crash the server. (Bug#16372:http://bugs.mysql.com/16372)
   * 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. (CVE-2006-0903
   * mysql-test-run.pl started NDB even for test cases that didn't
     need it. (Bug#19083:http://bugs.mysql.com/19083)
   * SELECT DISTINCT queries sometimes returned only the last row.
   * 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:http://bugs.mysql.com/11081)
   * 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.
   * Index prefixes for utf8 VARCHAR columns did not work for
     UPDATE statements. (Bug#19080:http://bugs.mysql.com/19080)
   * InnoDB does not support SPATIAL indexes, but did not prevent
     creation of such an index.
   * The configuration information for building the embedded server
     on Windows was missing a file.
   * The parser leaked memory when its stack needed to be extended.
   * When myisamchk needed to rebuild a table, AUTO_INCREMENT
     information was lost. (Bug#10405:http://bugs.mysql.com/10405)
   * 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:http://bugs.mysql.com/18607)
   * The binary log would create an incorrect DROP query when
     creating temporary tables during replication.
   * 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.
   * In mysqltest, --sleep=0 had no effect. Now it correctly causes
     sleep commands in test case files to sleep for 0 seconds.
   * Attempting to set the default value of an ENUM or SET column
     to NULL caused a server crash.
   * 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).
   * The sql_big_selects system variable was not displayed by SHOW
     VARIABLES. (Bug#17849:http://bugs.mysql.com/17849)
   * The system_time_zone and version_* system variables could not
     be accessed via SELECT @@var_name syntax.
   * Flushing the compression buffer (via FLUSH TABLE) no longer
     increases the size of an unmodified ARCHIVE table.
   * RPM packages had spurious dependencies on Perl modules and
     other programs. (Bug#13634:http://bugs.mysql.com/13634)
   * 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:http://bugs.mysql.com/14515)