Dear MySQL users,

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

Bear in mind that this is a beta release, and as 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, pay attention to the product description of
MySQL Enterprise at:

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

The MySQL 5.1.17 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.

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

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


Functionality added or changed:
  * Incompatible change: The INFORMATION_SCHEMA.EVENTS and
    mysql.event tables have been changed to facilitate replication
    of events. When upgrading to MySQL 5.1.18, you must run
    mysql_upgrade prior to working with events. Until you have
    done so, any statement relating to the Event Scheduler or
    these tables (including SHOW EVENTS) will fail with the errors
    Expected field status at position 12 to have type enum
    ('ENABLED','SLAVESIDE_DISABLED','DISABLED'), found
    enum('ENABLED','DISABLED') and Table mysql.event is damaged.
    Can not open.
    These changes were made as part of fixes for the following
    bugs:
       + The effects of scheduled events were not replicated (that
         is, binary logging of scheduled events did not work).
         (Bug#16421: http://bugs.mysql.com/16421,
         Bug#17857: http://bugs.mysql.com/17857)
       + Effects of scheduled events on a replication master were
         both replicated and executed on the slave, causing double
         execution of events.
         (Bug#20384: http://bugs.mysql.com/20384)
       + CREATE FUNCTION statements and their effects were not
         replicated correctly.
         (Bug#17671: http://bugs.mysql.com/17671)
    For more information, see Section 6.3.1.4, "Replication of
    Invoked Features."
  * The plugin interface and its handling of server variables was
    changed:
    Command line options such as '--skip-innodb' will now cause an error
    if InnoDB is not built-in/plugin-loaded. Users should use
    '--loose-skip-innodb' if they do not want any error even if InnoDB
    is not available. The 'loose' prefix modifier should be used for all
    command line options where the user is uncertain if the plugin
    exists and where they want operation to proceed even if the option
    is neccessarily ignored due to the absence of the plugin.
  * New command line options: In order to alleviate ambiguities in
    variable names, all variables related to plugins can be specified
    using a 'plugin' part in the name. For example, every time where we
    used to have 'innodb' in the command-line options, one can now write
    'plugin-innodb':
         --skip-plugin-innodb
         --plugin-innodb-buffer-pool-size=#
    Furthermore, this is the preferred syntax. It helps to avoid
    ambiguities when a plugin, say, "wait", has an options called
    "timeout".  '--wait-timeout' will still set a server variable, but
    '--plugin-wait-timeout' will set the plugin variable.
    Also, there is a new command line option '--plugin-load' to
    install/load plugins at initialization time without using the
    mysql.plugin table.
  * Storage engine plugins may now be uninstalled at run time - however,
    a plugin is not actually uninstalled until after its reference
    count drops to zero. The 'default_storage_engine' server variable
    consumes a reference count, so uninstalling will not complete until
    said reference is removed.
  * The output of mysql --xml and mysqldump --xml now includes a
    valid XML namespace. (Bug#25946: http://bugs.mysql.com/25946)
  * The mysql_create_system_tables script was removed because
    mysql_install_db no longer uses it in MySQL 5.1.
  * Renamed the old_mode system variable to old.
  * If you use SSL for a client connection, you can tell the
    client not to authenticate the server certificate by
    specifying neither --ssl-ca nor --ssl-capath. The server still
    verifies the client according to any applicable requirements
    established via GRANT statements for the client, and it still
    uses any --ssl-ca/--ssl-capath values that were passed to
    server at startup time.
    (Bug#25309: http://bugs.mysql.com/25309)
  * Added a MASTER_SSL_VERIFY_SERVER_CERT option for the CHANGE
    MASTER statement, and a Master_SSL_Verify_Server_Cert output
    column to the SHOW SLAVE STATUS statement. The option value
    also is written to the master.info file.
    (Bug#19991: http://bugs.mysql.com/19991)
  * NDB Cluster (APIs): The MGM API now supports explicit setting
    of network timeouts using the ndb_mgm_set_timeout() function.
    A utility function ndb_mgm_number_of_mgmd_in_connect_string()
    is also implemented to facilitate calculation of timeouts
    based on the number of management servers in the cluster.
    For more information, see ndb_mgm_set_timeout()
    (http://dev.mysql.com/doc/ndbapi/en/ndb-mgm-set-timeout.html),
    and ndb_mgm_number_of_mgmd_in_connect_string()
    (http://dev.mysql.com/doc/ndbapi/en/ndb-mgm-number-of-mgmd-in-
    connect-string.html).
  * NDB Cluster: The behavior of the ndb_restore utility has been
    changed as follows:
       + It is now possible to restore selected databases or
         tables using ndb_restore.
         (Bug#26899: http://bugs.mysql.com/26899)
       + Several options have been added for use with ndb_restore
         --print_data to facilitate the creation of structured
         data dump files. These options can be used to make dumps
         made using ndb_restore more like those produced by
         mysqldump. (Bug#26900: http://bugs.mysql.com/26900)
    For details of these changes, see Section 15.9.3, "ndb_restore
    --- Restore a Cluster Backup."
  * NDB Cluster (Replication)/Incompatible Change: The definition
    of the mysql.ndb_apply_status table has changed such that an
    online upgrade is not possible from MySQL 5.1.17 or earlier
    for a replication slave cluster; you must shut down all SQL
    nodes as part of the upgrade procedure. See Section 15.6.2,
    "Cluster Upgrade and Downgrade Compatibility" before upgrading
    for details.
    For more information about the changes to
    mysql.ndb_apply_status see Section 15.11.4, "Cluster
    Replication Schema and Tables."
  * NDB Cluster (Replication): Some circular replication setups
    are now supported for MySQL Cluster. See Section 15.11.3,
    "Known Issues," for detailed information.
    (Bug#25688: http://bugs.mysql.com/25688,
    Bug#17095: http://bugs.mysql.com/17095)
  * NDB Cluster: The following changes were made for the
    ndb_size.pl utility:
       + When ndb_size.pl calculates a value for a given
         configuration parameter that is less than the default
         value, it now suggests the default value instead.
         (Bug#24227: http://bugs.mysql.com/24227)
       + The dependency on HTML::Template was removed.
         (Bug#24228: http://bugs.mysql.com/24228)
  * Several additional data types are supported for columns in
    INFORMATION_SCHEMA tables: DATE, TIME, BLOB, FLOAT, and all
    integer types. (Bug#27047: http://bugs.mysql.com/27047)
  * NDB Cluster: The internal specifications for columns in NDB
    tables has changed to allow compatibility with future MySQL
    Cluster releases that are expected to implement online adding
    and dropping of columns. This change is not backwards
    compatible with earlier MySQL versions.
    See [1]the related note in Section 15.6.2, "Cluster Upgrade
    and Downgrade Compatibility," for important information prior
    to upgrading a MySQL Cluster to MySQL 5.1.18 or later from
    MySQL 5.1.17 or earlier.
    See also Bug#28205: http://bugs.mysql.com/28205.
  * If a set function S with an outer reference S(outer_ref)
    cannot be aggregated in the outer query against which the
    outer reference has been resolved, MySQL interprets
    S(outer_ref) the same way that it would interpret S(const).
    However, standard SQL requires throwing an error in this
    situation. An error now is thrown for such queries if the ANSI
    SQL mode is enabled. (Bug#27348: http://bugs.mysql.com/27348)


Bugs fixed:
  * Security fix: If a stored routine was declared using SQL
    SECURITY INVOKER, a user who invoked the routine could gain
    privileges. (Bug#27337: http://bugs.mysql.com/27337)
  * Security fix: The requirement of the DROP privilege for RENAME
    TABLE was not being enforced.
    (Bug#27515: http://bugs.mysql.com/27515)
  * Security fix: A user with only the ALTER privilege on a
    partitioned table could obtain information about the table
    that should require the SELECT privilege.
    (Bug#23675: http://bugs.mysql.com/23675)
  * The patches for Bug#19370: http://bugs.mysql.com/19370 and
    Bug#21789: http://bugs.mysql.com/21789 were reverted.
  * ON DUPLICATE KEY UPDATE failed for a table partitioned by KEY
    on a primary key VARCHAR column.
    (Bug#27123: http://bugs.mysql.com/27123)
  * NDB Cluster (Disk Data): It was possible to drop the last
    remaining datafile in a tablespace (using an ALTER TABLESPACE
    statement), even though there was still an empty table using
    the tablespace. (Bug#21699: http://bugs.mysql.com/21699)
    It should be noted that the datafile could be not dropped if
    the table still contained any rows, so this bug involved no
    loss of data.
  * NDB Cluster: INSERT IGNORE wrongly ignored NULL values in
    unique indexes. (Bug#27980: http://bugs.mysql.com/27980)
  * NDB Cluster: The name of the month "March" was given
    incorrectly in the cluster error log.
    (Bug#27926: http://bugs.mysql.com/27926)
  * NDB Cluster (Cluster Replication / Disk Data): An issue with
    replication of Disk Data tables could in some cases lead to
    node failure. (Bug#28161: http://bugs.mysql.com/28161)
  * NDB Cluster (APIs): For BLOB reads on operations with lock
    mode LM_CommittedRead, the lock mode was not upgraded to
    LM_Read before the state of the BLOB had already been
    calculated. The NDB API methods affected by this problem
    included the following:
       + NdbOperation::readTuple()
       + NdbScanOperation::readTuples()
       + NdbIndexScanOperation::readTuples()
    (Bug#27320: http://bugs.mysql.com/27320)
  * NDB Cluster (Disk Data): Setting the value of the UNDO BUFFER
    SIZE to 64K or less in a CREATE LOGFILE GROUP statement led to
    failure of cluster data nodes.
    (Bug#24560: http://bugs.mysql.com/24560)
  * NDB Cluster: The cluster waited 30 seconds instead of 30
    milliseconds before reading table statistics.
    (Bug#28093: http://bugs.mysql.com/28093)
  * NDB Cluster: It was not possible to add a unique index to an
    NDB table while in single user mode.
    (Bug#27710: http://bugs.mysql.com/27710)
  * NDB Cluster: Performing a delete followed by an insert during
    a local checkpoint could cause a Rowid already allocated
    error. (Bug#27205: http://bugs.mysql.com/27205)
  * NDB Cluster (Disk Data): When restarting a data node following
    the creation of a large number (~200) of Disk Data objects,
    the cluster could not assign a node ID to the restarting node.
    (Bug#25741: http://bugs.mysql.com/25741)
  * NDB Cluster: Adding of indexes online failed for NDB tables
    having BLOB or TEXT columns.
    (Bug#25431: http://bugs.mysql.com/25431)
  * NDB Cluster: The ndb_resize.pl utility did not calculate
    memory usage for indexes correctly.
    (Bug#24229: http://bugs.mysql.com/24229)
  * NDB Cluster: While a data node was stopped, dropping a table
    then creating an index on a different table caused that node
    to fail during restart. This was due to the re-use of the
    dropped table's internal ID for the index without verifying
    that the index now referred to a different database object.
    (Bug#21755: http://bugs.mysql.com/21755)
  * NDB Cluster (Disk Data): When in single user mode, it was
    possible to create log file groups and tablespaces from any
    SQL node connected to the cluster.
    (Bug#27712: http://bugs.mysql.com/27712)
  * NDB Cluster (Disk Data): Changing a column specification or
    issuing a TRUNCATE statement on a Disk Data table caused the
    table to become an in-memory table.
    (Bug#24667: http://bugs.mysql.com/24667,
    Bug#25296: http://bugs.mysql.com/25296)
    This fix supersedes an incomplete fix that was made for this
    issue in MySQL 5.1.15.
  * NDB Cluster (Replication): Setting SQL_LOG_BIN to zero did not
    disable binary logging.
    (Bug#27076: http://bugs.mysql.com/27076)
    This issue affected only the NDB storage engine.
  * NDB Cluster (Replication): It was possible for API nodes to
    begin interacting with the cluster subscription manager before
    they were fully connected to the cluster.
    (Bug#27651: http://bugs.mysql.com/27651)
  * NDB Cluster (Replication): Under very high loads, checkpoints
    could be read or written with checkpoint indexes out of order.
    (Bug#27651: http://bugs.mysql.com/27651)
  * NDB Cluster: NDB tables having MEDIUMINT AUTO_INCREMENT
    columns were not restored correctly by ndb_restore, causing
    spurious duplicate key errors. This issue did not affect
    TINYINT, INT, or BIGINT columns with AUTO_INCREMENT.
    (Bug#27775: http://bugs.mysql.com/27775)
  * NDB Cluster: NDB tables with indexes whose names contained
    space characters were not restored correctly by ndb_restore
    (the index names were truncated).
    (Bug#27758: http://bugs.mysql.com/27758)
  * NDB Cluster (Disk Data): Changes to a Disk Data table made as
    part of a transaction could not be seen by the client
    performing the changes until the transaction had been
    committed. (Bug#27757: http://bugs.mysql.com/27757)
  * NDB Cluster: An INSERT followed a delete DELETE on the same
    NDB table caused a memory leak.
    (Bug#27756: http://bugs.mysql.com/27756)
    (This bug was introduced by the fix for
    Bug#20612: http://bugs.mysql.com/20612.)
  * NDB Cluster: Some queries that updated multiple tables were
    not backed up or replicated correctly.
    (Bug#27748: http://bugs.mysql.com/27748)
  * NDB Cluster: Joins on multiple tables containing BLOB columns
    could cause data nodes run out of memory, and to crash with
    the error NdbObjectIdMap::expand unable to expand.
    (Bug#26176: http://bugs.mysql.com/26176)
  * NDB Cluster: When trying to create an NDB table after the
    server was started with --ndbcluster but without
    --ndb-connectstring, mysqld produced a memory allocation
    error. (Bug#27359: http://bugs.mysql.com/27359)
  * NDB Cluster (APIs): Using NdbBlob::writeData() to write data
    in the middle of an existing blob value (that is, updating the
    value) could overwrite some data past the end of the data to
    be changed. (Bug#27018: http://bugs.mysql.com/27018)
  * NDB Cluster (Replication): Trying to replicate a large number
    of frequent updates with a relatively small relay log
    (max-relay-log-size set to 1M or less) could cause the slave
    to crash. (Bug#27529: http://bugs.mysql.com/27529)
  * NDB Cluster (Replication): An SQL node acting as a replication
    master server could be a single point of failure; that is, if
    it failed, the replication slave had no way of knowing this,
    which could result in a mismatch of data between the master
    and the slave. (Bug#21494: http://bugs.mysql.com/21494)
  * NDB Cluster (Disk Data): CREATE TABLE ... LIKE disk_data_table
    created an in-memory NDB table.
    (Bug#25875: http://bugs.mysql.com/25875)
  * NDB Cluster (Disk Data): Creating an excessive number of data
    files for a single tablespace caused data nodes to crash.
    (Bug#24521: http://bugs.mysql.com/24521)
  * NDB Cluster: Under certain rare circumstances, DROP TABLE or
    TRUNCATE of an NDB table could cause a node failure or forced
    cluster shutdown. (Bug#27581: http://bugs.mysql.com/27581)
  * NDB Cluster: Memory usage of a mysqld process grew even while
    idle. (Bug#27560: http://bugs.mysql.com/27560)
  * NDB Cluster: Using more than 16GB for DataMemory caused
    problems with variable-size columns.
    (Bug#27512: http://bugs.mysql.com/27512)
  * NDB Cluster: In an NDB table having a TIMESTAMP column using
    DEFAULT CURRENT_TIMESTAMP, that column would assume a random
    value when another column in the same row was updated.
    (Bug#27127: http://bugs.mysql.com/27127)
  * NDB Cluster: Performing ALTER TABLE ... ENGINE=MERGE on an NDB
    table caused mysqld to crash.
    (Bug#26898: http://bugs.mysql.com/26898)
  * NDB Cluster: The Cluster table handler did not set bits in
    null bytes correctly. (Bug#26591: http://bugs.mysql.com/26591)
  * NDB Cluster: In some cases, AFTER UPDATE and AFTER DELETE
    triggers on NDB tables that referenced subject table did not
    see the results of operation which caused invocation of the
    trigger, but rather saw the row as it was prior to the update
    or delete operation.
    This was most noticeable when an update operation used a
    subquery to obtain the rows to be updated. An example would be
    UPDATE tbl1 SET col2 = val1 WHERE tbl1.col1 IN (SELECT col3
    FROM tbl2 WHERE c4 = val2) where there was an AFTER UPDATE
    trigger on table tbl1. In such cases, the trigger would fail
    to execute.
    The problem occurred because the actual update or delete
    operations were deferred to be able to perform them later as
    one batch. The fix for this bug solves the problem by
    disabling this optimization for a given update or delete if
    the table has an AFTER trigger defined for this operation.
    (Bug#26242: http://bugs.mysql.com/26242)
  * NDB Cluster: START BACKUP NOWAIT caused a spurious Out of
    backup record error in the management client (START BACKUP and
    START BACKUP WAIT STARTED performed normally).
    (Bug#25446: http://bugs.mysql.com/25446)
  * NDB Cluster: When trying to create tables on an SQL node not
    connected to the cluster, a misleading error message Table
    'tbl_name' already exists was generated. The error now
    generated is Could not connect to storage engine.
    (Bug#18676: http://bugs.mysql.com/18676)
  * NDB Cluster: A data node failing while another data node was
    restarting could leave the cluster in an inconsistent state.
    In certain rare cases, this could lead to a race condition and
    the eventual forced shutdown of the cluster.
    (Bug#27466: http://bugs.mysql.com/27466)
  * NDB Cluster: When using the MemReportFrequency configuration
    parameter to generate periodic reports of memory usage in the
    cluster log, DataMemory usage was not always reported for all
    data nodes. (Bug#27444: http://bugs.mysql.com/27444)
  * NDB Cluster: Error messages displayed when running in single
    user mode were inconsistent.
    (Bug#27021: http://bugs.mysql.com/27021)
  * NDB Cluster: On Solaris, the value of an NDB table column
    declared as BIT(33) was always displayed as 0.
    (Bug#26986: http://bugs.mysql.com/26986)
  * NDB Cluster (Replication): An UPDATE on the master became a
    DELETE on slaves. (Bug#27378: http://bugs.mysql.com/27378)
  * The fix for Bug#17212: http://bugs.mysql.com/17212 provided
    correct sort order for misordered output of certain queries,
    but caused significant overall query performance degradation.
    (Results were correct (good), but returned much more slowly
    (bad).) The fix also affected performance of queries for which
    results were correct. The performance degradation has been
    addressed. (Bug#27531: http://bugs.mysql.com/27531)
  * On Windows, connection handlers did not properly decrement the
    server's thread count when exiting.
    (Bug#25621: http://bugs.mysql.com/25621)
  * SELECT COUNT(*) from a table containing a DATETIME NOT NULL
    column could produce spurious warnings with the NO_ZERO_DATE
    SQL mode enabled. (Bug#22824: http://bugs.mysql.com/22824)
  * Nested aggregate functions could be improperly evaluated.
    (Bug#27363: http://bugs.mysql.com/27363)
  * Using CAST() to convert DATETIME values to numeric values did
    not work. (Bug#23656: http://bugs.mysql.com/23656)
  * Early NULL-filtering optimization did not work for eq_ref
    table access. (Bug#27939: http://bugs.mysql.com/27939)
  * Non-grouped columns were allowed by * in ONLY_FULL_GROUP_BY
    SQL mode. (Bug#27874: http://bugs.mysql.com/27874)
  * Debug builds on Windows generated false alarms about
    uninitialized variables with some Visual Studio runtime
    libraries. (Bug#27811: http://bugs.mysql.com/27811)
  * An error message suggested the use of
    mysql_fix_privilege_tables after an upgrade, but the
    recommended program is now mysql_upgrade.
    (Bug#27818: http://bugs.mysql.com/27818)
  * mysqld did not check the length of option values and could
    crash with a buffer overflow for long values.
    (Bug#27715: http://bugs.mysql.com/27715)
  * Index hints (USE INDEX, IGNORE INDEX, FORCE INDEX) cannot be
    used with FULLTEXT indexes, but were not being ignored.
    (Bug#25951: http://bugs.mysql.com/25951)
  * mysql_upgrade did not detect failure of external commands that
    it runs. (Bug#26639: http://bugs.mysql.com/26639)
  * mysql_upgrade did not pass a password to mysqlcheck if one was
    given. (Bug#25452: http://bugs.mysql.com/25452)
  * On Windows, mysql_upgrade was sensitive to lettercase of the
    names of some required components.
    (Bug#25405: http://bugs.mysql.com/25405)
  * The result set of a query that used WITH ROLLUP and DISTINCT
    could lack some rollup rows (rows with NULL values for
    grouping attributes) if the GROUP BY list contained constant
    expressions. (Bug#24856: http://bugs.mysql.com/24856)
  * Some upgrade problems are detected and better error messages
    suggesting that mysql_upgrade be run are produced.
    (Bug#24248: http://bugs.mysql.com/24248)
  * A performance degradation was observed for outer join queries
    to which a not-exists optimization was applied.
    (Bug#28188: http://bugs.mysql.com/28188)
  * The LEAST() and GREATEST() functions compared DATE and
    DATETIME values as strings, which in some cases could lead to
    an incorrect result. (Bug#27759: http://bugs.mysql.com/27759)
  * SELECT * INTO OUTFILE ... FROM INFORMATION_SCHEMA.schemata
    failed with an Access denied error, even for a user who has
    the FILE privilege. (Bug#28181: http://bugs.mysql.com/28181)
  * Certain queries that used uncorrelated scalar subqueries
    caused EXPLAIN to to crash.
    (Bug#27807: http://bugs.mysql.com/27807)
  * INSERT...ON DUPLICATE KEY UPDATE could cause Error 1032: Can't
    find record in ... for inserts into an InnoDB table unique
    index using key column prefixes with an underlying utf8 string
    column. (Bug#13191: http://bugs.mysql.com/13191)
  * On Linux, the server could not create temporary tables if
    lower_case_table_names was set to 1 and the value of tmpdir
    was a directory name containing any uppercase letters.
    (Bug#27653: http://bugs.mysql.com/27653)
  * A slave that used --master-ssl-cipher could not connect to the
    master. (Bug#21611: http://bugs.mysql.com/21611)
  * mysqldump crashed if it got no data from SHOW CREATE PROCEDURE
    (for example, when trying to dump a routine defined by a
    different user and for which the current user had no
    privileges). Now it prints a comment to indicate the problem.
    It also returns an error, or continues if the --force option
    is given. (Bug#27293: http://bugs.mysql.com/27293)
  * Several math functions produced incorrect results for large
    unsigned values. ROUND() produced incorrect results or a crash
    for a large number-of-decimals argument.
    (Bug#24912: http://bugs.mysql.com/24912)
  * For storage engines that allow the current auto-increment
    value to be set, using ALTER TABLE ... ENGINE to convert a
    table from one such storage engine to another caused loss of
    the current value. (For storage engines that do not support
    setting the value, it cannot be retained anyway when changing
    the storage engine.) (Bug#25262: http://bugs.mysql.com/25262)
  * Comparison of a DATE with a DATETIME did not treat the DATE as
    having a time part of 00:00:00.
    (Bug#27590: http://bugs.mysql.com/27590)
  * A multiple-table UPDATE could return an incorrect rows-matched
    value if, during insertion of rows into a temporary table, the
    table had to be converted from a MEMORY table to a MyISAM
    table. (Bug#22364: http://bugs.mysql.com/22364)
  * The omission of leading zeros in dates could lead to erroneous
    results when these were compared with the output of certain
    date and time functions.
    (Bug#16377: http://bugs.mysql.com/16377)
  * If CREATE TABLE t1 LIKE t2 failed due to a full disk, an empty
    t2.frm file could be created but not removed. This file then
    caused subsequent attempts to create a table named t2 to fail.
    This is easily corrected at the filesystem level by removing
    the t2.frm file manually, but now the server removes the file
    if the create operation does not complete successfully.
    (Bug#25761: http://bugs.mysql.com/25761)
  * The MERGE storage engine could return incorrect results when
    several index values that compare equality were present in an
    index (for example, 'gross' and 'gross ', which are considered
    equal but have different lengths).
    (Bug#24342: http://bugs.mysql.com/24342)
  * For InnoDB tables, a multiple-row INSERT of the form INSERT
    INTO t (id...) VALUES (NULL...) ON DUPLICATE KEY UPDATE
    id=VALUES(id), where id is an AUTO_INCREMENT column, could
    cause ERROR 1062 (23000): Duplicate entry... errors or lost
    rows. (Bug#27650: http://bugs.mysql.com/27650)
  * mysql_install_db is supposed to detect existing system tables
    and create only those that do not exist. Instead, it was
    exiting with an error if tables already existed.
    (Bug#27783: http://bugs.mysql.com/27783)
  * Failure to allocate memory associated with
    transaction_prealloc_size could cause a server crash.
    (Bug#27322: http://bugs.mysql.com/27322)
  * Aborting a statement on the master that applied to a
    non-transactional statement broke replication. The statement
    was written to the binary log but not completely executed on
    the master. Slaves receiving the statement executed it
    completely, resulting in loss of data synchrony. Now an error
    code is written to the error log so that the slaves stop
    without executing the aborted statement. (That is, replication
    stops, but synchrony to the point of the stop is preserved and
    you can investigate the problem.)
    (Bug#26551: http://bugs.mysql.com/26551)
  * The AUTO_INCREMENT value would not be correctly reported for
    InnoDB tables when using SHOW CREATE TABLE statement or
    mysqldump command. (Bug#23313: http://bugs.mysql.com/23313)
  * Creating a temporary table with InnoDB when using the
    one-file-per-table setting, when the host filesystem for
    temporary tables is tmpfs would cause an assertion in mysqld.
    This was due to the use of O_DIRECT when opening the temporary
    table file. (Bug#26662: http://bugs.mysql.com/26662)
  * An interaction between SHOW TABLE STATUS and other concurrent
    statements that modify the table could result in a
    divide-by-zero error and a server crash.
    (Bug#27516: http://bugs.mysql.com/27516)
  * The decimal.h header file was incorrectly omitted from binary
    distributions. (Bug#27456: http://bugs.mysql.com/27456)
  * mysqldump could not connect using SSL.
    (Bug#27669: http://bugs.mysql.com/27669)
  * yaSSL crashed on pre-Pentium Intel CPUs.
    (Bug#21765: http://bugs.mysql.com/21765)
  * The test for the MYSQL_OPT_SSL_VERIFY_SERVER_CERT option for
    mysql_options() was performed incorrectly. Also changed as a
    result of this bugfix: The arg option for the mysql_options()
    C API function was changed from char * to void *.
    (Bug#24121: http://bugs.mysql.com/24121)
  * Comparisons using row constructors could fail for rows
    containing NULL values.
    (Bug#27704: http://bugs.mysql.com/27704)
  * Performing a UNION on two views that had had ORDER BY clauses
    resulted in an Unknown column error.
    (Bug#27786: http://bugs.mysql.com/27786)
  * The CRC32() function returns an unsigned integer, but the
    metadata was signed, which could cause certain queries to
    return incorrect results. (For example, queries that selected
    a CRC32() value and used that value in the GROUP BY clause.)
    (Bug#27530: http://bugs.mysql.com/27530)
  * A race condition between DROP TABLE and SHOW TABLE STATUS
    could cause the latter to display incorrect information.
    (Bug#27499: http://bugs.mysql.com/27499)
  * mysqldump would not dump a view for which the DEFINER no
    longer exists. (Bug#26817: http://bugs.mysql.com/26817)
  * Changing a utf8 column in an InnoDB table to a shorter length
    did not shorten the data values.
    (Bug#20095: http://bugs.mysql.com/20095)
  * The server did not shut down cleanly.
    (Bug#27310: http://bugs.mysql.com/27310)
  * Using SET GLOBAL to change the lc_time_names system variable
    had no effect on new connections.
    (Bug#22648: http://bugs.mysql.com/22648)
  * The XML output representing an empty result was an empty
    string rather than an empty <resultset/> element.
    (Bug#27608: http://bugs.mysql.com/27608)
  * The range optimizer could consume a combinatorial amount of
    memory for certain classes of WHERE clauses.
    (Bug#26624: http://bugs.mysql.com/26624)
  * mysqlbinlog produced different output with the -R option than
    without it. (Bug#27171: http://bugs.mysql.com/27171)
  * A stored function invocation in the WHERE clause was treated
    as a constant. (Bug#27354: http://bugs.mysql.com/27354)
  * mysqldump could not dump the log tables.
    (Bug#26121: http://bugs.mysql.com/26121)
  * Implicit conversion of 9912101 to DATE did not match
    CAST(9912101 AS DATE).
    (Bug#23093: http://bugs.mysql.com/23093)
  * CURDATE() is less than NOW(), either when comparing CURDATE()
    directly (CURDATE() < NOW() is true) or when casting CURDATE()
    to DATE (CAST(CURDATE() AS DATE) < NOW() is true). However,
    storing CURDATE() in a DATE column and comparing col_name <
    NOW() incorrectly yielded false. This is fixed by comparing a
    DATE column as DATETIME for comparisons to a DATETIME
    constant. (Bug#21103: http://bugs.mysql.com/21103)
  * For dates with 4-digit year parts less than 200, an incorrect
    implicit conversion to add a century was applied for date
    arithmetic performed with DATE_ADD(), DATE_SUB(), + INTERVAL,
    and - INTERVAL. (For example, DATE_ADD('0050-01-01 00:00:00',
    INTERVAL 0 SECOND) became '2050-01-01 00:00:00'.)
    (Bug#18997: http://bugs.mysql.com/18997)
  * Some equi-joins containing a WHERE clause that included a NOT
    IN subquery caused a server crash.
    (Bug#27870: http://bugs.mysql.com/27870)
  * A memory leak in the event scheduler that was uncovered by
    Valgrind was fixed. (Bug#27733: http://bugs.mysql.com/27733)
  * For queries that used ORDER BY with InnoDB tables, if the
    optimizer chose an index for accessing the table but found a
    covering index that enabled the ORDER BY to be skipped, no
    results were returned.
    (Bug#24778: http://bugs.mysql.com/24778)
  * Group relay log rotation updated only the log position and not
    the name, causing the slave to stop.
    (Bug#27583: http://bugs.mysql.com/27583)
  * Conversion of DATETIME values in numeric contexts sometimes
    did not produce a double (YYYYMMDDHHMMSS.uuuuuu) value.
    (Bug#16546: http://bugs.mysql.com/16546)
  * Passing nested row expressions with different structures to an
    IN predicate caused a server crash.
    (Bug#27484: http://bugs.mysql.com/27484)
  * SELECT DISTINCT could return incorrect results if the select
    list contained duplicated columns.
    (Bug#27659: http://bugs.mysql.com/27659)
  * A subquery could get incorrect values for references to outer
    query columns when it contained aggregate functions that were
    aggregated in outer context.
    (Bug#27321: http://bugs.mysql.com/27321)
  * In some cases, the optimizer preferred a range or full index
    scan access method over lookup access methods when the latter
    were much cheaper. (Bug#19372: http://bugs.mysql.com/19372)
  * Duplicates were not properly identified among (potentially)
    long strings used as arguments for GROUP_CONCAT(DISTINCT).
    (Bug#26815: http://bugs.mysql.com/26815)
  * For InnoDB, fixed consistent-read behavior of the first read
    statement, if the read was served from the query cache, for
    the READ COMMITTED isolation level.
    (Bug#21409: http://bugs.mysql.com/21409)
  * The binary log incompatiblity introduced by the fix for
    Bug#22583: http://bugs.mysql.com/22583 was corrected.
    (Bug#27779: http://bugs.mysql.com/27779)
  * Row-based replication of MyISAM to non-MyISAM tables did not
    work correctly for BIT columns. This has been corrected, but
    the fix introduces an incompatibility into the binary log
    format. (Bug#22583: http://bugs.mysql.com/22583) (The
    incompatibility is corrected by the fix for
    Bug#27779: http://bugs.mysql.com/27779.)
  * Duplicate members in SET definitions were not detected. Now
    they result in a warning; if strict SQL mode is enabled, an
    error occurs instead. (Bug#27069: http://bugs.mysql.com/27069)
  * If the name of a table given to myisamchk -rq was a packed
    table and the name included the .MYI extension, myisamchk
    incorrectly created a file with a .MYI.MYI extension.
    (Bug#26782: http://bugs.mysql.com/26782)
  * For INSERT INTO ... SELECT where index searches used column
    prefixes, insert errors could occur when key value type
    conversion was done. (Bug#26207: http://bugs.mysql.com/26207)
  * For SHOW ENGINE INNODB STATUS, the LATEST DEADLOCK INFORMATION
    was not always cleared properly.
    (Bug#25494: http://bugs.mysql.com/25494)
  * On Windows, if the server was installed as a service, it did
    not auto-detect the location of the data directory.
    (Bug#20376: http://bugs.mysql.com/20376)
  * The FEDERATED engine did not allow the local and remote tables
    to have different names.
    (Bug#26257: http://bugs.mysql.com/26257)
  * The NO_DIR_IN_CREATE server SQL mode was not enforced for
    partitioned tables. (Bug#24633: http://bugs.mysql.com/24633)
  * On Windows, trying to use backslash (\) characters in paths
    for DATA DIRECTORY and INDEX DIRECTORY when creating
    partitioned tables caused MySQL to crash.
    (Bug#25141: http://bugs.mysql.com/25141,
    Bug#26074: http://bugs.mysql.com/26074)
    (You must use / characters when specifying paths for these
    options, regardless of platform. See Section 16.1, "Overview
    of Partitioning in MySQL," for an example using absolute paths
    for DATA DIRECTORY and INDEX DIRECTORY when creating a
    partitioned table on Windows.)
  * A damaged or missing mysql.event table caused SHOW VARIABLES
    to fail. (Bug#23631: http://bugs.mysql.com/23631)
  * Database and table names have a maximum length of 64
    characters (even if they contain multi-byte characters), but
    were being truncated to 64 bytes.
    (Bug#21432: http://bugs.mysql.com/21432)
  * If a rotate event occured in the middle of a non-transaction
    group, the group position would be updated by the rotate event
    indicating an illegal group start position that was
    effectively inside a group. This can happen if, for example, a
    rotate occurs between an Intvar event and the associated Query
    event, or between the table map events and the rows events
    when using row-based replication.
    (Bug#23171: http://bugs.mysql.com/23171)
  * mysqldump could crash or exhibit incorrect behavior when some
    options were given very long values, such as
    --fields-terminated-by="some very long string". The code has
    been cleaned up to remove a number of fixed-sized buffers and
    to be more careful about error conditions in memory
    allocation. (Bug#26346: http://bugs.mysql.com/26346)
  * Setting a column to NOT NULL with an ON DELETE SET NULL clause
    foreign key crashes the server.
    (Bug#25927: http://bugs.mysql.com/25927)
  * The values displayed for the Innodb_row_lock_time,
    Innodb_row_lock_time_avg, and Innodb_row_lock_time_max status
    variables were incorrect.
    (Bug#23666: http://bugs.mysql.com/23666)
  * COUNT(decimal_expr) sometimes generated a spurious truncation
    warning. (Bug#21976: http://bugs.mysql.com/21976)
  * With NO_AUTO_VALUE_ON_ZERO SQL mode enabled, LOAD DATA
    operations could assign incorrect AUTO_INCREMENT values.
    (Bug#27586: http://bugs.mysql.com/27586)
  * Incorrect results could be returned for some queries that
    contained a select list expression with IN or BETWEEN together
    with an ORDER BY or GROUP BY on the same expression using NOT
    IN or NOT BETWEEN. (Bug#27532: http://bugs.mysql.com/27532)
  * For the INFORMATION_SCHEMA SESSION_STATUS and GLOBAL_STATUS
    tables, some status values were incorrectly converted to the
    data type of the VARIABLE_VALUE column.
    (Bug#27327: http://bugs.mysql.com/27327)
  * Queries containing subqueries with COUNT(*) aggregated in an
    outer context returned incorrect results. This happened only
    if the subquery did not contain any references to outer
    columns. (Bug#27257: http://bugs.mysql.com/27257)
  * Use of an aggregate function from an outer context as an
    argument to GROUP_CONCAT() caused a server crash.
    (Bug#27229: http://bugs.mysql.com/27229)
  * Restoration of the default database after stored routine or
    trigger execution on a slave could cause replication to stop
    if the database no longer existed.
    (Bug#25082: http://bugs.mysql.com/25082)
  * String truncation upon insertion into an integer or year
    column did not generate a warning (or an error in strict
    mode). (Bug#26359: http://bugs.mysql.com/26359,
    Bug#27176: http://bugs.mysql.com/27176)
  * In out-of-memory conditions, the server might crash or
    otherwise not report an error to the Windows event log.
    (Bug#27490: http://bugs.mysql.com/27490)
  * The temporary file-creation code was cleaned up on Windows to
    improve server stability.
    (Bug#26233: http://bugs.mysql.com/26233)
  * Out-of-memory errors were not reported. Now they are written
    to the error log. (Bug#26844: http://bugs.mysql.com/26844)
  * mysqldump crashed for MERGE tables if the --complete-insert
    (-c) option was given.
    (Bug#25993: http://bugs.mysql.com/25993)
  * Corrupted MyISAM tables that have different definitions in the
    .frm and .MYI tables might cause a server crash.
    (Bug#25908: http://bugs.mysql.com/25908)
  * In certain situations, MATCH ... AGAINST returned false hits
    for NULL values produced by LEFT JOIN when no full-text index
    was available. (Bug#25729: http://bugs.mysql.com/25729)
  * OPTIMIZE TABLE might fail on Windows when it attempts to
    rename a temporary file to the original name if the original
    file had been opened, resulting in loss of the .MYD file.
    (Bug#25521: http://bugs.mysql.com/25521)
  * GRANT statements were not replicated if the server was started
    with the --replicate-ignore-table or
    --replicate-wild-ignore-table option.
    (Bug#25482: http://bugs.mysql.com/25482)
  * MBROverlaps() returned incorrect values in some cases.
    (Bug#24563: http://bugs.mysql.com/24563)
  * A problem in handling of aggregate functions in subqueries
    caused predicates containing aggregate functions to be ignored
    during query execution.
    (Bug#24484: http://bugs.mysql.com/24484)
  * Improved out-of-memory detection when sending logs from a
    master server to slaves, and log a message when allocation
    fails. (Bug#26837: http://bugs.mysql.com/26837)
  * MBRDisjoint(), MBRequal(), MBRIntersects(), MBROverlaps(),
    MBRTouches(), and MBRWithin() were inadvertently omitted from
    recent versions of MySQL (5.1.14 to 5.1.17).
    (Bug#24563: http://bugs.mysql.com/24563)
  * SHOW CREATE VIEW qualified references to stored functions in
    the view definition with the function's database name, even
    when the database was the default database. This affected
    mysqldump (which uses SHOW CREATE VIEW to dump views) because
    the resulting dump file could not be used to reload the
    database into a different database. SHOW CREATE VIEW now
    suppresses the database name for references to functions in
    the default database. (Bug#23491: http://bugs.mysql.com/23491)
  * When MySQL logged slow query information to a CSV table, it
    used an incorrect formula to calculate the query_time and
    lock_time values. (Bug#27638: http://bugs.mysql.com/27638)
  * With innodb_file_per_table enabled, attempting to rename an
    InnoDB table to a non-existent database caused the server to
    exit. (Bug#27381: http://bugs.mysql.com/27381)
  * mysql_install_db could terminate with an error after failing
    to determine that a system table already existed.
    (Bug#27022: http://bugs.mysql.com/27022)
  * For InnoDB tables having a clustered index that began with a
    CHAR or VARCHAR column, deleting a record and then inserting
    another before the deleted record was purged could result in
    table corruption. (Bug#26835: http://bugs.mysql.com/26835)
  * make_win_bin_dist neglected to copy some required MyISAM table
    files. (Bug#26922: http://bugs.mysql.com/26922)
  * Fixed a possible buffer overflow in SHOW PROCEDURE CODE.
    (Bug#26303: http://bugs.mysql.com/26303)
  * Selecting the result of AVG() within a UNION could produce
    incorrect values. (Bug#24791: http://bugs.mysql.com/24791)
  * Access via my_pread() or my_pwrite() to table files larger
    than 2GB could fail on some systems.
    (Bug#24566: http://bugs.mysql.com/24566)
  * An INTO OUTFILE clause is allowed only for the final SELECT of
    a UNION, but this restriction was not being enforced
    correctly. (Bug#23345: http://bugs.mysql.com/23345)
  * Duplicate entries were not assessed correctly in a MEMORY
    table with a BTREE primary key on a utf8 ENUM column.
    (Bug#24985: http://bugs.mysql.com/24985)
  * For MyISAM tables, COUNT(*) could return an incorrect value if
    the WHERE clause compared an indexed TEXT column to the empty
    string (''). This happened if the column contained empty
    strings and also strings starting with control characters such
    as tab or newline. (Bug#26231: http://bugs.mysql.com/26231)
  * For DELETE FROM tbl_name ORDER BY col_name (with no WHERE or
    LIMIT clause), the server did not check whether col_name was a
    valid column in the table.
    (Bug#26186: http://bugs.mysql.com/26186)
  * ALTER VIEW requires the CREATE VIEW and DROP privileges for
    the view. However, if the view was created by another user,
    the server erroneously required the SUPER privilege.
    (Bug#26813: http://bugs.mysql.com/26813)
  * mysqlbinlog --base64-output produced invalid SQL.
    (Bug#26194: http://bugs.mysql.com/26194)
  * In a view, a column that was defined using a GEOMETRY function
    was treated as having the LONGBLOB data type rather than the
    GEOMETRY type. (Bug#27300: http://bugs.mysql.com/27300)
  * Some views could not be created even when the user had the
    requisite privileges. (Bug#24040: http://bugs.mysql.com/24040)
  * With the NO_AUTO_VALUE_ON_ZERO SQL mode enabled,
    LAST_INSERT_ID() could return 0 after INSERT ... ON DUPLICATE
    KEY UPDATE. Additionally, the next rows inserted (by the same
    INSERT, or the following INSERT with or without ON DUPLICATE
    KEY UPDATE), would insert 0 for the auto-generated value if
    the value for the AUTO_INCREMENT column was NULL or missing.
    (Bug#23233: http://bugs.mysql.com/23233)
  * Executing an INSERT ... SELECT ... FROM
    INFORMATION_SCHEMA.GLOBAL_STATUS statement from within an
    event caused a server crash.
    (Bug#26174: http://bugs.mysql.com/26174)
  * Having the EXECUTE privilege for a routine in a database
    should make it possible to USE that database, but the server
    returned an error instead. This has been corrected. As a
    result of the change, SHOW TABLES for a database in which you
    have only the EXECUTE privilege returns an empty set rather
    than an error. (Bug#9504: http://bugs.mysql.com/9504)
  * When RAND() was called multiple times inside a stored
    procedure, the server did not write the correct random seed
    values to the binary log, resulting in incorrect replication.
    (Bug#25543: http://bugs.mysql.com/25543)
  * SOUNDEX() returned an invalid string for international
    characters in multi-byte character sets.
    (Bug#22638: http://bugs.mysql.com/22638)
  * Row equalities in WHERE clauses could cause memory corruption.
    (Bug#27154: http://bugs.mysql.com/27154)
  * GROUP BY on a ucs2 column caused a server crash when there was
    at least one empty string in the column.
    (Bug#27079: http://bugs.mysql.com/27079)
  * Evaluation of an IN() predicate containing a decimal-valued
    argument caused a server crash.
    (Bug#27362: http://bugs.mysql.com/27362)
  * Storing NULL values in spatial fields caused excessive memory
    allocation and crashes on some systems.
    (Bug#27164: http://bugs.mysql.com/27164)
  * mysql_stmt_fetch() did an invalid memory deallocation when
    used with the embedded server.
    (Bug#25492: http://bugs.mysql.com/25492)
  * For FEDERATED tables, SHOW CREATE TABLE could fail when the
    table name was longer than the connection name.
    (Bug#27036: http://bugs.mysql.com/27036)
  * In a MEMORY table, using a BTREE index to scan for updatable
    rows could lead to an infinite loop.
    (Bug#26996: http://bugs.mysql.com/26996)
  * The range optimizer could cause the server to run out of
    memory. (Bug#26625: http://bugs.mysql.com/26625)
  * CREATE SERVER, DROP SERVER, and ALTER SERVER did not require
    any privileges. Now these statements require the SUPER
    privilege. (Bug#25671: http://bugs.mysql.com/25671)
  * Concurrent CREATE SERVER and ALTER SERVER statements could
    cause a deadlock. (Bug#25721: http://bugs.mysql.com/25721)
  * Difficult repair or optimization operations could cause an
    assertion failure, resulting in a server crash.
    (Bug#25289: http://bugs.mysql.com/25289)

Enjoy,
   Joerg

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





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

Reply via email to