Dear MySQL users,

MySQL Community Server 5.0.41, a new version of the popular Open Source
Database Management System, has been released. The release is now
available in source and binary form from our download pages at

   http://dev.mysql.com/downloads/

and mirror sites.

Note that not all mirror sites may be up to date at this point in time,
so if you can't find this version on some mirror, please try again later
or choose another download site.

We welcome and appreciate your feedback, bug reports, bug fixes,
patches etc.:

   http://forge.mysql.com/wiki/Contributing

The following section lists the changes from version to version in the
MySQL source code as compared to the last released version of MySQL
Community Server, the MySQL Community Server 5.0.37 release.
It can also be viewed online at

   http://dev.mysql.com/doc/refman/5.0/en/releasenotes-cs-5-0-41.html

Functionality added or changed:
 * If you use SSL for a client connection, you can tell the
   client not to authenticate the server certificate by
   specifying neither --ssl-ca nor --ssl-capath. The server
   still verifies the client according to any applicable
   requirements established via GRANT statements for the
   client, and it still uses any --ssl-ca/--ssl-capath
   values that were passed to server at startup time.
   (Bug#25309: http://bugs.mysql.com/25309)
 * Prefix lengths for columns in SPATIAL indexes are no
   longer displayed in SHOW CREATE TABLE output. mysqldump
   uses that statement, so if a table with SPATIAL indexes
   containing prefixed columns is dumped and reloaded, the
   index is created with no prefixes. (The full column width
   of each column is indexed.)
   (Bug#26794: http://bugs.mysql.com/26794)
 * The output of mysql --xml and mysqldump --xml now
   includes a valid XML namespace.
   (Bug#25946: http://bugs.mysql.com/25946)
 * The mysql_create_system_tables script was removed because
   mysql_install_db no longer uses it in MySQL 5.0.
 * The syntax for index hints has been extended to enable
   explicit specification that the hint applies only to join
   processing. See Section 13.2.7.2, "Index Hint Syntax."
   (Bug#21174: http://bugs.mysql.com/21174)
 * Binary distributions for some platforms did not include
   shared libraries; now shared libraries are shipped for
   all platforms except AIX 5.2 64-bit.
   (Bug#13450: http://bugs.mysql.com/13450,
   Bug#16520: http://bugs.mysql.com/16520,
   Bug#26767: http://bugs.mysql.com/26767)
 * NDB Cluster: It is now possible to restore selected
   databases or tables using ndb_restore.
   (Bug#26899: http://bugs.mysql.com/26899)
 * NDB Cluster: Several options have been added for use with
   ndb_restore --print_data to facilitate the creation of
   data dump files. (Bug#26900: http://bugs.mysql.com/26900)
 * To satisfy different user requirements, we provide
   several servers. mysqld is an optimized server that is a
   smaller, faster binary. Each package now also includes
   mysqld-debug, which is compiled with debugging support
   but is otherwise configured identically to the non-debug
   server.
 * Added the --secure-file-priv option for
   mysql-test-run.pl, which limits the effect of the
   load_file command for mysqltest and for the LOAD DATA and
   SELECT ... INTO OUTFILE statements to work with files in
   a given directory.
   (Bug#18628: http://bugs.mysql.com/18628)
 * Added the hostname system variable, which the server sets
   at startup to the server hostname.
 * The server now includes a timestamp in error messages
   that are logged as a result of unhandled signals (such as
   mysqld got signal 11 messages).
   (Bug#24878: http://bugs.mysql.com/24878)

Bugs fixed:
 * The patches for Bug#19370: http://bugs.mysql.com/19370
   and Bug#21789: http://bugs.mysql.com/21789 were reverted.
 * NDB Cluster: NDB tables having MEDIUMINT AUTO_INCREMENT
   columns were not restored correctly by ndb_restore,
   causing spurious duplicate key errors. This issue did not
   affect TINYINT, INT, or BIGINT columns with
   AUTO_INCREMENT. (Bug#27775: http://bugs.mysql.com/27775)
 * NDB Cluster: NDB tables with indexes whose names
   contained space characters were not restored correctly by
   ndb_restore (the index names were truncated).
   (Bug#27758: http://bugs.mysql.com/27758)
 * NDB Cluster: Some queries that updated multiple tables
   were not backed up correctly.
   (Bug#27748: http://bugs.mysql.com/27748)
 * NDB Cluster: Joins on multiple tables containing BLOB
   columns could cause data nodes run out of memory, and to
   crash with the error NdbObjectIdMap::expand unable to
   expand. (Bug#26176: http://bugs.mysql.com/26176)
 * NDB Cluster (APIs): Using NdbBlob::writeData() to write
   data in the middle of an existing blob value (that is,
   updating the value) could overwrite some data past the
   end of the data to be changed.
   (Bug#27018: http://bugs.mysql.com/27018)
 * NDB Cluster: Under certain rare circumstances, DROP TABLE
   or TRUNCATE of an NDB table could cause a node failure or
   forced cluster shutdown.
   (Bug#27581: http://bugs.mysql.com/27581)
 * NDB Cluster: Memory usage of a mysqld process grew even
   while idle. (Bug#27560: http://bugs.mysql.com/27560)
 * NDB Cluster: In some cases, AFTER UPDATE and AFTER DELETE
   triggers on NDB tables that referenced subject table did
   not see the results of operation which caused invocation
   of the trigger, but rather saw the row as it was prior to
   the update or delete operation.
   This was most noticeable when an update operation used a
   subquery to obtain the rows to be updated. An example
   would be UPDATE tbl1 SET col2 = val1 WHERE tbl1.col1 IN
   (SELECT col3 FROM tbl2 WHERE c4 = val2) where there was
   an AFTER UPDATE trigger on table tbl1. In such cases, the
   trigger would fail to execute.
   The problem occurred because the actual update or delete
   operations were deferred to be able to perform them later
   as one batch. The fix for this bug solves the problem by
   disabling this optimization for a given update or delete
   if the table has an AFTER trigger defined for this
   operation. (Bug#26242: http://bugs.mysql.com/26242)
 * NDB Cluster: Condition pushdown did not work with
   prepared statements.
   (Bug#26225: http://bugs.mysql.com/26225)
 * NDB Cluster: When trying to create tables on an SQL node
   not connected to the cluster, a misleading error message
   Table 'tbl_name' already exists was generated. The error
   now generated is Could not connect to storage engine.
   (Bug#18676: http://bugs.mysql.com/18676)
 * NDB Cluster: Error messages displayed when running in
   single user mode were inconsistent.
   (Bug#27021: http://bugs.mysql.com/27021)
 * NDB Cluster: On Solaris, the value of an NDB table column
   declared as BIT(33) was always displayed as 0.
   (Bug#26986: http://bugs.mysql.com/26986)
 * NDB Cluster: The output from ndb_restore --print_data was
   incorrect for a backup made of a database containing
   tables with TINYINT or SMALLINT columns.
   (Bug#26740: http://bugs.mysql.com/26740)
 * NDB Cluster: After entering single user mode it was not
   possible to alter non-NDB tables on any SQL nodes other
   than the one having sole access to the cluster.
   (Bug#25275: http://bugs.mysql.com/25275)
 * NDB Cluster: The failure of a data node while restarting
   could cause other data nodes to hang or crash.
   (Bug#27003: http://bugs.mysql.com/27003)
 * NDB Cluster: The management client command node_id STATUS
   displayed the message Node node_id: not connected when
   node_id was not the node ID of a data node.
   (Bug#21715: http://bugs.mysql.com/21715)
   Note:
   The ALL STATUS command in the cluster management client
   still displays status information for data nodes only.
   This is by design. See Section 15.7.2, "Commands in the
   MySQL Cluster Management Client," for more information.
 * NDB Cluster: It was not possible to set
   LockPagesInMainMemory equal to 0.
   (Bug#27291: http://bugs.mysql.com/27291)
 * NDB Cluster: A race condition could sometimes occur if
   the node acting as master failed while node IDs were
   still being allocated during startup.
   (Bug#27286: http://bugs.mysql.com/27286)
 * NDB Cluster: When a data node was taking over as the
   master node, a race condition could sometimes occur as
   the node was assuming responsibility for handling of
   global checkpoints.
   (Bug#27283: http://bugs.mysql.com/27283)
 * NDB Cluster: mysqld processes would sometimes crash under
   high load. (Bug#26825: http://bugs.mysql.com/26825)
 * NDB Cluster: Some values of MaxNoOfTables caused the
   error Job buffer congestion to occur.
   (Bug#19378: http://bugs.mysql.com/19378)
 * Some equi-joins containing a WHERE clause that included a
   NOT IN subquery caused a server crash.
   (Bug#27870: http://bugs.mysql.com/27870)
 * Windows binaries contained no debug symbol file. Now .map
   and .pdb files are included in 32-bit builds for
   mysqld-nt.exe, mysqld-debug.exe, and mysqlmanager.exe.
   (Bug#26893: http://bugs.mysql.com/26893)
 * The test for the MYSQL_OPT_SSL_VERIFY_SERVER_CERT option
   for mysql_options() was performed incorrectly. Also
   changed as a result of this bugfix: The arg option for
   the mysql_options() C API function was changed from char
   * to void *. (Bug#24121: http://bugs.mysql.com/24121)
 * The range optimizer could consume a combinatorial amount
   of memory for certain classes of WHERE clauses.
   (Bug#26624: http://bugs.mysql.com/26624)
 * Conversion of DATETIME values in numeric contexts
   sometimes did not produce a double
   (YYYYMMDDHHMMSS.uuuuuu) value.
   (Bug#16546: http://bugs.mysql.com/16546)
 * Passing nested row expressions with different structures
   to an IN predicate caused a server crash.
   (Bug#27484: http://bugs.mysql.com/27484)
 * SELECT DISTINCT could return incorrect results if the
   select list contained duplicated columns.
   (Bug#27659: http://bugs.mysql.com/27659)
 * A subquery could get incorrect values for references to
   outer query columns when it contained aggregate functions
   that were aggregated in outer context.
   (Bug#27321: http://bugs.mysql.com/27321)
 * In some cases, the optimizer preferred a range or full
   index scan access method over lookup access methods when
   the latter were much cheaper.
   (Bug#19372: http://bugs.mysql.com/19372)
 * Duplicates were not properly identified among
   (potentially) long strings used as arguments for
   GROUP_CONCAT(DISTINCT).
   (Bug#26815: http://bugs.mysql.com/26815)
 * For InnoDB, fixed consistent-read behavior of the first
   read statement, if the read was served from the query
   cache, for the READ COMMITTED isolation level.
   (Bug#21409: http://bugs.mysql.com/21409)
 * The decimal.h header file was incorrectly omitted from
   binary distributions.
   (Bug#27456: http://bugs.mysql.com/27456)
 * Duplicate members in SET definitions were not detected.
   Now they result in a warning; if strict SQL mode is
   enabled, an error occurs instead.
   (Bug#27069: http://bugs.mysql.com/27069)
 * For INSERT INTO ... SELECT where index searches used
   column prefixes, insert errors could occur when key value
   type conversion was done.
   (Bug#26207: http://bugs.mysql.com/26207)
 * For SHOW ENGINE INNODB STATUS, the LATEST DEADLOCK
   INFORMATION was not always cleared properly.
   (Bug#25494: http://bugs.mysql.com/25494)
 * mysqldump could crash or exhibit incorrect behavior when
   some options were given very long values, such as
   --fields-terminated-by="some very long string". The code
   has been cleaned up to remove a number of fixed-sized
   buffers and to be more careful about error conditions in
   memory allocation.
   (Bug#26346: http://bugs.mysql.com/26346)
 * Setting a column to NOT NULL with an ON DELETE SET NULL
   clause foreign key crashes the server.
   (Bug#25927: http://bugs.mysql.com/25927)
 * The values displayed for the Innodb_row_lock_time,
   Innodb_row_lock_time_avg, and Innodb_row_lock_time_max
   status variables were incorrect.
   (Bug#23666: http://bugs.mysql.com/23666)
 * COUNT(decimal_expr) sometimes generated a spurious
   truncation warning.
   (Bug#21976: http://bugs.mysql.com/21976)
 * With NO_AUTO_VALUE_ON_ZERO SQL mode enabled, LOAD DATA
   operations could assign incorrect AUTO_INCREMENT values.
   (Bug#27586: http://bugs.mysql.com/27586)
 * Incorrect results could be returned for some queries that
   contained a select list expression with IN or BETWEEN
   together with an ORDER BY or GROUP BY on the same
   expression using NOT IN or NOT BETWEEN.
   (Bug#27532: http://bugs.mysql.com/27532)
 * Queries containing subqueries with COUNT(*) aggregated in
   an outer context returned incorrect results. This
   happened only if the subquery did not contain any
   references to outer columns.
   (Bug#27257: http://bugs.mysql.com/27257)
 * Use of an aggregate function from an outer context as an
   argument to GROUP_CONCAT() caused a server crash.
   (Bug#27229: http://bugs.mysql.com/27229)
 * REPAIR TABLE ... USE_FRM with an ARCHIVE table deleted
   all records from the table.
   (Bug#26138: http://bugs.mysql.com/26138)
 * On Windows, debug builds of mysqld could fail with heap
   assertions. (Bug#25765: http://bugs.mysql.com/25765)
 * On Windows, debug builds of mysqlbinlog could fail with a
   memory error. (Bug#23736: http://bugs.mysql.com/23736)
 * String truncation upon insertion into an integer or year
   column did not generate a warning (or an error in strict
   mode). (Bug#26359: http://bugs.mysql.com/26359,
   Bug#27176: http://bugs.mysql.com/27176)
 * In out-of-memory conditions, the server might crash or
   otherwise not report an error to the Windows event log.
   (Bug#27490: http://bugs.mysql.com/27490)
 * The temporary file-creation code was cleaned up on
   Windows to improve server stability.
   (Bug#26233: http://bugs.mysql.com/26233)
 * Out-of-memory errors for slave I/O threads were not
   reported. Now they are written to the error log.
   (Bug#26844: http://bugs.mysql.com/26844)
 * mysqldump crashed for MERGE tables if the
   --complete-insert (-c) option was given.
   (Bug#25993: http://bugs.mysql.com/25993)
 * In certain situations, MATCH ... AGAINST returned false
   hits for NULL values produced by LEFT JOIN when no
   full-text index was available.
   (Bug#25729: http://bugs.mysql.com/25729)
 * OPTIMIZE TABLE might fail on Windows when it attempts to
   rename a temporary file to the original name if the
   original file had been opened, resulting in loss of the
   .MYD file. (Bug#25521: http://bugs.mysql.com/25521)
 * GRANT statements were not replicated if the server was
   started with the --replicate-ignore-table or
   --replicate-wild-ignore-table option.
   (Bug#25482: http://bugs.mysql.com/25482)
 * A problem in handling of aggregate functions in
   subqueries caused predicates containing aggregate
   functions to be ignored during query execution.
   (Bug#24484: http://bugs.mysql.com/24484)
 * Improved out-of-memory detection when sending logs from a
   master server to slaves, and log a message when
   allocation fails.
   (Bug#26837: http://bugs.mysql.com/26837)
 * MBROverlaps() returned incorrect values in some cases.
   (Bug#24563: http://bugs.mysql.com/24563)
 * SHOW CREATE VIEW qualified references to stored functions
   in the view definition with the function's database name,
   even when the database was the default database. This
   affected mysqldump (which uses SHOW CREATE VIEW to dump
   views) because the resulting dump file could not be used
   to reload the database into a different database. SHOW
   CREATE VIEW now suppresses the database name for
   references to functions in the default database.
   (Bug#23491: http://bugs.mysql.com/23491)
 * With innodb_file_per_table enabled, attempting to rename
   an InnoDB table to a non-existent database caused the
   server to exit. (Bug#27381: http://bugs.mysql.com/27381)
 * mysql_install_db could terminate with an error after
   failing to determine that a system table already existed.
   (Bug#27022: http://bugs.mysql.com/27022)
 * For InnoDB tables having a clustered index that began
   with a CHAR or VARCHAR column, deleting a record and then
   inserting another before the deleted record was purged
   could result in table corruption.
   (Bug#26835: http://bugs.mysql.com/26835)
 * Selecting the result of AVG() within a UNION could
   produce incorrect values.
   (Bug#24791: http://bugs.mysql.com/24791)
 * An INTO OUTFILE clause is allowed only for the final
   SELECT of a UNION, but this restriction was not being
   enforced correctly.
   (Bug#23345: http://bugs.mysql.com/23345)
 * Duplicate entries were not assessed correctly in a MEMORY
   table with a BTREE primary key on a utf8 ENUM column.
   (Bug#24985: http://bugs.mysql.com/24985)
 * For MyISAM tables, COUNT(*) could return an incorrect
   value if the WHERE clause compared an indexed TEXT column
   to the empty string (''). This happened if the column
   contained empty strings and also strings starting with
   control characters such as tab or newline.
   (Bug#26231: http://bugs.mysql.com/26231)
 * For DELETE FROM tbl_name ORDER BY col_name (with no WHERE
   or LIMIT clause), the server did not check whether
   col_name was a valid column in the table.
   (Bug#26186: http://bugs.mysql.com/26186)
 * ALTER VIEW requires the CREATE VIEW and DROP privileges
   for the view. However, if the view was created by another
   user, the server erroneously required the SUPER
   privilege. (Bug#26813: http://bugs.mysql.com/26813)
 * In a view, a column that was defined using a GEOMETRY
   function was treated as having the LONGBLOB data type
   rather than the GEOMETRY type.
   (Bug#27300: http://bugs.mysql.com/27300)
 * With the NO_AUTO_VALUE_ON_ZERO SQL mode enabled,
   LAST_INSERT_ID() could return 0 after INSERT ... ON
   DUPLICATE KEY UPDATE. Additionally, the next rows
   inserted (by the same INSERT, or the following INSERT
   with or without ON DUPLICATE KEY UPDATE), would insert 0
   for the auto-generated value if the value for the
   AUTO_INCREMENT column was NULL or missing.
   (Bug#23233: http://bugs.mysql.com/23233)
 * For a stored procedure containing a SELECT statement that
   used a complicated join with an ON expression, the
   expression could be ignored during re-execution of the
   procedure, yielding an incorrect result.
   (Bug#20492: http://bugs.mysql.com/20492)
 * When RAND() was called multiple times inside a stored
   procedure, the server did not write the correct random
   seed values to the binary log, resulting in incorrect
   replication. (Bug#25543: http://bugs.mysql.com/25543)
 * SOUNDEX() returned an invalid string for international
   characters in multi-byte character sets.
   (Bug#22638: http://bugs.mysql.com/22638)
 * Row equalities in WHERE clauses could cause memory
   corruption. (Bug#27154: http://bugs.mysql.com/27154)
 * GROUP BY on a ucs2 column caused a server crash when
   there was at least one empty string in the column.
   (Bug#27079: http://bugs.mysql.com/27079)
 * Evaluation of an IN() predicate containing a
   decimal-valued argument caused a server crash.
   (Bug#27362: http://bugs.mysql.com/27362)
 * Storing NULL values in spatial fields caused excessive
   memory allocation and crashes on some systems.
   (Bug#27164: http://bugs.mysql.com/27164)
 * mysql_stmt_fetch() did an invalid memory deallocation
   when used with the embedded server.
   (Bug#25492: http://bugs.mysql.com/25492)
 * In a MEMORY table, using a BTREE index to scan for
   updatable rows could lead to an infinite loop.
   (Bug#26996: http://bugs.mysql.com/26996)
 * The range optimizer could cause the server to run out of
   memory. (Bug#26625: http://bugs.mysql.com/26625)
 * The parser accepted illegal code in SQL exception
   handlers, leading to a crash at runtime when executing
   the code. (Bug#26503: http://bugs.mysql.com/26503)
 * Difficult repair or optimization operations could cause
   an assertion failure, resulting in a server crash.
   (Bug#25289: http://bugs.mysql.com/25289)
 * Increasing the width of a DECIMAL column could cause
   column values to be changed.
   (Bug#24558: http://bugs.mysql.com/24558)
 * Replication between master and slave would infinitely
   retry binary log transmission where the
   max_allowed_packet on the master was larger than that on
   the slave if the size of the transfer was between these
   two values. (Bug#23775: http://bugs.mysql.com/23775)
 * Invalid optimization of pushdown conditions for queries
   where an outer join was guaranteed to read only one row
   from the outer table led to results with too few rows.
   (Bug#26963: http://bugs.mysql.com/26963)
 * For INSERT ... ON DUPLICATE KEY UPDATE statements on
   tables containing AUTO_INCREMENT columns,
   LAST_INSERT_ID() was reset to 0 if no rows were
   successfully inserted or changed. "Not changed" includes
   the case where a row was updated to its current values,
   but in that case, LAST_INSERT_ID() should not be reset to
   0. Now LAST_INSERT_ID() is reset to 0 only if no rows
   were successfully inserted or touched, whether or not
   touched rows were changed.
   (Bug#27033: http://bugs.mysql.com/27033)
   This bug was introduced by the fix for
   Bug#19978: http://bugs.mysql.com/19978.
 * For an INSERT statement that should fail due to a column
   with no default value not being assigned a value, the
   statement succeeded with no error if the column was
   assigned a value in an ON DUPLICATE KEY UPDATE clause,
   even if that clause was not used.
   (Bug#26261: http://bugs.mysql.com/26261)
 * A result set column formed by concatention of string
   literals was incomplete when the column was produced by a
   subquery in the FROM clause.
   (Bug#26738: http://bugs.mysql.com/26738)
 * When using the result of SEC_TO_TIME() for time value
   greater than 24 hours in an ORDER BY clause, either
   directly or through a column alias, the rows were sorted
   incorrectly as strings.
   (Bug#26672: http://bugs.mysql.com/26672)
 * If the server was started with --skip-grant-tables,
   Selecting from INFORMATION_SCHEMA tables causes a server
   crash. (Bug#26285: http://bugs.mysql.com/26285)
 * Incompatible change: INSERT DELAYED statements are not
   supported for MERGE tables, but the MERGE storage engine
   was not rejecting such statements, resulting in table
   corruption. Applications previously using INSERT DELAYED
   into MERGE table will break when upgrading to versions
   with this fix. To avoid the problem, remove DELAYED from
   such statements. (Bug#26464: http://bugs.mysql.com/26464)
 * NDB Cluster: An invalid pointer was returned following a
   FSCLOSECONF signal when accessing the REDO logs during a
   node restart or system restart.
   (Bug#26515: http://bugs.mysql.com/26515)
 * NDB Cluster: An inadvertent use of unaligned data caused
   ndb_restore to fail on some 64-bit platforms, including
   Sparc and Itanium-2.
   (Bug#26739: http://bugs.mysql.com/26739)
 * NDB Cluster: An infinite loop in an internal logging
   function could cause trace logs to fill up with Unknown
   Signal type error messages and thus grow to unreasonable
   sizes. (Bug#26720: http://bugs.mysql.com/26720)
 * NDB Cluster: The failure of a data node when restarting
   it with --initial could lead to failures of subsequent
   data node restarts.
   (Bug#26481: http://bugs.mysql.com/26481)
 * NDB Cluster: Takeover for local checkpointing due to
   multiple failures of master nodes was sometimes incorrect
   handled. (Bug#26457: http://bugs.mysql.com/26457)
 * NDB Cluster: The LockPagesInMemory parameter was not read
   until after distributed communication had already started
   between cluster nodes. When the value of this parameter
   was 1, this could sometimes result in data node failure
   due to missed heartbeats.
   (Bug#26454: http://bugs.mysql.com/26454)
 * NDB Cluster: Under some circumstances, following the
   restart of a management, all cluster data nodes would
   connect to it normally, but some of them subsequently
   failed to log any events to the management node.
   (Bug#26293: http://bugs.mysql.com/26293)
 * NDB Cluster: An error was produced when SHOW TABLE STATUS
   was used on an NDB table that had no AUTO_INCREMENT
   column. (Bug#21033: http://bugs.mysql.com/21033)
 * SELECT ... INTO OUTFILE with a long FIELDS ENCLOSED BY
   value could crash the server.
   (Bug#27231: http://bugs.mysql.com/27231)
 * DOUBLE values such as 20070202191048.000000 were being
   treated as illegal arguments by WEEK().
   (Bug#23616: http://bugs.mysql.com/23616)
 * AFTER UPDATE triggers were not activated by the update
   part of INSERT ... ON DUPLICATE KEY UPDATE statements.
   (Bug#27006: http://bugs.mysql.com/27006,
   Bug#27210: http://bugs.mysql.com/27210)
   This bug was introduced by the fix for
   Bug#19978: http://bugs.mysql.com/19978.
 * For INSERT ... ON DUPLICATE KEY UPDATE statements where
   some AUTO_INCREMENT values were generated automatically
   for inserts and some rows were updated, one
   auto-generated value was lost per updated row, leading to
   faster exhaustion of the range of the AUTO_INCREMENT
   column. (Bug#24432: http://bugs.mysql.com/24432)
   Because the original problem can affect replication
   (different values on master and slave), it is recommended
   that the master and its slaves be upgraded to the current
   version.
 * IN ((subquery)), IN (((subquery))), and so forth, are
   equivalent to IN (subquery), which is always interpreted
   as a table subquery (so that it is allowed to return more
   than one row). MySQL was treating the
   "over-parenthesized" subquery as a single-row subquery
   and rejecting it if it returned more than one row. This
   bug primarily affected automatically generated code (such
   as queries generated by Hibernate), because humans rarely
   write the over-parenthesized forms.
   (Bug#21904: http://bugs.mysql.com/21904)
 * For MERGE tables defined on underlying tables that
   contained a short VARCHAR column (shorter than four
   characters), using ALTER TABLE on at least one but not
   all of the underlying tables caused the table definitions
   to be considered different from that of the MERGE table,
   even if the ALTER TABLE did not change the definition.
   (Bug#26881: http://bugs.mysql.com/26881)
 * If a thread previously serviced a connection that was
   killed, excessive memory and CPU use by the thread
   occurred if it later serviced a connection that had to
   wait for a table lock.
   (Bug#25966: http://bugs.mysql.com/25966)
 * CURDATE() is less than NOW(), either when comparing
   CURDATE() directly (CURDATE() < NOW() is true) or when
   casting CURDATE() to DATE (CAST(CURDATE() AS DATE) <
   NOW() is true). However, storing CURDATE() in a DATE
   column and comparing col_name < NOW() incorrectly yielded
   false. This is fixed by comparing a DATE column as
   DATETIME for comparisons to a DATETIME constant.
   (Bug#21103: http://bugs.mysql.com/21103)
 * A view on a join is insertable for INSERT statements that
   store values into only one table of the join. However,
   inserts were being rejected if the inserted-into table
   was used in a self-join because MySQL incorrectly was
   considering the insert to modify multiple tables of the
   view. (Bug#25122: http://bugs.mysql.com/25122)
 * Expressions involving SUM(), when used in an ORDER BY
   clause, could lead to out-of-order results.
   (Bug#25376: http://bugs.mysql.com/25376)
 * LOAD DATA INFILE sent an okay to the client before
   writing the binary log and committing the changes to the
   table had finished, thus violating ACID requirements.
   (Bug#26050: http://bugs.mysql.com/26050)
 * Views that used a scalar correlated subquery returned
   incorrect results.
   (Bug#26560: http://bugs.mysql.com/26560)
 * IF(expr, unsigned_expr, unsigned_expr) was evaluated to a
   signed result, not unsigned. This has been corrected. The
   fix also affects constructs of the form IS [NOT]
   {TRUE|FALSE}, which were transformed internally into IF()
   expressions that evaluated to a signed result.
   (Bug#24532: http://bugs.mysql.com/24532)
   For existing views that were defined using IS [NOT]
   {TRUE|FALSE} constructs, there is a related implication.
   The definitions of such views were stored using the IF()
   expression, not the original construct. This is manifest
   in that SHOW CREATE VIEW shows the transformed IF()
   expression, not the original one. Existing views will
   evaluate correctly after the fix, but if you want SHOW
   CREATE VIEW to display the original construct, you must
   drop the view and re-create it using its original
   definition. New views will retain the construct in their
   definition.
 * BENCHMARK() did not work correctly for expressions that
   produced a DECIMAL result.
   (Bug#26093: http://bugs.mysql.com/26093)
 * For some values of the position argument, the INSERT()
   function could insert a NUL byte into the result.
   (Bug#26281: http://bugs.mysql.com/26281)
 * Inserting utf8 data into a TEXT column that used a
   single-byte character set could result in spurious
   warnings about truncated data.
   (Bug#25815: http://bugs.mysql.com/25815)
 * EXPLAIN EXTENDED did not show WHERE conditions that were
   optimized away. (Bug#22331: http://bugs.mysql.com/22331)
 * INSERT DELAYED statements inserted incorrect values into
   BIT columns. (Bug#26238: http://bugs.mysql.com/26238)
 * For expr IN(value_list), the result could be incorrect if
   BIGINT UNSIGNED values were used for expr or in the value
   list. (Bug#19342: http://bugs.mysql.com/19342)
 * When a TIME_FORMAT() expression was used as a column in a
   GROUP BY clause, the expression result was truncated.
   (Bug#20293: http://bugs.mysql.com/20293)
 * For SUBSTRING() evaluation using a temporary table, when
   SUBSTRING() was used on a LONGTEXT column, the max_length
   metadata value of the result was incorrectly calculated
   and set to 0. Consequently, an empty string was returned
   instead of the correct result.
   (Bug#15757: http://bugs.mysql.com/15757)
 * Use of a GROUP BY clause that referred to a stored
   function result together with WITH ROLLUP caused
   incorrect results.
   (Bug#25373: http://bugs.mysql.com/25373)
 * Use of a subquery containing GROUP BY and WITH ROLLUP
   caused a server crash.
   (Bug#26830: http://bugs.mysql.com/26830)
 * Use of a subquery containing a UNION with an invalid
   ORDER BY clause caused a server crash.
   (Bug#26661: http://bugs.mysql.com/26661)
 * In certain cases it could happen that deleting a row
   corrupted an RTREE index. This affected indexes on
   spatial columns. (Bug#25673: http://bugs.mysql.com/25673)
 * SSL connections failed on Windows.
   (Bug#26678: http://bugs.mysql.com/26678)
 * Added support for --debugger=dbx for mysql-test-run.pl
   and fixed support for --debugger=devenv,
   --debugger=DevEnv, and --debugger=/path/to/devenv.
   (Bug#26792: http://bugs.mysql.com/26792)
 * X() IS NULL and Y() IS NULL comparisons failed when X()
   and Y() returned NULL.
   (Bug#26038: http://bugs.mysql.com/26038)
 * UNHEX() IS NULL comparisons failed when UNHEX() returned
   NULL. (Bug#26537: http://bugs.mysql.com/26537)
 * The REPEAT() function did not allow a column name as the
   count parameter. (Bug#25197: http://bugs.mysql.com/25197)
 * On 64-bit Windows, large timestamp values could be
   handled incorrectly.
   (Bug#26536: http://bugs.mysql.com/26536)
 * In some error messages, inconsistent format specifiers
   were used for the translations in different languages.
   comp_err (the error message compiler) now checks for
   mismatches. (Bug#26571: http://bugs.mysql.com/26571)
 * On Windows, the server exhibited a file-handle leak after
   reaching the limit on the number of open file
   descriptors. (Bug#25222: http://bugs.mysql.com/25222)
 * A reference to a non-existent column in the ORDER BY
   clause of an UPDATE ... ORDER BY statement could cause a
   server crash. (Bug#25126: http://bugs.mysql.com/25126)
 * A multiple-row delayed insert with an auto increment
   column could cause duplicate entries to be created on the
   slave in a replication environment.
   (Bug#25507: http://bugs.mysql.com/25507,
   Bug#26116: http://bugs.mysql.com/26116)
 * Duplicating the usage of a user variable in a stored
   procedure or trigger would not be replicated correctly to
   the slave. (Bug#25167: http://bugs.mysql.com/25167)
 * User defined variables used within stored procedures and
   triggers are not replicated correctly when operating in
   statement-based replication mode.
   (Bug#20141: http://bugs.mysql.com/20141,
   Bug#14914: http://bugs.mysql.com/14914)
 * Loading data using LOAD DATA INFILE may not replicate
   correctly (due to character set incompatibilities) if the
   character_set_database variable is set before the data is
   loaded. (Bug#15126: http://bugs.mysql.com/15126)
 * DROP TRIGGER statements would not be filtered on the
   slave when using the replication-wild-do-table option.
   (Bug#24478: http://bugs.mysql.com/24478)
 * MySQL would not compile when configured using
   --without-query-cache.
   (Bug#25075: http://bugs.mysql.com/25075)
 * When using certain server SQL modes, the mysql.proc table
   was not created by mysql_install_db. In addition, the
   creation of this and other MySQL system tables was not
   checked for by mysql-test-run.pl.
   (Bug#23669: http://bugs.mysql.com/23669,
   Bug#20166: http://bugs.mysql.com/20166)
 * VIEW restrictions were applied to SELECT statements after
   a CREATE VIEW statement failed, as though the CREATE had
   succeeded. (Bug#25897: http://bugs.mysql.com/25897)
 * An INSERT trigger invoking a stored routine that inserted
   into a table other than the one on which the trigger was
   defined would fail with a Table '...' doesn't exist
   referring to the second table when attempting to delete
   records from the first table.
   (Bug#21825: http://bugs.mysql.com/21825)
 * A stored procedure that made use of cursors failed when
   the procedure was invoked from a stored function.
   (Bug#25345: http://bugs.mysql.com/25345)
 * When nesting stored procedures within a trigger on a
   table, a false dependency error was thrown when one of
   the nested procedures contained a DROP TABLE statement.
   (Bug#22580: http://bugs.mysql.com/22580)
 * When attempting to call a stored procedure creating a
   table from a trigger on a table tbl in a database db, the
   trigger failed with ERROR 1146 (42S02): Table 'db.tbl'
   doesn't exist. However, the actual reason that such a
   trigger fails is due to the fact that CREATE TABLE causes
   an implicit COMMIT, and so a trigger cannot invoke a
   stored routine containing this statement. A trigger which
   does so now fails with ERROR 1422 (HY000): Explicit or
   implicit commit is not allowed in stored function or
   trigger, which makes clear the reason for the trigger's
   failure. (Bug#18914: http://bugs.mysql.com/18914)
 * Local variables in stored routines or triggers, when
   declared as the BIT type, were interpreted as strings.
   (Bug#12976: http://bugs.mysql.com/12976)
 * When a stored routine attempted to execute a statement
   accessing a nonexistent table, the error was not caught
   by the routine's exception handler.
   (Bug#8407: http://bugs.mysql.com/8407,
   Bug#20713: http://bugs.mysql.com/20713)
 * NOW() returned the wrong value in statements executed at
   server startup with the --init-file option.
   (Bug#23240: http://bugs.mysql.com/23240)
 * Instance Manager did not remove the angel PID file on a
   clean shutdown. (Bug#22511: http://bugs.mysql.com/22511)
 * The server could crash if two or more threads initiated
   query cache resize operation at moments very close in
   time. (Bug#23527: http://bugs.mysql.com/23527)
 * The conditions checked by the optimizer to allow use of
   indexes in IN predicate calculations were unnecessarily
   tight and were relaxed.
   (Bug#20420: http://bugs.mysql.com/20420)
 * Several deficiencies in resolution of column names for
   INSERT ... SELECT statements were corrected.
   (Bug#25831: http://bugs.mysql.com/25831)
 * Indexes on TEXT columns were ignored when ref accesses
   were evaluated. (Bug#25971: http://bugs.mysql.com/25971)
 * The update columns for INSERT ... SELECT ... ON DUPLICATE
   KEY UPDATE could be assigned incorrect values if a
   temporary table was used to evaluate the SELECT.
   (Bug#16630: http://bugs.mysql.com/16630)
 * CONNECTION is no longer treated as a reserved word.
   (Bug#12204: http://bugs.mysql.com/12204)
 * A user-defined variable could be assigned an incorrect
   value if a temporary table was employed in obtaining the
   result of the query used to determine its value.
   (Bug#24010: http://bugs.mysql.com/24010)
 * Queries that used a temporary table for the outer query
   when evaluating a correlated subquery could return
   incorrect results.
   (Bug#23800: http://bugs.mysql.com/23800)
 * For index reads, the BLACKHOLE engine did not return
   end-of-file (which it must because BLACKHOLE tables
   contain no rows), causing some queries to crash.
   (Bug#19717: http://bugs.mysql.com/19717)


        Sincerely,
                Mads Martin

--
Mads Martin Joergensen, Release Manager
MySQL AB, Odense, Denmark -- www.mysql.com

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to