Functionality added or changed:
Important Change: Replication: Previously, incident log events were represented as comments in the output from mysqlbinlog, making them effectively silent when playing back the binlog.
(An incident log event represents an incident that could cause the contents of the database to change without that event being recorded in the binary log.)
        This meant that, if the SQL were applied to a server, it could
        potentially lead to the master and the slave having different
        data. To make it possible to handle incident log events without
        breaking applications that expect the previous behavior, the
        nonsense statement RELOAD DATABASE is added
        to the SQL output for that incident log event, which causes an
        error.
      
To use this functionality currently requires hand editing of the dump file and handling of each case on an individual basis by a database administrator before applying the output to a server. (Bug#44442)
mysql_upgrade now displays a message indicating the connection parameters it uses when invoking mysqlcheck. (Bug#44638)
The time zone tables for Windows available at http://dev.mysql.com/downloads/timezones.html have been updated. (Bug#39923)
        The mysqltest program now has a
        move_file  command for renaming files. This
        should be used in test cases rather than invoking an external
        command that might be platform specific.
       (Bug#39542)from_file
        to_file
        The maximum value for
        max_binlog_cache_size has been
        increased from 232 – 1 to
        264 – 1 (even on 32-bit
        platforms), which enables transactions 4GB and larger to be
        performed when binary logging is enabled.
       (Bug#10206)
Bugs fixed:
Performance: 
        The InnoDB adaptive hash latch is released
        (if held) for several potentially long-running operations. This
        improves throughput for other queries if the current query is
        removing a temporary table, changing a temporary table from
        memory to disk, using
        CREATE TABLE ...
        SELECT, or performing a MyISAM
        repair on a table used within a transaction.
       (Bug#32149)
Security Fix: 
        The server crashed if an account with the
        CREATE ROUTINE privilege but not
        the EXECUTE privilege attempted
        to create a stored procedure.
       (Bug#44798)
Security Fix: The server crashed if an account without the proper privileges attempted to create a stored procedure. (Bug#44658)
Security Fix: Four potential format string vulnerabilities were fixed (discovered by the Veracode code analysis). (Bug#44166)
Incompatible Change: 
        The server can load plugins under the control of startup
        options. For example, many storage engines can be built in
        pluggable form and loaded when the server starts. In the
        following descriptions, plugin_name
        stands for a plugin name such as innodb.
      
Previously, plugin options were handled like other boolean options (see Section 4.2.3.2, “Program Option Modifiers”). That is, any of these options enabled the plugin:
--plugin_name--plugin_name=1 --enable-plugin_name
And these options disabled the plugin:
--plugin_name=0 --disable-plugin_name--skip-plugin_name
        However, use of a boolean option for plugin loading did not
        provide control over what to do if the plugin failed to start
        properly: Should the server exit, or start with the plugin
        disabled? The actual behavior has been that the server starts
        with the plugin disabled, which can be problematic. For example,
        if InnoDB fails to start, existing
        InnoDB tables become inaccessible, and
        attempts to create new InnoDB tables result
        in tables that use the default storage engine unless the
        NO_ENGINE_SUBSTITUTION SQL
        mode has been enabled to cause an error to occur instead.
      
Now, there is a change in the options used to control plugin loading, such that they have a tristate format:
            --
          plugin_name=OFF
Do not enable the plugin.
            --
          plugin_name[=ON]
            Enable the plugin. If plugin initialization fails, start the
            server anyway, but with the plugin disabled. Specifying the
            option as
            --
            without a value also enables the plugin.
          plugin_name
            --
          plugin_name=FORCE
Enable the plugin. If plugin initialization fails, do not start the server. In other words, force the server to run with the plugin or not at all.
        The values OFF, ON, and
        FORCE are not case sensitive.
      
        Suppose that CSV and
        InnoDB have been built as pluggable storage
        engines and that you want the server to load them at startup,
        subject to these conditions: The server is allowed to run if
        CSV initialization fails, but must require
        that InnoDB initialization succeed. To
        accomplish that, use these lines in an option file:
      
[mysqld] csv=ON innodb=FORCE
        This change is incompatible with the previous implementation if
        you used options of the form
        -- or
        plugin_name=0--,
        which should be changed to
        plugin_name=1-- or
        plugin_name=OFF--,
        respectively.
      plugin_name=ON
        --enable-
        is still supported and is the same as
        plugin_name--.
        plugin_name=ON--disable-
        and
        plugin_name--skip-
        are still supported and are the same as
        plugin_name--.
       (Bug#19027)plugin_name=OFF
See also Bug#45336.
Important Change: Replication: 
        BEGIN,
        COMMIT, and
        ROLLBACK
        statements are no longer affected by
        --replicate-do-db or
        --replicate-ignore-db rules.
       (Bug#43263)
Partitioning: 
        Queries using DISTINCT on multiple columns or
        GROUP BY on multiple columns did not return
        correct results with partitioned tables.
       (Bug#44821)
See also Bug#41136.
Replication: When using row-based logging, the length of an event for which the field metadata exceeded 255 bytes in size was incorrectly calculated. This could lead to corruption of the binary log, or cause the server to hang. (Bug#42749)
Replication: The warning Statement is not safe to log in statement format, issued in situations when it cannot be determined that a statement or other database event can be written reliably to the binary log using the statement-based format, has been changed to Statement may not be safe to log in statement format. (Bug#42415)
Replication: 
        The Query_log_event used by replication to
        transfer a query to the slave has been refactored.
        Query_log_event also stores and sends the
        error code resulting from the execution since it, in some cases,
        is necessary to execute the statement on the slave as well,
        which should result in the same error code. The
        Query_log_event constructor previously worked
        out for itself the error code using a complex routine, the
        result of which was often set aside within the constructor
        itself. This was also involved with at least 2 known bugs
        relating to invalid errors, and taken as a clear sign that the
        constructor was not well-designed and needed to be re-written.
       (Bug#41948)
See also Bug#37145.
Replication: 
        When stopping and restarting the slave while it was replicating
        temporary tables, the slave server could crash or raise an
        assertion failure. This was due to the fact that, although
        temporary tables were saved between slave thread restarts, the
        reference to the thread being used
        (table->in_use) was not being properly
        updated when restarting, continuing to reference the old thread
        instead of the new one. This issue affected statement-based
        replication only.
       (Bug#41725)
A separator was added between the time tag and the thread ID in the general query log file. (Bug#45387)
        The combination of MIN() or
        MAX() in the select list with
        WHERE and GROUP BY clauses
        could lead to incorrect results.
       (Bug#45386)
        Linker failures with libmysqld on VC++ 2008
        were fixed.
       (Bug#45326)
Compiler warnings on Mac OS X were fixed. (Bug#45286)
        Running a SELECT query over an
        IBMDB2I table using the
        cp1250 character set would produce an error
      
ibmdb2i error 2027: Error converting single-byte sort sequence to UCS-2
        Use of ROUND() on a
        LONGTEXT or
        LONGBLOB column of a derived
        table could cause a server crash.
       (Bug#45152)
        DROP USER could fail to drop all
        privileges for an account if the
        PAD_CHAR_TO_FULL_LENGTH SQL
        mode was enabled.
       (Bug#45100)
        GROUP BY on a constant
        (single-row) InnoDB table joined to other
        tables caused a server crash.
       (Bug#44886)
        ALTER TABLE on a view crashed the
        server.
       (Bug#44860)
        When using partitioning with the IBMDB2I
        storage engine, the engine could report that a valid character
        set was not supported.
       (Bug#44856)
        Running queries on tables with the IBMDB2I
        storage engine using the utf8 character would
        fail when using the 64-bit version of MySQL.
       (Bug#44811)
        Index Merge followed by a filesort could result in a server
        crash if sort_buffer_size was
        not large enough for all sort keys.
       (Bug#44810)
See also Bug#40974.
        UNCOMPRESSED_LENGTH() returned a
        garbage result when passed a string shorter than 5 bytes. Now
        UNCOMPRESSED_LENGTH() returns
        NULL and generates a warning.
       (Bug#44796)
Several Valgrind warnings were silenced. (Bug#44774, Bug#44792)
        Selecting
        RAND(
        function where N)N is a column of a
        constant table (table with a single row)
        failed with a SIGFPE signal.
       (Bug#44768)
        The PASSWORD() and
        OLD_PASSWORD() functions could
        read memory outside of an internal buffer when used with
        BLOB arguments.
       (Bug#44767)
Conversion of a string to a different character set could use the same buffer for input and output, leading to incorrect results or warnings. (Bug#44743, Bug#44766)
mysqld_safe could fail to find the logger program. (Bug#44736)
Code that optimized a read-only XA transaction failed to reset the XID once the transaction was no longer active. (Bug#44672)
A Valgrind warning related to transaction processing was silenced. (Bug#44664)
Some Perl scripts in AIX packages contained an incorrect path to the perl executable. (Bug#44643)
        When creating tables using the IBMDB2I
        storage engine, the RCDFMT (record format)
        that would be applied to the corresponding files within the IBM
        i would be set according to the table name. During whole table
        operations, the name could get modified to a value inconsistent
        with the table name. In addition, the record format would be
        inconsistent compared to the file content. The
        IBMDB2I storage engine now adds an explicit
        RCDFMT clause to the CREATE
        TABLE statement passed down to the DB2 storage engine
        layer.
       (Bug#44610)
innochecksum could incorrectly determine the input file name from the arguments. (Bug#44484)
Incorrect time was reported at the end of mysqldump output. (Bug#44424)
        Caching of GROUP BY expressions could lead to
        mismatches between compile-time and runtime calculations and
        cause a server crash.
       (Bug#44399)
        Lettercase conversion in multibyte cp932 or
        sjis character sequences could produce
        incorrect results.
       (Bug#44352)
        InnoDB was missing
        DB_ROLL_PTR information in Table Monitor
        COLUMNS output.
       (Bug#44320)
        Assertion failure could occur for duplicate-key errors in
        INSERT INTO ...
        SELECT statements.
       (Bug#44306)
        Trying to use an unsupported character set on an
        IBMDB2I table would produce DB2 error 2501 or
        2511. The error has been updated to produce Error 2504
        (Character set is unsupported).
       (Bug#44232)
        On 64-bit Windows systems, myisamchk did not
        handle key_buffer_size values larger than
        4GB.
       (Bug#43940)
        For user-defined utf8 collations, attempts to
        store values too long for a column could cause a server crash.
       (Bug#43827)
Invalidation of query cache entries due to table modifications could cause threads to hang inside the query cache with state “freeing items”. (Bug#43758)
        EXPLAIN
        EXTENDED could crash for
        UNION queries in which the last
        SELECT was not parenthesized and
        included an ORDER BY clause.
       (Bug#43612)
        Multiple-table updates for InnoDB tables
        could produce unexpected results.
       (Bug#43580)
        If the client lost the connection to the MySQL server after
        mysql_stmt_prepare(), the first
        call to mysql_stmt_execute()
        returned an error (as expected) but consecutive calls to
        mysql_stmt_execute() or
        mysql_stmt_close() crashed the
        client.
       (Bug#43560)
        For DELETE statements with ORDER BY
        , where
        varvar was a global system variable with
        a NULL value, the server could crash.
       (Bug#42778)
Builds linked against OpenSSL had a memory leak in association with use of X509 certificates. (Bug#42158)
        There was a race condition when changing
        innodb_commit_concurrency at
        runtime from zero to nonzero or from nonzero to zero. Now this
        variable cannot be changed at runtime from zero to nonzero or
        vice versa. The value can still be changed from one nonzero
        value to another.
       (Bug#42101)
See also Bug#45749.
        SELECT ... INTO
        @var could produce values different from
        SELECT ...
        without the INTO clause.
       (Bug#42009)
        A crash occurred due to a race condition between the merge table
        and table_cache evictions.
      
00000001403C452F mysqld.exe!memcpy()[memcpy.asm:151] 00000001402A275F mysqld.exe!ha_myisammrg::info()[ha_myisammrg.cc:854] 00000001402A2471 mysqld.exe!ha_myisammrg::attach_children()[ha_myisammrg.cc:488] 00000001402A2788 mysqld.exe!ha_myisammrg::extra()[ha_myisammrg.cc:863] 000000014015FC5D mysqld.exe!attach_merge_children()[sql_base.cc:4135] 000000014016A4C1 mysqld.exe!open_tables()[sql_base.cc:4697] 000000014016A898 mysqld.exe!open_and_lock_tables_derived()[sql_base.cc:4956] 000000014018BB54 mysqld.exe!mysql_insert()[sql_insert.cc:613] 000000014019EDD3 mysqld.exe!mysql_execute_command()[sql_parse.cc:3066] 00000001401A2F06 mysqld.exe!mysql_parse()[sql_parse.cc:5791] 00000001401A3C1A mysqld.exe!dispatch_command()[sql_parse.cc:1202] 00000001401A4CD7 mysqld.exe!do_command()[sql_parse.cc:857] 0000000140246327 mysqld.exe!handle_one_connection()[sql_connect.cc:1115] 00000001402B82C5 mysqld.exe!pthread_start()[my_winthread.c:85] 00000001403CAC37 mysqld.exe!_callthreadstart()[thread.c:295] 00000001403CAD05 mysqld.exe!_threadstart()[thread.c:275] 0000000077D6B69A kernel32.dll!BaseThreadStart() Trying to get some variables. Some pointers may be invalid and cause the dump to abort...
Shared-memory connections did not work in Vista if mysqld was started from the command line. (Bug#41190)
        For views created with a column list clause, column aliases were
        not substituted when selecting through the view using a
        HAVING clause.
       (Bug#40825)
        A multiple-table DELETE involving
        a table self-join could cause a server crash.
       (Bug#39918)
        Creating an InnoDB table with a comment
        containing a '#' character caused foreign key
        constraints to be omitted.
       (Bug#39793)
        ALTER TABLE neglected to preserve
        ROW_FORMAT information from the original
        table, which could cause subsequent ALTER
        TABLE and OPTIMIZE
        TABLE statements to lose the row format for
        InnoDB tables.
       (Bug#39200)
        The mysql option
        --ignore-spaces was nonfunctional.
       (Bug#39101)
        If a query was such as to produce the error 1054
        Unknown column '...' in 'field list', using
        EXPLAIN
        EXTENDED with the query could cause a server crash.
       (Bug#37362)
        In the mysql client, using a default
        character set of binary caused internal
        commands such as DELIMITER to become case
        sensitive.
       (Bug#37268)
        mysqldump --tab dumped triggers to
        stdout rather than to the
        .sql file for the corresponding table.
       (Bug#34861)
        If the MYSQL_HISTFILE environment variable
        was set to /dev/null, the
        mysql client overwrote the
        /dev/null device file as a normal file.
       (Bug#34224)
mysqld_safe mishandled certain parameters if they contained spaces. (Bug#33685)
mysqladmin kill did not work for thread IDs larger than 32 bits. (Bug#32457)
        Several client programs failed to interpret
        --skip-password
        as “send no password.”
       (Bug#28479)
        Output from mysql --html did not encode the
        <, >, or
        & characters.
       (Bug#27884)
        mysql_convert_table_format did not prevent
        conversion of tables to MEMORY or
        BLACKHOLE tables, which could result in data
        loss.
       (Bug#27149)


User Comments
Add your own comment.