OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
MySQL 5.1.21-beta has been released

From: Joerg Bruehe (joergmysql.com)
Date: Wed Aug 29 2007 - 09:56:24 CDT


Dear MySQL users,

We are proud to present to you the MySQL Server 5.1.21-beta
release, a new beta version of the popular open source database.

Bear in mind that this is a beta release, and as with any other
pre-production release, caution should be taken when installing on
production level systems or systems with critical data. For production
level systems using 5.0, we would like to direct your attention to the
product description of MySQL Enterprise at:

           http://mysql.com/products/enterprise/

The MySQL 5.1.21-beta release is now available in source and binary form
for a number of platforms 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.

Please also note that some of our mirrors are currently experiencing
problems that may result in serving corrupted files. We are working with
the mirror maintainers to resolve this.

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 since the latest released version of MySQL 5.1, the
MySQL 5.1.20-beta release. It can also be viewed online at

           http://dev.mysql.com/doc/refman/5.1/en/news-5-1-21.html

Functionality added or changed:
   * Incompatible change: In MySQL 5.1.6, when log tables were
     implemented, the default log destination for the general query
     and slow query log was TABLE. This default has been changed to
     FILE, which is compatible with MySQL 5.0, but incompatible
     with earlier releases of MySQL 5.1 from 5.1.6 to 5.1.20. If
     you are upgrading from MySQL 5.0 to this release, no logging
     option changes should be necessary. However, if you are
     upgrading from 5.1.6 through 5.1.20 to this release and were
     using TABLE logging, use the --log-output=TABLE option
     explicitly to preserve your server's table-logging behavior.
     (Bug#29993: http://bugs.mysql.com/29993)
   * The --syslog option that was introduced in 5.1.20 for
     mysqld_safe (to send error output to syslog) did not work
     correctly: Error output was buffered and not logged
     immediately. This has been corrected. In addition, some
     feature changes were made:
        + Important: The default mysqld_safe logging behavior now
          is --skip-syslog rather than --syslog, which is
          compatible with the default behavior of writing an error
          log file for releases prior to 5.1.20.
        + A new option, --syslog-tag=tag, modifies the default tags
          written by mysqld_safe and mysqld to syslog to be
          mysqld_safe-tag and mysqld-tag rather than the default
          tags of mysqld_safe and mysqld.
     (Bug#29992: http://bugs.mysql.com/29992)
   * Several programs now accept --debug-check and --debug-info
     options: mysql, mysqladmin, mysqlbinlog, mysqlcheck,
     mysqldump, mysqlimport, mysqlshow, mysqlslap, mysqltest,
     mysql_upgrade. (Note: mysql and mysqltest already accepted
     --debug-info.) --debug-check prints debugging information at
     program exit. --debug-info is similar but also prints memory
     and CPU usage statistics. This patch also corrects a problem
     for mysql that --debug-info did not display statistics at exit
     time. (Bug#30127: http://bugs.mysql.com/30127)
   * Transaction support in the FEDERATED storage engine has been
     disabled due to issues with multiple active transactions and
     sessions on the same FEDERATED table.
     (Bug#29875: http://bugs.mysql.com/29875)
   * Previously, prepared statements processed using PREPARE and
     EXECUTE were not subject to caching in the query cache if they
     contained any ? parameter markers. This limitation has been
     lifted. (Bug#29318: http://bugs.mysql.com/29318)
   * Replication between master and slaves now supports different
     column numbers within a table on both master and slave. The
     rules for replication where the table definitions are
     different has also changed. This supercedes the functionality
     for replication from the master table to a slave table with
     more columns that was added in MySQL 5.1.12. For more
     information, see Section 15.3.1.19, "Replication with Fewer
     Columns on the Slave."
   * The SQL thread on a slave now is always allowed to enter
     InnoDB even if this would exceed the limit imposed by the
     innodb_thread_concurrency system variable. In cases of high
     load on the slave server (when innodb_thread_concurrency is
     reached), this change helps the slave stay more up to date
     with the master; in the previous behavior, the SQL thread was
     competing for resources with all client threads active on the
     slave server. (Bug#25078: http://bugs.mysql.com/25078)

Bugs fixed:
   * Incompatible change: Several issues were identified for stored
     programs (stored functions and procedures, triggers, and
     events) and views containing non-ASCII symbols. These issues
     involved conversion errors due to incomplete character set
     information when translating these objects to and from stored
     format, such as:
        + Parsing the original object definition so that it can be
          stored.
        + Compiling the stored definition into executable form when
          the object is invoked.
        + Retrieval of object definitions from INFORMATION_SCHEMA
          tables.
        + Displaying the object definition in SHOW statements. This
          issue also affected mysqldump, which uses SHOW.
     The fix for the problems is to store character set information
     from the object creation context so that this information is
     available when the object needs to be used later. The context
     includes the client character set, the connection character
     set and collation, and the collation of the database with
     which the object is associated.
     As a result of the patch, several tables have new columns:
        + In the mysql database, the proc and event tables now have
          these columns: character_set_client,
          collation_connection, db_collation, body_utf8.
        + In INFORMATION_SCHEMA, the VIEWS table now has these
          columns: CHARACTER_SET_CLIENT, COLLATION_CONNECTION. The
          ROUTINES, TRIGGERS, and EVENT tables now have these
          columns: CHARACTER_SET_CLIENT, COLLATION_CONNECTION,
          DATABASE_COLLATION.
     These columns store the session values of the
     character_set_client and collation_connection system
     variables, and the collation of the database with which the
     object is associated. The values are those in effect at object
     creation time. (The saved database collation is not the value
     of the collation_database system variable, which applies to
     the default database; the database that contains the object is
     not necessarily the default database.)
     Several SHOW statements now display additional columns
     corresponding to the new table columns. These statements are:
     SHOW CREATE EVENT, SHOW CREATE FUNCTION, SHOW CREATE
     PROCEDURE, SHOW CREATE VIEW, SHOW EVENTS, SHOW FUNCTION
     STATUS, SHOW PROCEDURE STATUS, SHOW TRIGGERS.
     A new statement, SHOW CREATE TRIGGER is introduced and is used
     by mysqldump for producing CREATE TRIGGER statements.
     (Bug#11986: http://bugs.mysql.com/11986,
     Bug#16291: http://bugs.mysql.com/16291,
     Bug#19443: http://bugs.mysql.com/19443,
     Bug#21249: http://bugs.mysql.com/21249,
     Bug#25212: http://bugs.mysql.com/25212,
     Bug#25221: http://bugs.mysql.com/25221,
     Bug#30027: http://bugs.mysql.com/30027)
     Subsequent to the patch just described, it was discovered that
     the patch broke mysql_upgrade; this has been corrected.
     (Bug#30029: http://bugs.mysql.com/30029)
     Important: To avoid warnings from the server about the use of
     old definitions from any release prior to 5.1.21, you should
     dump stored programs and views with mysqldump after upgrading
     to 5.1.21, and then reload them to recreate them with new
     definitions. Invoke mysqldump with a --default-character-set
     option that names the non-ASCII character set that was used
     for the definitions when the objects were originally defined.
   * NDB Cluster: The server would not compile with NDB support on
     AIX 5.2. (Bug#10776: http://bugs.mysql.com/10776)
   * NDB Cluster (Replication): Inconsistencies could occur between
     the master and the slave when replicating Disk Data tables.
     (Bug#19259: http://bugs.mysql.com/19259)
   * NDB Cluster (Replication): mysqld would segfault on startup
     when the NDB storage engine was enabled and the default
     character set was a strictly multi-byte character set such as
     UCS2. (Bug#27404: http://bugs.mysql.com/27404)
     This issue does not apply to character sets that can contain
     single-byte characters in addition to multi-byte characters
     such as UTF-8.
     Additional issues remain with regard to the use of multi-byte
     character sets in MySQL Cluster Replication; see Section
     16.10.3, "Known Issues in MySQL Cluster Replication," for more
     information.
   * NDB Cluster: Warnings and errors generated by
        ndb_config --config-file=file
     were sent to stdout rather than stderr.
     (Bug#25941: http://bugs.mysql.com/25941)
   * NDB Cluster (Disk Data): Performing Disk Data schema
     operations during a node restart could cause forced shutdowns
     of other data nodes. (Bug#29501: http://bugs.mysql.com/29501)
   * NDB Cluster (Disk Data): Disk data meta-information that
     existed in ndbd might not be visible to mysqld.
     (Bug#28720: http://bugs.mysql.com/28720)
   * NDB Cluster (Disk Data): The number of free extents was
     incorrectly reported for some tablespaces.
     (Bug#28642: http://bugs.mysql.com/28642)
   * NDB Cluster (Cluster Replication): When executing a statement
     where binlog_format=statement, the result of the statement was
     logged both as a statement and as rows.
     (Bug#29222: http://bugs.mysql.com/29222)
   * NDB Cluster: Replica redo logs were inconsistently handled
     during a system restart.
     (Bug#29354: http://bugs.mysql.com/29354)
   * NDB Cluster: When restarting a data node, queries could hang
     during that node's start phase 5, and only continue once the
     node entered phase 6. (Bug#29364: http://bugs.mysql.com/29364)
   * NDB Cluster: When a node failed to respond to a COPY_GCI
     signal as part of a global checkpoint, the master node was
     killed instead instead of the node that actually failed.
     (Bug#29331: http://bugs.mysql.com/29331)
   * NDB Cluster: An invalid comparison made during REDO validation
     that could lead to an Error while reading REDO log condition.
     (Bug#29118: http://bugs.mysql.com/29118)
   * NDB Cluster: The wrong data pages were sometimes invalidated
     following a global checkpoint.
     (Bug#29067: http://bugs.mysql.com/29067)
   * NDB Cluster: If at least 2 files were involved in REDO
     invalidation, then file 0 of page 0 was not updated and so
     pointed to an invalid part of the redo log.
     (Bug#29057: http://bugs.mysql.com/29057)
   * The server acquired a global mutex for temporary tables,
     although such tables are thread-specific. This affected
     performance by blocking other threads.
     (Bug#27062: http://bugs.mysql.com/27062)
   * INSERT DELAYED statements on a master server are replicated as
     non-DELAYED inserts on slaves (which is normal, to preserve
     serialization), but the inserts on the slave did not use
     concurrent inserts. Now INSERT DELAYED on a slave is converted
     to a concurrent insert when possible, and to a normal insert
     otherwise. (Bug#29152: http://bugs.mysql.com/29152)
   * If one thread was performing concurrent inserts, other threads
     reading from the same table using equality key searches could
     see the index values for new rows before the data values had
     been written, leading to reports of table corruption.
     (Bug#29838: http://bugs.mysql.com/29838)
   * On Windows, client libraries lacked symbols required for
     linking. (Bug#30118: http://bugs.mysql.com/30118)
   * On Windows, the CMake build process did not produce the
     embedded server library or related binaries.
     (Bug#29903: http://bugs.mysql.com/29903)
   * SESSION_USER() returned garbage data (rather than the correct
     value of the empty string) when executed by a slave SQL
     thread. (Bug#29878: http://bugs.mysql.com/29878)
   * For the SHOW TABLE TYPES statement, the server sent incorrect
     output to clients, possibly causing them to crash.
     (Bug#30036: http://bugs.mysql.com/30036)
   * Coercion of ASCII values to character sets that are a superset
     of ASCII sometimes was not done, resulting in illegal mix of
     collations errors. These cases now are resolved using
     repertoire, a new string expression attribute (see Section
     9.6, "String Repertoire").
     (Bug#28875: http://bugs.mysql.com/28875)
   * REPAIR TABLE ... USE_FRM could corrupt tables.
     (Bug#29980: http://bugs.mysql.com/29980)
   * FEDERATED tables had an artificially low maximum of key
     length. (Bug#26909: http://bugs.mysql.com/26909)
   * In some cases, INSERT INTO ... SELECT ... GROUP BY could
     insert rows even if the SELECT by itself produced an empty
     result. (Bug#29717: http://bugs.mysql.com/29717)
   * In a stored function or trigger, when InnoDB detected
     deadlock, it attempted rollback and displayed an incorrect
     error message (Explicit or implicit commit is not allowed in
     stored function or trigger). Now InnoDB returns an error under
     these conditions and does not attempt rollback. Rollback is
     handled outside of InnoDB above the function/trigger level.
     (Bug#24989: http://bugs.mysql.com/24989)
   * --myisam-recover="" (empty option value) did not disable
     MyISAM recovery. (Bug#29856: http://bugs.mysql.com/29856)
   * Very long prepared statements in stored procedures could cause
     a server crash. (Bug#29856: http://bugs.mysql.com/29856)
   * Index creation could fail due to truncation of key values to
     the maximum key length rather than to a mulitiple of the
     maximum character length.
     (Bug#28125: http://bugs.mysql.com/28125)
   * mysql_setpermission tried to grant global-only privileges at
     the database level. (Bug#14618: http://bugs.mysql.com/14618)
   * An error that happened inside INSERT, UPDATE, or DELETE
     statements performed from within a stored function or trigger
     could cause inconsistency between master and slave servers.
     (Bug#27417: http://bugs.mysql.com/27417)
   * An assertion failure occurred within yaSSL for very long keys.
     (Bug#29784: http://bugs.mysql.com/29784)
   * Repeatedly accessing a view in a stored procedure (for
     example, in a loop) caused a small amount of memory to be
     allocated per access. Although this memory is deallocated on
     disconnect, it could be a problem for a long running stored
     procedures that make repeated access of views.
     (Bug#29834: http://bugs.mysql.com/29834)
   * The IS_UPDATABLE column in the INFORMATION_SCHEMA.VIEWS table
     was not always set correctly.
     (Bug#30020: http://bugs.mysql.com/30020)
   * A slave running with --log-slave-updates would fail to write
     INSERT DELAY IGNORE statements to its binary log, resulting in
     different binary log contents on the master and slave.
     (Bug#29571: http://bugs.mysql.com/29571)
   * InnoDB could crash if the server was shut down while
     innodb_table_monitor was running.
     (Bug#28254: http://bugs.mysql.com/28254)
   * If MySQL/InnoDB crashed very quickly after starting up, it
     would not force a checkpoint. In this case, InnoDB would skip
     crash recovery at next startup, and the database would become
     corrupt. Fix: If the redo log scan at InnoDB startup goes past
     the last checkpoint, force crash recovery.
     (Bug#23710: http://bugs.mysql.com/23710)
   * Certain statements with unions, subqueries, and joins could
     result in huge memory consumption.
     (Bug#29582: http://bugs.mysql.com/29582)
   * SHOW statements were being written to the slow query log that
     should not have been. (Bug#30000: http://bugs.mysql.com/30000)
   * Use of local variables with non-ASCII names in stored
     procedures crashed the server.
     (Bug#30120: http://bugs.mysql.com/30120)
   * INSERT ... VALUES(CONNECTION_ID(), ...) statements were
     written to the binary log in such a way that they could not be
     properly restored. (Bug#29928: http://bugs.mysql.com/29928)
   * Prepared statements containing CONNECTION_ID() could be
     written improperly to the binary log.
     (Bug#30200: http://bugs.mysql.com/30200)
   * mysql_install_db could fail to find script files that it
     needs. (Bug#28585: http://bugs.mysql.com/28585)
   * On Windows, executables did not include Vista manifests.
     (Bug#24732: http://bugs.mysql.com/24732)
   * A maximum of 4TB InnoDB free space was reported by SHOW TABLE
     STATUS, which is incorrect on systems with more than 4TB
     space. (Bug#29097: http://bugs.mysql.com/29097)
   * On Windows, the server used 10MB of memory for each connection
     thread, resulting in memory exhaustion. Now each thread uses
     1MB. (Bug#20815: http://bugs.mysql.com/20815)
   * Dropping a temporary InnoDB table that had been locked with
     LOCK TABLES caused a server crash.
     (Bug#24918: http://bugs.mysql.com/24918)
   * Log table locking was redesigned, eliminating several
     lock-related problems:
        + Truncating mysql.slow_log in a stored procedure after use
          of a cursor caused the thread to lock.
          (Bug#17876: http://bugs.mysql.com/17876)
        + Flushing a log table resulted in warnings.
          (Bug#23044: http://bugs.mysql.com/23044)
        + The server would hang when performing concurrent ALTER
          TABLE or TRUNCATE TABLE statements against the log
          tables. (Bug#25422: http://bugs.mysql.com/25422)
        + Changing the value of the general_log system variable
          while a global read lock was in place resulted in
          deadlock. (Bug#29129: http://bugs.mysql.com/29129)
   * LOCK TABLES did not pre-lock tables used in triggers of the
     locked tables. Unexpected locking behavior and statement
     failures similar to failed: 1100: Table 'xx' was not locked
     with LOCK TABLES could result.
     (Bug#29929: http://bugs.mysql.com/29929)
   * Creating an event to be executed at a time close to the end of
     the allowed range (2038-01-19 03:14:07 UTC) would cause the
     server to crash. (Bug#28641: http://bugs.mysql.com/28641)
   * On Windows, Instance Manager would crash if an instance object
     failed to initialize during startup. This could happen if an
     incorrect mysqld path was supplied in the configuration file.
     (Bug#28012: http://bugs.mysql.com/28012)
   * Instance Manager had a race condition when it received a
     shutdown request while a guarded mysqld instance was starting
     such that it could fail to stop the mysqld instance.
     (Bug#28030: http://bugs.mysql.com/28030)
   * Fast ALTER TABLE (that works without rebuilding the table)
     acquired duplicate locks in the storage engine. In MyISAM, if
     ALTER TABLE was issued under LOCK TABLE, it caused all data
     inserted after LOCK TABLE to disappear.
     (Bug#28838: http://bugs.mysql.com/28838)
   * After the first read of a TEMPORARY table, CHECK TABLE could
     report the table as being corrupt.
     (Bug#26325: http://bugs.mysql.com/26325)
   * The server was blocked from opening other tables while the
     FEDERATED engine was attempting to open a remote table. Now
     the server does not check the correctness of a FEDERATED table
     at CREATE TABLE time, but waits until the table actually is
     accessed. (Bug#25679: http://bugs.mysql.com/25679)
   * On Mac OS X, shared-library installation pathnames were
     incorrect. (Bug#28544: http://bugs.mysql.com/28544)
   * For MyISAM tables on Windows, INSERT, DELETE, or UPDATE
     followed by ALTER TABLE within LOCK TABLES could cause table
     corruption. (Bug#29957: http://bugs.mysql.com/29957)
   * When determining which transaction to kill after deadlock has
     been detected, InnoDB now adds the number of locks to a
     transaction's weight, and avoids killing transactions that
     mave modified non-transactional tables. This should reduce the
     likelihood of killing long-running transactions containing
     SELECT ... FOR UPDATE or INSERT/REPLACE INTO ... SELECT
     statements, and of causing partial updates if the target is a
     MyISAM table. (Bug#21293: http://bugs.mysql.com/21293)
   * When using a FEDERATED table, the value of last_insert_id()
     would not correctly update the C API interface, which would
     affect the autogenerated ID returned both through the C API
     and the MySQL protocol, affecting Connectors that used the
     protocol and/or C API.
     (Bug#25714: http://bugs.mysql.com/25714)
   * Optimization of queries with DETERMINISTIC stored functions in
     the WHERE clause was ineffective: A sequential scan was always
     used. (Bug#29338: http://bugs.mysql.com/29338)
   * SQL_BIG_RESULT had no effect for CREATE TABLE ... SELECT
     SQL_BIG_RESULT ... statements.
     (Bug#15130: http://bugs.mysql.com/15130)
   * For InnoDB tables, MySQL unnecessarily sorted records in
     certain cases when the records were retrieved by InnoDB in the
     proper order already. (Bug#28591: http://bugs.mysql.com/28591)
   * EXPLAIN produced Impossible where for statements of the form
     SELECT ... FROM t WHERE c=0, where c was an ENUM column
     defined as a primary key.
     (Bug#29661: http://bugs.mysql.com/29661)
   * On Windows, ALTER TABLE hung if records were locked in share
     mode by a long-running transaction.
     (Bug#29644: http://bugs.mysql.com/29644)
   * A field packet with NULL fields caused a libmysqlclient crash.
     (Bug#29494: http://bugs.mysql.com/29494)
   * A byte-order issue in writing a spatial index to disk caused
     bad index files on some systems.
     (Bug#29070: http://bugs.mysql.com/29070)
   * mysqldump produced output that incorrectly discarded the
     NO_AUTO_VALUE_ON_ZERO value of the SQL_MODE variable after
     dumping triggers. (Bug#29788: http://bugs.mysql.com/29788)
   * Adding DISTINCT could cause incorrect rows to appear in a
     query result. (Bug#29911: http://bugs.mysql.com/29911)
   * Killing an INSERT DELAYED thread caused a server crash.
     (Bug#29431: http://bugs.mysql.com/29431)
   * For updates to InnoDB tables, a TIMESTAMP column with the ON
     UPDATE CURRENT_TIMESTAMP attribute could be updated even when
     no values actually changed.
     (Bug#29310: http://bugs.mysql.com/29310)
   * The special "zero" ENUM value was coerced to the normal empty
     string ENUM value during a column-to-column copy. This
     affected CREATE ... SELECT statements and SELECT statements
     with aggregate functions on ENUM columns in the GROUP BY
     clause. (Bug#29360: http://bugs.mysql.com/29360)
   * Conversion of ASCII DEL (0x7F) to Unicode incorrectly resulted
     in QUESTION MARK (0x3F) rather than DEL.
     (Bug#29499: http://bugs.mysql.com/29499)
   * A left join between two views could produce incorrect results.
     (Bug#29604: http://bugs.mysql.com/29604)
   * For MEMORY tables, the index_merge union access method could
     return incorrect results.
     (Bug#29740: http://bugs.mysql.com/29740)
   * If query execution involved a temporary table, GROUP_CONCAT()
     could return a result with an incorrect character set.
     (Bug#29850: http://bugs.mysql.com/29850)
   * Slave servers could incorrectly interpret an out-of-memory
     error from the master and reconnect using the wrong binary log
     position. (Bug#24192: http://bugs.mysql.com/24192)
   * Comparison of TIME values using the BETWEEN operator led to
     string comparison, producing incorrect results in some cases.
     Now the values are compared as integers.
     (Bug#29739: http://bugs.mysql.com/29739)
   * An incorrect result was returned when comparing string values
     that were converted to TIME values with CAST().
     (Bug#29555: http://bugs.mysql.com/29555)
   * If InnoDB reached its limit on the number of concurrent
     transactions (1023), it wrote a descriptive message to the
     error log but returned a misleading error message to the
     client, or an assertion failure occurred.
     (Bug#18828: http://bugs.mysql.com/18828)
   * On Windows, the mysql client died if the user entered a
     statement and Return after entering Control-C.
     (Bug#29469: http://bugs.mysql.com/29469)
   * For the general query log, logging of prepared statements
     executed via the C API differed from logging of prepared
     statements performed with PREPARE and EXECUTE. Logging for the
     latter was missing the Prepare and Execute lines.
     (Bug#13326: http://bugs.mysql.com/13326)
   * Under heavy load with a large query cache, invalidating part
     of the cache could cause the server to freeze (that is, to be
     unable to service other operations until the invalidation was
     complete). (Bug#21074: http://bugs.mysql.com/21074)
   * If an operation had an InnoDB table, and two triggers, AFTER
     UPDATE and AFTER INSERT, competing for different resources
     (such as two distinct MyISAM tables), the triggers were unable
     to execute concurrently. In addition, INSERT and UPDATE
     statements for the InnoDB table were unable to run
     concurrently. (Bug#26141: http://bugs.mysql.com/26141)
   * On 64-bit platforms, the filesort code (for queries with GROUP
     BY or ORDER BY) could crash due to an incorrect pointer size.
     (Bug#29610: http://bugs.mysql.com/29610)
   * Using the DATE() function in a WHERE clause did not return any
     records after encountering NULL. However, using TRIM or CAST
     produced the correct results.
     (Bug#29898: http://bugs.mysql.com/29898)
   * Using the --skip-add-drop-table option with mysqldump
     generated incorrect SQL if the database included any views.
     The recreation of views requires the creation and removal of
     temporary tables. This option suppressed the removal of those
     temporary tables. The same applied to --compact since this
     option also invokes --skip-add-drop-table.
     (Bug#28524: http://bugs.mysql.com/28524)
   * A race condition in the interaction between MyISAM and the
     query cache code caused the query cache not to invalidate
     itself for concurrently inserted data.
     (Bug#28249: http://bugs.mysql.com/28249)
   * The full-text parser could enter an infinite loop if it
     encountered an illegal multi-byte sequence or a sequence that
     has no mapping to Unicode.
     (Bug#29464: http://bugs.mysql.com/29464)
   * Failure to consider collation when comparing space characters
     could lead to incorrect index entry order, making it
     impossible to find some index values.
     (Bug#29461: http://bugs.mysql.com/29461)
   * Several InnoDB assertion failures were corrected.
     (Bug#25645: http://bugs.mysql.com/25645)
   * InnoDB displayed an incorrect error message when a CREATE
     TABLE statement exceeded the InnoDB maximum allowable row
     size. (Bug#21101: http://bugs.mysql.com/21101)
   * InnoDB produced an unnecessary (and harmless) warning: InnoDB:
     Error: trying to declare trx to enter InnoDB, but InnoDB: it
     already is declared. (Bug#20090: http://bugs.mysql.com/20090)
   * Backup software can cause ERROR_SHARING_VIOLATION or
     ERROR_LOCK_VIOLATION conditions during file operations. InnoDB
     now retries forever until the condition goes away.
     (Bug#9709: http://bugs.mysql.com/9709)
   * In strict SQL mode, errors silently stopped the SQL thread
     even for errors named using the --slave-skip-errors option.
     (Bug#28839: http://bugs.mysql.com/28839)
   * MyISAM corruption could occur with the cp932_japanese_ci
     collation for the cp932 character set due to incorrect
     comparison for trailing space.
     (Bug#29333: http://bugs.mysql.com/29333)
   * Searching a FULLTEXT index for a word with the boolean mode
     truncation operator could cause an infinite loop.
     (Bug#29445: http://bugs.mysql.com/29445)
   * CHECK TABLE could erroneously report table corruption for a
     CSV table if multiple threads were modifying the table at the
     same time. (Bug#29253: http://bugs.mysql.com/29253)
   * Clients using SSL could hang the server.
     (Bug#29579: http://bugs.mysql.com/29579)
   * Single-row inserts could report a row count greater than one.
     (Bug#29692: http://bugs.mysql.com/29692)
   * For a table with a DATE column date_col such that selecting
     rows with WHERE date_col = 'date_val 00:00:00' yielded a
     non-empty result, adding GROUP BY date_col caused the result
     to be empty. (Bug#29729: http://bugs.mysql.com/29729)
   * If a stored procedure was created and invoked prior to
     selecting a default database with USE, a No database selected
     error occurred. (Bug#28551: http://bugs.mysql.com/28551)
   * Indexing column prefixes in InnoDB tables could cause table
     corruption. (Bug#28138: http://bugs.mysql.com/28138)
   * SHOW INNODB STATUS caused an assertion failure under high
     load. (Bug#22819: http://bugs.mysql.com/22819)
   * If a slave timed out while registering with the master to
     which it was connecting, auto-reconnect failed thereafter.
     (Bug#19328: http://bugs.mysql.com/19328)
   * For the embedded server, the mysql_stmt_store_result() C API
     function caused a memory leak for empty result sets.
     (Bug#29687: http://bugs.mysql.com/29687)
   * mysql-stress-test.pl and mysqld_multi.server.sh were missing
     from some binary distributions.
     (Bug#21023: http://bugs.mysql.com/21023,
     Bug#25486: http://bugs.mysql.com/25486)
   * SELECT ... INTO OUTFILE followed by LOAD DATA could result in
     garbled characters when the FIELDS ENCLOSED BY clause named a
     delimiter of '0', 'b', 'n', 'r', 't', 'N', or 'Z' due to an
     interaction of character encoding and doubling for data values
     containing the enclosed-by character.
     (Bug#29294: http://bugs.mysql.com/29294)
   * A duplicate-key error message could display an incorrect key
     value when not all columns of the key were used to select rows
     for update. (Bug#28158: http://bugs.mysql.com/28158)
   * For some event-creation problems, the server displayed
     messages that implied the problems were errors when they were
     only warnings. (Bug#27406: http://bugs.mysql.com/27406)
   * Error returns from the time() system call were ignored.
     (Bug#27198: http://bugs.mysql.com/27198)
   * ALTER DATABASE did not require at least one option.
     (Bug#25859: http://bugs.mysql.com/25859)
   * Creation of a legal stored procedure could fail if no default
     database had been selected.
     (Bug#29050: http://bugs.mysql.com/29050)
   * mysqld_safe produced error messages and did not create the
     error log file under some circumstances.
     (Bug#29634: http://bugs.mysql.com/29634)
   * The thread ID was not reset properly after execution of
     mysql_change_user(), which could cause replication failure
     when replicating temporary tables.
     (Bug#29734: http://bugs.mysql.com/29734)
   * The FEDERATED storage engine failed silently for INSERT ... ON
     DUPLICATE KEY UPDATE if a duplicate key violation occurred.
     FEDERATED does not support ON DUPLICATE KEY UPDATE, so now it
     correctly returns an ER_DUP_KEY error if a duplicate key
     violation occurs. (Bug#25511: http://bugs.mysql.com/25511)
   * For a multiple-row insert into a FEDERATED table that refers
     to a remote transactional table, if the insert failed for a
     row due to constraint failure, the remote table would contain
     a partial commit (the rows preceding the failed one) instead
     of rolling back the statement completely. This occurred
     because the rows were treated as individual inserts.
     Now FEDERATED performs bulk-insert handling such that multiple
     rows are sent to the remote table in a batch. This provides a
     performance improvement and enables the remote table to
     perform statement rollback properly should an error occur.
     This capability has the following limitations:
        + The size of the insert cannot exceed the maximum packet
          size between servers. If the insert exceeds this size, it
          is broken into multiple packets and the rollback problem
          can occur.
        + Bulk-insert handling does not occur for INSERT ... ON
          DUPLICATE KEY UPDATE.
     (Bug#25513: http://bugs.mysql.com/25513)
   * ALTER VIEW is not supported as a prepared statement but was
     not being rejected. ALTER VIEW is now prohibited as a prepared
     statement or when called within stored routines.
     (Bug#28846: http://bugs.mysql.com/28846)
   * Calling mysql_options() after mysql_real_connect() could cause
     clients to crash. (Bug#29247: http://bugs.mysql.com/29247)
   * If an ENUM column contained '' as one of its members
     (represented with numeric value greater than 0), and the
     column contained error values (represented as 0 and displayed
     as ''), using ALTER TABLE to modify the column definition
     caused the 0 values to be given the numeric value of the
     non-zero '' member. (Bug#29251: http://bugs.mysql.com/29251)
   * Aggregations in subqueries that refer to outer query columns
     were not always correctly referenced to the proper outer
     query. (Bug#27333: http://bugs.mysql.com/27333)
   * Use of SHOW BINLOG EVENTS for a non-existent log file followed
     by PURGE MASTER LOGS caused a server crash.
     (Bug#29420: http://bugs.mysql.com/29420)
   * A number of unsupported constructs --- including prohibited
     constructs, the UCASE() function, and nested function calls
     --- were permitted in partitioning expressions.
     (Bug#18198: http://bugs.mysql.com/18198,
     Bug#26082: http://bugs.mysql.com/26082,
     Bug#29308: http://bugs.mysql.com/29308)
   * SHOW BINLOG EVENTS displayed incorrect values of End_log_pos
     for events associated with transactional storage engines.
     (Bug#22540: http://bugs.mysql.com/22540)
   * mysqldump created a stray file when a given a too-long
     filename argument. (Bug#29361: http://bugs.mysql.com/29361)
   * The semantics of BIGINT depended on platform-specific
     characteristics. (Bug#29079: http://bugs.mysql.com/29079)
   * mysqld failed to exit during shutdown.
     (Bug#29133: http://bugs.mysql.com/29133)
   * Inserting a negative number into a CSV table could corrupt it.
     (Bug#29353: http://bugs.mysql.com/29353)
   * Deleting from a CSV table could corrupt it.
     (Bug#29411: http://bugs.mysql.com/29411)
   * For a statement of the form CREATE t1 SELECT integer_constant,
     the server created the column using the DECIMAL data type for
     large negative values that are within the range of BIGINT.
     (Bug#28625: http://bugs.mysql.com/28625)
   * Runtime changes to the log_queries_not_using_indexes system
     variable were ignored.
     (Bug#28808: http://bugs.mysql.com/28808)
   * Under ActiveState Perl, mysql-test-run.pl would not run.
     (Bug#18415: http://bugs.mysql.com/18415)
   * Under ActiveState Perl, mysql-test-run.pl could kill itself
     when attempting to kill other processes.
     (Bug#25657: http://bugs.mysql.com/25657)
   * Assertion failure could occur for grouping queries that
     employed DECIMAL user variables with assignments to them.
     (Bug#29417: http://bugs.mysql.com/29417)
   * For CAST(expr AS DECIMAL(M,D)), the limits of 65 and 30 on the
     precision (M) and scale (D) were not enforced.
     (Bug#29415: http://bugs.mysql.com/29415)
   * Corrupt data resulted from use of SELECT ... INTO OUTFILE
     'file_name' FIELDS ENCLOSED BY 'c', where c is a digit or
     minus sign, followed by LOAD DATA INFILE 'file_name' FIELDS
     ENCLOSED BY 'c'. (Bug#29442: http://bugs.mysql.com/29442)
   * AsText() could fail with a buffer overrun.
     (Bug#29166: http://bugs.mysql.com/29166)
   * Inserting into InnoDB tables and executing RESET MASTER in
     multiple threads cause assertion failure in debug server
     binaries. (Bug#28983: http://bugs.mysql.com/28983)
   * The index merge union access algorithm could produce incorrect
     results with InnoDB tables. The problem could also occur for
     queries that used DISTINCT.
     (Bug#25798: http://bugs.mysql.com/25798)
   * Results for a select query that aliases the column names
     against a view could duplicate one column while omitting
     another. This bug could occur for a query over a
     multiple-table view that includes an ORDER BY clause in its
     definition. (Bug#29392: http://bugs.mysql.com/29392)
   * gcov coverage-testing information was not written if the
     server crashed. (Bug#29543: http://bugs.mysql.com/29543)
   * FULLTEXT indexes could be corrupted by certain gbk characters.
     (Bug#29299: http://bugs.mysql.com/29299)
   * REPLACE, INSERT IGNORE, and UPDATE IGNORE did not work for
     FEDERATED tables. (Bug#29019: http://bugs.mysql.com/29019)
   * CHECK TABLE for ARCHIVE tables could falsely report table
     corruption or cause a server crash.
     (Bug#29207: http://bugs.mysql.com/29207)
   * SELECT ... FOR UPDATE with partitioned tables could cause a
     server crash. (Bug#28026: http://bugs.mysql.com/28026)
   * Updates to rows in a partitioned table could update the wrong
     column. (Bug#26827: http://bugs.mysql.com/26827)
   * Updates to a CSV table could cause a server crash or update
     the table with incorrect values.
     (Bug#28971: http://bugs.mysql.com/28971)
   * Dropping a user-defined function could cause a server crash if
     the function was still in use by another thread.
     (Bug#27564: http://bugs.mysql.com/27564)
   * The server crashed when the size of an ARCHIVE table grew
     larger than 2GB. (Bug#15787: http://bugs.mysql.com/15787)
   * An assertion failure occurred if a query contained a
     conjunctive predicate of the form view_column = constant in
     the WHERE clause and the GROUP BY clause contained a reference
     to a different view column. The fix also enables application
     of an optimization that was being skipped if a query contained
     a conjunctive predicate of the form view_column = constant in
     the WHERE clause and the GROUP BY clause contained a reference
     to the same view column.
     (Bug#29104: http://bugs.mysql.com/29104)
   * Replication of partitioned tables using the InnoDB storage
     engine failed with binlog-format=ROW or binlog-format=MIXED.
     (Bug#28430: http://bugs.mysql.com/28430)
   * If a storage engine has its own logging capability, then any
     statement using both this engine and some other engine not
     having its own logging could not be correctly logged, due to
     the fact that entries from one engine could be logged before
     entries from the other engine were. This did not generate any
     error messages when it occurred.
     Now, if multiple storage engines are used in a statement and
     at least one of them has its own logging capability, then an
     error message is generated and the statement is not executed.
     (Bug#28722: http://bugs.mysql.com/28722)
     Note:
     Currently, the only storage engine to have its own logging
     capability is NDBCLUSTER.
   * Using the READ COMMITTED transaction isolation level caused
     mixed and statement-based replication to fail.
     (Bug#23051: http://bugs.mysql.com/23051)
   * The server returned data from SHOW CREATE TABLE statement or a
     SELECT statement on an INFORMATION_SCHEMA table using the
     binarycharacterset.(Bug#10491: http://bugs.mysql.com/10491)
   * Mixing binary and utf8 columns in a union caused field lengths
     to be calculated incorrectly, resulting in truncation.
     (Bug#29205: http://bugs.mysql.com/29205)
   * LOCK TABLES was not atomic when more than one InnoDB tables
     were locked. (Bug#29154: http://bugs.mysql.com/29154)
   * Queries that performed a lookup into a BINARY index containing
     key values ending with spaces caused an assertion failure for
     debug builds and incorrect results for non-debug builds.
     (Bug#29087: http://bugs.mysql.com/29087)
   * Selecting a column not present in the selected-from table
     caused an extra error to be produced by SHOW ERRORS.
     (Bug#28677: http://bugs.mysql.com/28677)
   * If an INSERT INTO ... SELECT statement inserted into the same
     table that the SELECT retrieved from, and the SELECT included
     ORDER BY and LIMIT clauses, different data was inserted than
     the data produced by the SELECT executed by itself.
     (Bug#29095: http://bugs.mysql.com/29095)
   * On 64-bit Windows systems, the Config Wizard failed to
     complete the setup because 64-bit Windows does not resolve
     dynamic linking of the 64-bit libmysql.dll to a 32-bit
     application like the Config Wizard.
     (Bug#14649: http://bugs.mysql.com/14649)
   * For a join with GROUP BY and/or ORDER BY and a view reference
     in the FROM list, the query metadata erroneously showed empty
     table aliases and database names for the view columns.
     (Bug#28898: http://bugs.mysql.com/28898)
   * For a ucs2 column, GROUP_CONCAT() did not convert separators
     to the result character set before inserting them, producing a
     result containing a mixture of two different character sets.
     (Bug#28925: http://bugs.mysql.com/28925)
   * Index-based range reads could fail for comparisons that
     involved contraction characters (such as ch in Czech or ll in
     Spanish). (Bug#27345: http://bugs.mysql.com/27345)
   * The Windows implementation of pthread_join() was incorrect and
     could cause crashes. (Bug#26564: http://bugs.mysql.com/26564)
   * Sort order of the collation wasn't used when comparing
     trailing spaces. This could lead to incorrect comparison
     results, incorrectly created indexes, or incorrect result set
     order for queries that include an ORDER BY clause.
     (Bug#29261: http://bugs.mysql.com/29261)
   * Many threads accessing a CSV table simultaneously could cause
     anassertionfailure.(Bug#29252: http://bugs.mysql.com/29252)
   * mysqlbinlog --hexdump generated incorrect output due to
     omission of the `#' comment character for some comment lines.
     (Bug#28293: http://bugs.mysql.com/28293)
   * Index creation could corrupt the table definition in the .frm
     file: 1) A table with the maximum number of key segments and
     maximum length key name would have a corrupted .frm file, due
     to incorrect calculation of the total key length. 2) MyISAM
     would reject a table with the maximum number of keys and the
     maximum number of key segments in all keys. (It would allow
     one less than this total maximum.) Now MyISAM accepts a table
     defined with the maximum.
     (Bug#26642: http://bugs.mysql.com/26642)
   * Dropping the definer of an active event caused the server to
     crash. (Bug#28924: http://bugs.mysql.com/28924)
   * Executing ALTER EVENT on an event whose definer's event
     creation privileges had been revoked cause the server to
     crash. (Bug#28873: http://bugs.mysql.com/28873)
   * Creating an event using ON SCHEDULE AT CURRENT_TIMESTAMP +
     INTERVAL ... could in some cases cause mysqld to crash.
     (Bug#28881: http://bugs.mysql.com/28881)
   * Under some circumstances, a SELECT ... FROM mysql.event could
     cause the server to crash.
     (Bug#29156: http://bugs.mysql.com/29156)
   * Some functions when used in partitioning expressions could
     cause mysqld to crash.
     (Bug#27084: http://bugs.mysql.com/27084)
   * The SUBSTRING() function returned the the entire string
     instead of an empty string when it was called from a stored
     procedure and when the length parameter was specified by a
     variable with the value `0'.
     (Bug#27130: http://bugs.mysql.com/27130)
   * The LOCATE() function returned NULL if any of its arguments
     evaluated to NULL. Likewise, the predicate, LOCATE(str,NULL)
     IS NULL, erroneously evaluated to FALSE.
     (Bug#27932: http://bugs.mysql.com/27932)
   * A query with DISTINCT in the select list to which the
     loose-scan optimization for grouping queries was applied
     returned an incorrect result set when the query was used with
     the SQL_BIG_RESULT option.
     (Bug#25602: http://bugs.mysql.com/25602)
   * A network structure was initialized incorrectly, leading to
     embedded server crashes.
     (Bug#29117: http://bugs.mysql.com/29117)
   * Fixed a case of unsafe aliasing in the source that caused a
     client library crash when compiled with gcc 4 at high
     optimization levels. (Bug#27383: http://bugs.mysql.com/27383)

Enjoy !
Joerg

--
Joerg Bruehe, Senior Production Engineer
MySQL AB, www.mysql.com

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql