This is a new Beta development release, fixing recently discovered bugs.
This Beta release, as any other pre-production release, should not be installed on production level systems or systems with critical data. It is good practice to back up your data before installing any new version of software. Although MySQL has worked very hard to ensure a high level of quality, protect your data by making a backup as you would for any software beta release. Please refer to our bug database at http://bugs.mysql.com/ for more details about the individual bugs fixed in this version.
This section documents all changes and bug fixes that have been applied since the last official MySQL release. If you would like to receive more fine-grained and personalized update alerts about fixes that are relevant to the version and features you use, please consider subscribing to MySQL Enterprise (a commercial MySQL offering). For more details, please see http://www.mysql.com/products/enterprise.
Functionality added or changed:
Incompatible Change: MySQL 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 backward compatible with earlier versions of
        MySQL Cluster.
      
See the related note in Section 17.2.6.2, “MySQL Cluster 5.1 and MySQL Cluster NDB 6.x/7.x 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.
Incompatible Change: Replication: 
        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).
Effects of scheduled events on a replication master were both replicated and executed on the slave, causing double execution of events.
              CREATE FUNCTION statements
              and their effects were not replicated correctly.
            
For more information, see Section 16.4.1.8, “Replication of Invoked Features”. (Bug#17857, Bug#16421, Bug#20384, Bug#17671)
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 17.2.6.2, “MySQL Cluster 5.1 and MySQL Cluster NDB 6.x/7.x Upgrade and Downgrade
        Compatibility”
        before upgrading for details.
      
        For more information about the changes to
        mysql.ndb_apply_status see
        Section 17.6.4, “MySQL Cluster Replication Schema and Tables”.
      
Incompatible Change: 
        Prior to this release, when DATE
        values were compared with
        DATETIME values, the time portion
        of the DATETIME value was
        ignored, or the comparison could be performed as a string
        compare. Now a DATE value is
        coerced to the DATETIME type by
        adding the time portion as 00:00:00. To mimic
        the old behavior, use the CAST()
        function as shown in this example: SELECT
        .
       (Bug#28929)date_col = CAST(NOW() AS DATE) FROM
        table;
Incompatible Change: 
        The plugin interface and its handling of system variables was
        changed. Command-line options such as
        --skip-innodb
        now cause an error if InnoDB is not built-in
        or plugin-loaded. You should use
        --loose-skip-innodb if you do not want any
        error even if InnoDB is not available. The
        --loose prefix modifier should be used for all
        command-line options where you are uncertain whether the plugin
        exists and when you want the operation to proceed even if the
        option is necessarily ignored due to the absence of the plugin.
        (For a description of how --loose works, see
        Section 4.2.3.1, “Using Options on the Command Line”.)
      
Important Change: When upgrading to MySQL 5.1.18 or later from a previous MySQL version and scheduled events have been used, the upgrade utilities do not accomodate changes in event-related system tables. As a workaround, you can dump events before the upgrade, then restore them from the dump afterwards. This issue was fixed in MySQL 5.1.20.
See also Bug#28521.
MySQL 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.
              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.
            
For details of these changes, see Section 17.4.17, “ndb_restore — Restore a MySQL Cluster Backup”. (Bug#26899, Bug#26900)
MySQL Cluster: The following changes were made in 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.
              The dependency on HTML::Template was
              removed, with the result that the file
              ndb_size.tmpl is no longer needed or
              included.
            
Cluster Replication: Replication: Some circular replication setups are now supported for MySQL Cluster. See Section 17.6.3, “Known Issues in MySQL Cluster Replication”, for detailed information. (Bug#17095, Bug#25688)
Cluster API: 
        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(), and
        ndb_mgm_number_of_mgmd_in_connect_string().
      
        mysqld_multi now understands the
        --no-defaults,
        --defaults-file, and
        --defaults-extra-file
        options. The --config-file
        option is deprecated; if given, it is treated like
        --defaults-extra-file.
       (Bug#27390)
        If a set function S with an outer
        reference 
        
        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(outer_ref)
        .
        However, standard SQL requires throwing an error in this
        situation. An error now is thrown for such queries if the
        S(const)ANSI SQL mode is enabled.
       (Bug#27348)
        Several additional data types are supported for columns in
        INFORMATION_SCHEMA tables:
        DATE,
        TIME,
        BLOB,
        FLOAT, and all integer types.
       (Bug#27047)
        The output of mysql
        --xml and
        mysqldump
        --xml now includes a valid XML
        namespace.
       (Bug#25946)
        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)
        Added a MASTER_SSL_VERIFY_SERVER_CERT option
        for the CHANGE MASTER TO
        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)
        The innodb_log_archive system
        variable has been removed. The impact of this change should be
        low because the variable was unused, anyway.
      
        Added the
        --auto-generate-sql-add-autoincrement,
        --auto-generate-sql-execute-number,
        --auto-generate-sql-guid-primary,
        --auto-generate-sql-secondary-indexes,
        --auto-generate-sql-unique-query-number,
        --auto-generate-sql-unique-write-number,
        --post-query, and
        --pre-query, options for
        mysqlslap. Removed the
        --lock-directory,
        --slave, and
        --use-threads options.
      
        Added --write-binlog option
        for mysqlcheck. This option is enabled by
        default, but can be given as
        --skip-write-binlog
        to cause ANALYZE TABLE,
        OPTIMIZE TABLE, and
        REPAIR TABLE statements generated
        by mysqlcheck not to be written to the binary
        log. (Bug#26262)
      
        New command-line options: 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, you 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
        option called timeout.
        --wait-timeout will still set a system
        variable, but --plugin-wait-timeout will set
        the plugin variable. Also, there is a new command-line option
        --plugin-load to install or 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 system variable
        consumes a reference count, so uninstalling will not complete
        until said reference is removed.
      
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.
      
Bugs fixed:
Security Fix: 
        The requirement of the DROP
        privilege for RENAME TABLE was
        not enforced.
       (Bug#27515, CVE-2007-2691)
Security Fix: 
        If a stored routine was declared using SQL SECURITY
        INVOKER, a user who invoked the routine could gain
        privileges.
       (Bug#27337, CVE-2007-2692)
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, CVE-2007-2693)
MySQL Cluster: Replication: 
        (Replication): An UPDATE on the
        master became a DELETE on slaves.
       (Bug#27378)
MySQL Cluster: The cluster waited 30 seconds instead of 30 milliseconds before reading table statistics. (Bug#28093)
MySQL Cluster: Under certain rare circumstances, ndbd could get caught in an infinite loop when one transaction took a read lock and then a second transaction attempted to obtain a write lock on the same tuple in the lock queue. (Bug#28073)
MySQL Cluster: Under some circumstances, a node restart could fail to update the Global Checkpoint Index (GCI). (Bug#28023)
MySQL Cluster: 
        INSERT IGNORE
        wrongly ignored NULL values in unique
        indexes.
       (Bug#27980)
MySQL Cluster: The name of the month “March” was given incorrectly in the cluster error log. (Bug#27926)
MySQL 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)
MySQL Cluster: 
        NDB tables with indexes whose names
        contained space characters were not restored correctly by
        ndb_restore (the index names were truncated).
       (Bug#27758)
MySQL Cluster: 
        An INSERT followed by a delete
        DELETE on the same
        NDB table caused a memory leak.
       (Bug#27756)
This regression was introduced by Bug#20612.
MySQL Cluster: 
        It was not possible to add a unique index to an
        NDB table while in single user
        mode.
       (Bug#27710)
MySQL Cluster: 
        Under certain rare circumstances performing a
        DROP TABLE or
        TRUNCATE TABLE on an
        NDB table could cause a node
        failure or forced cluster shutdown.
       (Bug#27581)
MySQL Cluster: Memory usage of a mysqld process grew even while idle. (Bug#27560)
MySQL Cluster: 
        Using more than 16GB for DataMemory caused
        problems with variable-size columns.
       (Bug#27512)
MySQL 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)
MySQL 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)
MySQL 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)
MySQL Cluster: Performing a delete followed by an insert during a local checkpoint could cause a Rowid already allocated error. (Bug#27205)
MySQL 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)
MySQL Cluster: Error messages displayed when running in single user mode were inconsistent. (Bug#27021)
MySQL Cluster: 
        On Solaris, the value of an NDB
        table column declared as BIT(33) was always
        displayed as 0.
       (Bug#26986)
MySQL Cluster: 
        Performing ALTER TABLE ... ENGINE=MERGE on an
        NDB table caused
        mysqld to crash.
       (Bug#26898)
MySQL Cluster: 
        The NDBCLUSTER table handler did
        not set bits in null bytes correctly.
       (Bug#26591)
MySQL 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)
MySQL 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)
MySQL 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)
MySQL Cluster: 
        Adding of indexes online failed for
        NDB tables having
        BLOB or
        TEXT columns.
       (Bug#25431)
MySQL Cluster: When a cluster data node suffered a “hard” failure (such as a power failure or loss of a network connection) TCP sockets to the missing node were maintained indefinitely. Now socket-based transporters check for a response and terminate the socket if there is no activity on the socket after 2 hours. (Bug#24793)
MySQL Cluster: The ndb_resize.pl utility did not calculate memory usage for indexes correctly. (Bug#24229)
MySQL 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)
MySQL 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#11217, Bug#18676)
Cluster Replication: 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)
Replication: Out-of-memory errors were not reported. Now they are written to the error log. (Bug#26844)
Replication: Improved out-of-memory detection when sending logs from a master server to slaves, and log a message when allocation fails. (Bug#26837)
Replication: Aborting a statement on the master that applied to a nontransactional 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)
Replication: 
        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)
Replication: 
        GRANT statements were not
        replicated if the server was started with the
        --replicate-ignore-table or
        --replicate-wild-ignore-table
        option.
       (Bug#25482)
Replication: 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)
Replication: 
        If a rotate event occured in the middle of a nontransaction
        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)
Replication: 
        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. (The incompatibility is corrected by the fix
        for Bug#27779.)
       (Bug#22583)
Cluster Replication: Disk Data: An issue with replication of Disk Data tables could in some cases lead to node failure. (Bug#28161)
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)
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)
Disk Data: 
        CREATE TABLE ... LIKE
         created an
        in-memory disk_data_tableNDB table.
       (Bug#25875)
Disk Data: When restarting a data node following the creation of a large number of Disk Data objects (approximately 200 such objects), the cluster could not assign a node ID to the restarting node. (Bug#25741)
Disk Data: Creating an excessive number of Disk Data tables (1000 or more) could cause data nodes to fail. (Bug#24951)
Disk Data: 
        Changing a column specification or issuing a
        TRUNCATE TABLE statement on a
        Disk Data table caused the table to become an in-memory table.
      
This fix supersedes an incomplete fix that was made for this issue in MySQL 5.1.15. (Bug#24667, Bug#25296)
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)
Disk Data: Creating an excessive number of data files for a single tablespace caused data nodes to crash. (Bug#24521)
Disk Data: 
        It was possible to drop the last remaining datafile in a
        tablespace using ALTER TABLESPACE, even when
        there was still an empty table using the tablespace.
      
The datafile could be not dropped if the table still contained any rows, so this bug involved no loss of data.
Cluster Replication: Some queries that updated multiple tables were not backed up correctly. (Bug#27748)
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#27728)
Cluster Replication: Under very high loads, checkpoints could be read or written with checkpoint indexes out of order. (Bug#27651)
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)
Cluster Replication: 
        Setting sql_log_bin to zero did
        not disable binary logging.
      
        This issue affected only the NDB
        storage engine.
       (Bug#27076)
Cluster API: 
        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()
            
Cluster API: 
        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)
A performance degradation was observed for outer join queries to which a not-exists optimization was applied. (Bug#28188)
        SELECT * INTO OUTFILE ... FROM
        INFORMATION_SCHEMA.SCHEMATA failed with an
        Access denied error, even for a user who
        had the FILE privilege.
       (Bug#28181)
        Early NULL-filtering optimization did not
        work for eq_ref table access.
       (Bug#27939)
        Nongrouped columns were allowed by * in
        ONLY_FULL_GROUP_BY SQL mode.
       (Bug#27874)
        Some equi-joins containing a WHERE clause
        that included a NOT IN subquery caused a
        server crash.
       (Bug#27870)
An error message suggested the use of mysql_fix_privilege_tables after an upgrade, but the recommended program is now mysql_upgrade. (Bug#27818)
Debug builds on Windows generated false alarms about uninitialized variables with some Visual Studio runtime libraries. (Bug#27811)
        Certain queries that used uncorrelated scalar subqueries caused
        EXPLAIN to crash.
       (Bug#27807)
        Performing a UNION on two views
        that had ORDER BY clauses resulted in an
        Unknown column error.
       (Bug#27786)
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)
        The LEAST() and
        GREATEST() functions compared
        DATE and
        DATETIME values as strings, which
        in some cases could lead to an incorrect result.
       (Bug#27759)
A memory leak in the event scheduler was uncovered by Valgrind. (Bug#27733)
mysqld did not check the length of option values and could crash with a buffer overflow for long values. (Bug#27715)
        Comparisons using row constructors could fail for rows
        containing NULL values.
       (Bug#27704)
        SELECT
        DISTINCT could return incorrect results if the select
        list contained duplicated columns.
       (Bug#27659)
        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)
        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)
        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)
        The XML output representing an empty result was an empty string
        rather than an empty <resultset/>
        element.
       (Bug#27608)
        Comparison of a DATE with a
        DATETIME did not treat the
        DATE as having a time part of
        00:00:00.
       (Bug#27590)
See also Bug#32198.
        With NO_AUTO_VALUE_ON_ZERO SQL
        mode enabled, LOAD DATA
        operations could assign incorrect
        AUTO_INCREMENT values.
       (Bug#27586)
Group relay log rotation updated only the log position and not the name, causing the slave to stop. (Bug#27583)
        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)
The fix for Bug#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)
        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)
        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)
        Evaluation of an IN() predicate containing a
        decimal-valued argument caused a server crash.
       (Bug#27513, Bug#27362, CVE-2007-2583)
        A race condition between DROP
        TABLE and SHOW TABLE
        STATUS could cause the latter to display incorrect
        information.
       (Bug#27499)
In out-of-memory conditions, the server might crash or otherwise not report an error to the Windows event log. (Bug#27490)
        Passing nested row expressions with different structures to an
        IN predicate caused a server crash.
       (Bug#27484)
        The decimal.h header file was incorrectly
        omitted from binary distributions.
       (Bug#27456)
        With innodb_file_per_table
        enabled, attempting to rename an InnoDB table
        to a nonexistent database caused the server to exit.
       (Bug#27381)
Nested aggregate functions could be improperly evaluated. (Bug#27363)
        A stored function invocation in the WHERE
        clause was treated as a constant.
       (Bug#27354)
        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)
        Failure to allocate memory associated with
        transaction_prealloc_size could
        cause a server crash.
       (Bug#27322)
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)
The server did not shut down cleanly. (Bug#27310)
        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)
        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)
        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)
        Use of an aggregate function from an outer context as an
        argument to GROUP_CONCAT() caused
        a server crash.
       (Bug#27229)
String truncation upon insertion into an integer or year column did not generate a warning (or an error in strict mode). (Bug#27176, Bug#26359)
        mysqlbinlog produced different output with
        the -R option than without it.
       (Bug#27171)
        Storing NULL values in spatial fields caused
        excessive memory allocation and crashes on some systems.
       (Bug#27164)
        Row equalities in WHERE clauses could cause
        memory corruption.
       (Bug#27154)
        ON DUPLICATE KEY UPDATE failed for a table
        partitioned by KEY on a primary key
        VARCHAR column.
       (Bug#27123)
        GROUP BY on a ucs2 column
        caused a server crash when there was at least one empty string
        in the column.
       (Bug#27079)
        Duplicate members in SET or
        ENUM definitions were not
        detected. Now they result in a warning; if strict SQL mode is
        enabled, an error occurs instead.
       (Bug#27069)
        For FEDERATED tables,
        SHOW CREATE TABLE could fail when
        the table name was longer than the connection name.
       (Bug#27036)
mysql_install_db could terminate with an error after failing to determine that a system table already existed. (Bug#27022)
        In a MEMORY table, using a
        BTREE index to scan for updatable rows could
        lead to an infinite loop.
       (Bug#26996)
        make_win_bin_dist neglected to copy some
        required MyISAM table files.
       (Bug#26922)
        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)
        mysqldump would not dump a view for which the
        DEFINER no longer exists.
       (Bug#26817)
        Duplicates were not properly identified among (potentially) long
        strings used as arguments for
        GROUP_CONCAT(DISTINCT).
       (Bug#26815)
        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)
        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)
        Creating a temporary table with InnoDB when
        using the one-file-per-table setting, and when the host file
        system for temporary tables was tmpfs, would
        cause an assertion within mysqld. This was
        due to the use of O_DIRECT when opening the
        temporary table file.
       (Bug#26662)
mysql_upgrade did not detect failure of external commands that it runs. (Bug#26639)
The range optimizer could cause the server to run out of memory. (Bug#26625)
        The range optimizer could consume a combinatorial amount of
        memory for certain classes of WHERE clauses.
       (Bug#26624)
        mysqldump could crash or exhibit incorrect
        behavior when some options were given very long values, such as
        --fields-terminated-by=". 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)some very long
        string"
        A possible buffer overflow in SHOW
        PROCEDURE CODE was removed.
       (Bug#26303)
        The FEDERATED engine did not allow the local
        and remote tables to have different names.
       (Bug#26257)
The temporary file-creation code was cleaned up on Windows to improve server stability. (Bug#26233)
        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)
        For INSERT INTO
        ... SELECT where index searches used column prefixes,
        insert errors could occur when key value type conversion was
        done.
       (Bug#26207)
mysqlbinlog --base64-output produced invalid SQL. (Bug#26194)
        For DELETE FROM  (with no
        tbl_name ORDER BY
        col_nameWHERE or LIMIT clause),
        the server did not check whether
        col_name was a valid column in the
        table.
       (Bug#26186)
        Executing an INSERT ... SELECT ... FROM
        INFORMATION_SCHEMA.GLOBAL_STATUS statement from within
        an event caused a server crash.
       (Bug#26174)
        On Windows, trying to use backslash (\)
        characters in paths for DATA DIRECTORY and
        INDEX DIRECTORY when creating partitioned
        tables caused MySQL to crash.
      
        (You must use / characters when specifying
        paths for these options, regardless of platform. See
        Section 18.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.)
       (Bug#26074, Bug#25141)
        mysqldump crashed for
        MERGE tables if the
        --complete-insert
        (-c) option was given.
       (Bug#25993)
        Index hints (USE INDEX, IGNORE
        INDEX, FORCE INDEX) cannot be used
        with FULLTEXT indexes, but were not being
        ignored.
       (Bug#25951)
        Setting a column to NOT NULL with an
        ON DELETE SET NULL clause foreign key crashes
        the server.
       (Bug#25927)
        Corrupted MyISAM tables that have different
        definitions in the .frm and
        .MYI tables might cause a server crash.
       (Bug#25908)
        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 file system 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)
        In certain situations, MATCH ... AGAINST
        returned false hits for NULL values produced
        by LEFT JOIN when no full-text index was
        available.
       (Bug#25729)
        Concurrent CREATE SERVER and
        ALTER SERVER statements could
        cause a deadlock.
       (Bug#25721)
        CREATE SERVER,
        DROP SERVER, and
        ALTER SERVER did not require any
        privileges. Now these statements require the
        SUPER privilege.
       (Bug#25671)
On Windows, connection handlers did not properly decrement the server's thread count when exiting. (Bug#25621)
        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)
        For SHOW ENGINE
        INNODB STATUS, the LATEST DEADLOCK
        INFORMATION was not always cleared properly.
       (Bug#25494)
        mysql_stmt_fetch() did an
        invalid memory deallocation when used with the embedded server.
       (Bug#25492)
mysql_upgrade did not pass a password to mysqlcheck if one was given. (Bug#25452)
On Windows, mysql_upgrade was sensitive to lettercase of the names of some required components. (Bug#25405)
        During a call to
        mysql_change_user(), when
        authentication fails or the database to change to is unknown, a
        subsequent call to any function that does network communication
        leads to packets out of order. This problem was introduced in
        MySQL 5.1.14.
       (Bug#25371)
Difficult repair or optimization operations could cause an assertion failure, resulting in a server crash. (Bug#25289)
        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)
        Duplicate entries were not assessed correctly in a
        MEMORY table with a BTREE
        primary key on a utf8
        ENUM column.
       (Bug#24985)
        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)
        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)
        Selecting the result of AVG()
        within a UNION could produce
        incorrect values.
       (Bug#24791)
        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)
        The NO_DIR_IN_CREATE server
        SQL mode was not enforced for partitioned tables.
       (Bug#24633)
        MBRDisjoint(), MBRequal(),
        MBRIntersects(),
        MBROverlaps(),
        MBRTouches(), and
        MBRWithin() were inadvertently omitted from
        recent versions of MySQL (5.1.14 to 5.1.17).
       (Bug#24588)
        Access via my_pread() or
        my_pwrite() to table files larger than 2GB
        could fail on some systems.
       (Bug#24566)
        MBROverlaps() returned incorrect values in
        some cases.
       (Bug#24563)
A problem in handling of aggregate functions in subqueries caused predicates containing aggregate functions to be ignored during query execution. (Bug#24484)
        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)
Some upgrade problems are detected and better error messages suggesting that mysql_upgrade be run are produced. (Bug#24248)
        The test for the
        MYSQL_OPT_SSL_VERIFY_SERVER_CERT option for
        mysql_options() was performed
        incorrectly. Also changed as a result of this bug fix: The
        arg option for the
        mysql_options() C API function
        was changed from char * to void
        *.
       (Bug#24121)
Some views could not be created even when the user had the requisite privileges. (Bug#24040)
        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)
        Using CAST() to convert
        DATETIME values to numeric values
        did not work.
       (Bug#23656)
        A damaged or missing mysql.event table caused
        SHOW VARIABLES to fail.
       (Bug#23631)
        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 stored functions in the default database.
       (Bug#23491)
        An INTO OUTFILE clause is allowed only for
        the final SELECT of a
        UNION, but this restriction was
        not being enforced correctly.
       (Bug#23345)
        The AUTO_INCREMENT value would not be
        correctly reported for InnoDB tables when
        using SHOW CREATE TABLE statement
        or mysqldump command.
       (Bug#23313)
        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)
        Implicit conversion of 9912101 to
        DATE did not match
        CAST(9912101 AS DATE).
       (Bug#23093)
        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)
        Using SET
        GLOBAL to change the
        lc_time_names system variable
        had no effect on new connections.
       (Bug#22648)
        SOUNDEX() returned an invalid
        string for international characters in multi-byte character
        sets.
       (Bug#22638)
        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)
        COUNT(
        sometimes generated a spurious truncation warning.
       (Bug#21976)decimal_expr)
yaSSL crashed on pre-Pentium Intel CPUs. (Bug#21765)
        A slave that used
        --master-ssl-cipher
        could not connect to the master.
       (Bug#21611)
Database and table names have a maximum length of 64 characters (even if they contain multi-byte characters), but were truncated to 64 bytes.
This improves on a previous fix made for this bug in MySQL 5.1.12.
        InnoDB: The first read statement, if served
        from the query cache, was not consistent with the
        READ COMMITTED isolation
        level.
       (Bug#21409)
On Windows, if the server was installed as a service, it did not auto-detect the location of the data directory. (Bug#20376)
        Changing a utf8 column in an
        InnoDB table to a shorter length did not
        shorten the data values.
       (Bug#20095)
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)
        Conversion of DATETIME values in
        numeric contexts sometimes did not produce a double
        (YYYYMMDDHHMMSS.uuuuuu) value.
       (Bug#16546)
        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)
        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)


User Comments
Add your own comment.