List:Announcements« Previous MessageNext Message »
From:Joerg Bruehe Date:August 29 2007 4:56pm
Subject:MySQL 5.1.21-beta has been released
View as plain text  
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


Thread
MySQL 5.1.21-beta has been releasedJoerg Bruehe29 Aug