List:General Discussion« Previous MessageNext Message »
From:Bjorn Munch Date:September 21 2013 4:12pm
Subject:MySQL Community Server 5.7.2 has been released (part 4 of 4)
View as plain text  
     * The code base was modified to account for new warning checks
       introduced by gcc 4.8. (Bug #16729109)

     * Compiling failed with -DMY_ATOMIC_MODE_RWLOCKS=1 or on
       platforms on which MySQL did not support lockless atomic
       operations (such as ARM). (Bug #16736461)

     * In a prepared statement or stored routine, if the HAVING
       clause of a subquery referenced some column of the GROUP BY of
       the parent query, the server could exit. (Bug #16739050)

     * Password rewriting in the general query log now also applies
       to prepared statements. (Bug #16732621)

     * The deprecated thread_concurrency system variable has been
       removed. (Bug #16661195)

     * Overhead for setting PROCESSLIST_STATE values in the
       Performance Schema THREADS table has been reduced. (Bug
       #16633515)

     * The read-only open_files_limit system variable did not show
       maximum number of open files the mysqld process could have,
       but instead the number that was requested after adjusting the
       --open-files-limit command-line option. (Bug #16657588)

     * Kill handling in the thread pool plugin was subject to timeout
       problems and Valgrind warnings. (Bug #16633880)

     * Within a stored procedure, repeated execution of a prepared
       CREATE TABLE statement for a table with partitions could cause
       a server exit. (Bug #16614004)

     * Some problems compiling on Solaris in 64-bit mode with gcc and
       g++ were corrected. (Bug #16555106)

     * The Windows authentication plugin failed to free a context
       buffer for each connection. (Bug #16591288)

     * The DBUG_PRINT() macro unnecessarily evaluated arguments when
       debugging was not enabled. (Bug #16556597)

     * Some rows for a session could be missing sporadically from the
       Performance Schema session_connect_attrs table while the
       session was executing a workload. (Bug #16576980)

     * The server could make the wrong decision about whether an
       account password was expired. (Bug #16604641)

     * Enabling the query cache could cause repeatable-read
       transactions to return incorrect results. (Bug #16497925)

     * When index condition pushdown was used on a descending range
       scan and the first range interval did not contain any
       qualifying records, the result of the range scan could be
       empty even if other range intervals contained qualifying
       records. (Bug #16483273)

     * The server could attempt a filesort operation for a zero-size
       sort length, causing it to exit. (Bug #16503160)

     * SHOW WARNINGS and SHOW ERRORS did not properly reset the
       warning count. (Bug #16522662)

     * my_load_defaults() was modified to accommodate some problems
       under compilation with gcc 4.7.2 that could cause a client
       crash during option processing. (Bug #16497125)

     * Opening a cursor on a SELECT within a stored procedure could
       cause a segmentation fault. (Bug #16499751)
       References: This bug is a regression of Bug #14740889.

     * Geometry methods that worked with WKB data performed
       insufficient input data validation, which could cause Valgrind
       errors or a server exit. (Bug #16510712, Bug #12772601)

     * Missing variable initialization led to incorrectly returning
       an error from st_select_lex_unit::explain and led to a failed
       assertion. (Bug #16484966)

     * Clients could determined based on connection error message
       content whether an account existed. (Bug #16513435)

     * CREATE TABLE or ALTER TABLE can fail if the statement
       specified unsupported options or something was missing.
       Previously, such errors were returned as ER_ILLEGAL_HA. Now
       they are returned as the new ER_MISSING_HA_CREATE_OPTION
       error. (Bug #16498740)

     * Failure to handle a full-text search wildcard properly could
       cause the server to exit. (Bug #16446108)

     * Some INFORMATION_SCHEMA queries that used ORDER BY did not use
       a filesort optimization as they did in MySQL 5.5. (Bug
       #16423536)

     * Performance Schema parameter autosizing at startup did not
       take into account later autosizing changes to other startup
       parameters on which the Performance Schema parameters
       depended. (Bug #16430532)

     * The WKB reader for spatial operations could fail and cause a
       server exit. (Bug #16451878)

     * For queries using ref access on CHAR and VARCHAR data types,
       the ref access condition could be evaluated again as part of
       the query condition or pushed down as an index condition to
       the storage engine. (Bug #16437630)

     * A full-text search syntax error failed to print to standard
       output. (Bug #16429688, Bug #16765397)

     * Optimizer heuristics inappropriately preferred range access
       over ref access in cases when the ref access referred to a
       column of a table earlier in the join seqence. (Bug #16437940)

     * The ER_OUTOFMEMORY error was used in some places without the
       proper parameter being passed, resulting in incorrect
       diagnostic output. (Bug #16449659)

     * Unlike MyISAM, InnoDB does not support boolean full-text
       searches on nonindexed columns, but this restriction was not
       enforced, resulting in queries that returned incorrect
       results. (Bug #16434374)

     * If a table has been marked as containing only NULL values for
       all columns if it is a NULL-complemented row of an outer join,
       then rollup on the column which cannot be nullable results in
       a server exit. (Bug #16436014)

     * If the optimizer was using a loose index scan, the server
       could exit while attempting to create a temporary table. (Bug
       #16436567)

     * Incorrect results or a server exit could be caused by a
       reference to an aggregated expression inside a nested
       subquery, where the aggregated expression was evaluated in a
       query block more than two levels outer to the reference. (Bug
       #16436383)

     * In debug builds, failure in the range optimizer for an
       ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT error could go
       undetected and cause the filesort code to raise an assertion.
       In release builds, this problem manifested as clients
       receiving an ER_FILSORT_ABORT rather than the correct error
       code. (Bug #16366881)

     * If a lock timeout resulted from an UPDATE with a nested SELECT
       being unable to access rows being accessed by another thread,
       the error could go unchecked and cause an assertion to be
       raised later. (Bug #16367039)

     * In debug builds, failure in the range optimizer for an
       ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT error could go
       undetected and cause an assertion to be raised when a response
       was sent to the client. In release builds, this problem
       manifested as clients receiving an OK for a statement that had
       failed. (Bug #16366994, Bug #16247110)

     * Manually-created accounts (using INSERT) with a malformed
       password effectively had no password. (Bug #16414396)

     * Several scripts in the sql-bench directory that were supposed
       to be executable did not have the executable access bit set.
       (Bug #16395606)

     * For debug builds, DBUG_EXPLAIN resulted in a buffer overflow
       when the debug system variable value was more than 255
       characters. (Bug #16402143)

     * For debug builds, with an XA transaction in IDLE or PREPARED
       status, execution of a query with the query cache enabled
       could cause a server exit. (Bug #16388996)

     * A race condition in vio_shutdown() could cause a server exit.
       (Bug #16354789)

     * An assertion could be raised when creating a index on a prefix
       of a TINYBLOB column in an InnoDB column. (Bug #16368875)

     * For debug builds, set_field_to_null() could raise an assertion
       for attempts to insert NULL into a NOT NULL column. (Bug
       #16362246)

     * A server exit could occur for queries of the form SELECT
       (SELECT 1 FROM t1) IN (SELECT a FROM t1) when attempting to
       evaluate the constant left-hand argument to the IN subquery
       predicate. (Bug #16369522)

     * An assertion could be raised if, in greedy search mode, the
       optimizer identified join orders but was unable to choose one.
       (Bug #16361170)

     * Debugging flags used to set the debug system variable were
       ignored if they were a prefix of keywords already in the
       debugging list. (Bug #16415978)

     * If the primary key for the mysql.proc system table was removed
       (an unsupported and not-recommended operation), the server
       exited for subsequent stored procedure invocation. Similar
       problems could occur for other system tables. Now an error
       occurs instead. (Bug #16373054)

     * Oracle RPM packages were unusable by yum due to issues with
       the obsoletes line in the .spec file causing yum to interpret
       the package as obsoleting itself. (Bug #16298542)

     * Re-execution of a stored procedure could cause a server exit
       in Item_field::fix_outer_field. (Bug #16317443)

     * A GROUP_CONCAT() invocation containing subquery having an
       outer reference caused the server to exit. (Bug #16347343)

     * For debug builds, GROUP_CONCAT(... ORDER BY) within an ORDER
       BY clause could cause a server exit. (Bug #16347426)

     * The validate_password plugin did not always enforce
       appropriate constraints against assigning empty passwords.
       (Bug #16346443)

     * For debug builds, the server could exit for queries involving
       a nested subquery, a subquery tranformed into a semi-join and
       using a view. (Bug #16317076)

     * No warning was generated if a duplicate index existed after
       dropping a column associated with a multiple-column index.
       (Bug #16315351)

     * SELECT DISTINCT with WITH ROLLUP could result in a Duplicate
       entry 'NULL' for key '<auto_key>' error. (Bug #16314835)

     * The server could exit in do_copy_not_null() due to an improper
       NULL-value check. (Bug #16316564)

     * Transforming some subqueries that select temporal or BIGINT
       types or to a semijoin caused a server exit on the second
       execution of prepared statements or stored programs. (Bug
       #16319671)

     * The range optimizer could set up incorrect ranges for queries
       that used XOR operations. (Bug #16272562)

     * mysql_secure_installation could not connect to the server if
       the account used had an expired password. It invoked mysql
       noninteractively, resulting in that program failing to
       connect. Now mysql supports a --connect-expired-password
       option that indicates to the server that it can handle sandbox
       mode for expired-password accounts even if invoked
       noninteractively, and mysql_secure_installation invokes mysql
       with this option. (Bug #16248315)

     * If loose index scan was used on a query that used MIN(), a
       segmentation fault could occur. (Bug #16222245)

     * The usual failed-login attempt accounting was not applied to
       failed COM_CHANGE_USER commands. (Bug #16241992)

     * For debug builds, an assertion could be raised if a failed
       LOAD DATA INFILE statement will followed by an INSERT for the
       same table within the same session. (Bug #16240526)

     * For debug builds, an assertion was incorrectly raised for
       queries executed using eq_ref access and filesort. (Bug
       #16164885)

     * A user variable referenced during execution of a prepared
       statement is set to memory that is freed at the end of
       execution. A second execution of the statement could result in
       Valgrind warnings when accessing this memory. (Bug #16119355)

     * Misoptimization of left expressions in prepared statements
       could cause a server exit. (Bug #16095534)

     * A prepared statement that used GROUP_CONCAT() and an ORDER BY
       clause that named multiple columns could cause the server to
       exit. (Bug #16075310)

     * The server could exit the second time a stored routine was
       invoked that performed an UPDATE or DELETE using an invalid
       column in the join clause. (Bug #16078466)

     * If my_write() encountered a disk-full condition, it could
       return an incorrect error value. (Bug #16078792)

     * Creating a FEDERATED table without specifying a connection
       string caused a server exit. (Bug #16048546)

     * ORDER BY MATCH ... AGAINST could cause a server exit. (Bug
       #16073689)

     * Certain queries containing ORDER BY or SQL_CALC_FOUND_ROWS
       could cause a server exit for JSON-format EXPLAIN statements.
       (Bug #16077396, Bug #16078113)

     * Client programs from MySQL 5.6.4 and up could confuse older
       servers during the connection process by using newer protocol
       features not understood by older servers. (Bug #15965409)

     * When a partition is missing, code in ha_innodb.cc would retry
       10 times and sleep for a microsecond each time while holding
       LOCK_open. The retry logic for partitioned tables was
       introduced as a fix for Bug#33349 but did not include a test
       case to validate it. This fix removes the retry logic for
       partitioned tables. If the problem reported in Bug#33349
       reappears, a different solution will be explored. (Bug
       #15973904)

     * The mysql.server script exited with an error if the status
       command was executed with multiple servers running. (Bug
       #15852074)

     * Use of the VALUES() function in the VALUES() clause of an
       INSERT statement could result in Valgrind warnings or an
       unstable server, possibly leading to a server exit. (Bug
       #14789787)

     * In some cases, REVOKE could fail to revoke the GRANT OPTION
       privilege. (Bug #14799187)

     * The Debug Sync facility could lose a signal, leading to a
       spurious ER_DEBUG_SYNC_TIMEOUT error. (Bug #14765080)

     * The mysql client allocated but did not free a string after
       reading each line in interactive mode, resulting in a memory
       leak. (Bug #14685362)

     * The optimizer trace could print ranges for key parts that were
       not usable for range access. (Bug #14615536)

     * Killing a connection while it was in the process of
       disconnecting could lead to an assertion being raised,
       Valgrind warnings, and general unstability. (Bug #14560522)

     * When running a query on INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
       that requested table_name and index_name values, query results
       would include index pages without table_name or index_name
       values. (Bug #14529666)

     * Several COM_xxx commands in the client-server protocol did not
       have length checks for incoming network packets, which could
       result in various problems for malformed input. (Bug
       #14525642)

     * Passwords in statements were not obfuscated before being
       written to the audit log. (Bug #14536456)

     * If used to process a prepared CALL statement for a stored
       procedure with OUT or INOUT parameters,
       mysql_stmt_store_result() did not properly set the flags
       required to retrieve all the result sets. (Bug #14492429)

     * INSERT ... ON DUPLICATE KEY UPDATE on a view could cause a
       server exit. (Bug #14261010)

     * With the thread pool plugin in use, normal connection
       termination caused the Aborted_clients status variable to be
       incremented. (Bug #14081240)

     * A build failure occurred if HAVE_CRYPT was 0. (Bug #14036425)

     * Grouping by an outer BLOB column in a subquery caused a server
       exit. (Bug #13966809, Bug #14700180)

     * On Windows, command-line options of the form
       --opt_name="opt_value" worked but --opt_name='opt_value' did
       not.
       On all platforms, for Performance Schema options of the form
       --performance_schema_instrument="instrument=value", invalid
       instrument names now are rejected. (Bug #13955232)

     * The server could exit after failing to handle an out-of-memory
       condition in open_normal_and_derived_tables(). (Bug #13553905)

     * The server could exit due to improper handling of the error
       from an invalid comparison. (Bug #13009341)

     * MySQL Installer, if run in custom install or change mode,
       offered installation options that had no effect. (Bug
       #12928601)

     * The thread pool plugin produced an error message containing an
       incorrect maximum thread_pool_prio_kickup_timer value. (Bug
       #12817590)

     * Metadata returned for a prepared SELECT statement that had
       outer joins could indicate that columns containing NULL values
       were NOT NULL. (Bug #12818811)

     * For debug builds, the server could exit as a result of a
       series of statements that used a user variable such that its
       character set/collation changed from statement to statement.
       (Bug #12368577)

     * Incorrect results could be returned from queries that used
       several aggr_func(DISTINCT) functions (where aggr_func() is an
       aggregate function such as COUNT()) when these referred to
       different columns of the same composite key. (Bug #12328597)

     * The CMake check for unsigned time_t failed on all platforms.
       (Bug #11766815)

     * An identifier containing special characters could become too
       long after conversion of such characters to encoded format,
       resulting in SQL errors or failure to find files. (Bug
       #11766880)

     * mysql_convert_table_format ignored --engine or -e as a synonym
       for the --type option. (Bug #11756950)

     * mysqladmin debug causes the server to write debug information
       to the error log. On systems that supported mallinfo(), the
       memory-status part of this output was incorrect in 64-bit
       environments when mysqld consumed more than 4GB memory.
       Now the server uses malloc_info() to obtain memory-status
       information. malloc_info() does not report the memory that the
       glibc malloc() implementation internally allocates using
       mmap(). However, it does provide the memory usage information
       in all the memory arenas.
       This bug fix also involves a change of output format. The
       server now writes memory information in XML format rather than
       as plain text. Example:
Memory status:
<malloc version="1">
<heap nr="0">
<sizes>
<size from="33" to="33" total="1056" count="32"/>
<size from="65" to="65" total="65" count="1"/>
<size from="113" to="113" total="226" count="2"/>
<size from="129" to="129" total="2451" count="19"/>
<size from="145" to="145" total="290" count="2"/>
<size from="161" to="161" total="1288" count="8"/>
<size from="209" to="209" total="418" count="2"/>
</sizes>
<total type="fast" count="0" size="0"/>
<total type="rest" count="66" size="5794"/>
<system type="current" size="10833920"/>
<system type="max" size="10833920"/>
<aspace type="total" size="10833920"/>
<aspace type="mprotect" size="10833920"/>
</heap>
<total type="fast" count="0" size="0"/>
<total type="rest" count="66" size="5794"/>
<system type="current" size="10833920"/>
<system type="max" size="10833920"/>
<aspace type="total" size="10833920"/>
<aspace type="mprotect" size="10833920"/>
</malloc>
       (Bug #11746658)

     * When an ALTER TABLE operation was performed with an invalid
       foreign key constraint, the error reported was
       ER_CANT_CREATE_TABLE rather than ER_CANNOT_ADD_FOREIGN. (Bug
       #64617, Bug #13840553)

     * If an account had a nonzero MAX_USER_CONNECTIONS value, that
       value was not always respected. (Bug #65104, Bug #14003080)

     * On 64-bit Mac OS X systems, CMake used x86 rather than x86_64
       when determining the machine type. (Bug #58462, Bug #11765489)

     * For failure to create a new thread for the event scheduler,
       event execution, or new connection, no message was written to
       the error log. This could lead to the impression that the
       event scheduler was running normally when it was not. (Bug
       #67191, Bug #14749800, Bug #16865959)

     * Compilation on Solaris using gcc produced incorrect builds for
       32-bit systems. (Bug #68675)

     * The mysql client incorrectly used latin1 for certain
       comparisons even if started with a multibyte default character
       set, resulting in a client crash. (Bug #68107, Bug #16182919)

     * In option files, the server could misinterpret option settings
       if the value was given after the option name with no = sign in
       between. (Bug #67740, Bug #15930031)

     * The url columns in the mysql datatbase help tables were too
       short to hold some of the URLs in the help content. These
       columns are now created as type TEXT to accommodate longer
       URLs. (Bug #61520, Bug #12671635)

     * mysqld --help and mysqld --verbose --help performed
       unnecessary logging. (Bug #68578, Bug #16442113)

     * Performance of prepared DML statements containing ? parameter
       substitution markers was improved under row-based logging
       format: Since the binary log in this case need not include the
       statement text, and since the statement will not be forced to
       statement-based logging as some DDL statements might be, there
       is no need to substitute ? markers to produce a statement
       suitable for logging. (Bug #67676, Bug #16038776)

     * ELT(LEAST(...),..) could return a non-NULL value even if
       LEAST() returned NULL. (Bug #67578, Bug #16171537)

     * InnoDB does not support full-text parser plugins, but failed
       to report an error if they were specified. Now an
       ER_INNODB_NO_FT_USES_PARSER error is returned. (Bug #62004,
       Bug #12843070)

     * If Loose Index Scan was used to evaluate a query that compared
       an integer column to an integer specified as a quoted string
       (for example, col_name = '1'), the query could return
       incorrect results. (Bug #68473, Bug #16394084)

     * IF() function evaluations could produce different results when
       executed in a prepared versus nonprepared statement. (Bug
       #45370, Bug #11753852)

     * If a function such as AES_DECRYPT() that requires SSL support
       failed, the error could affect later calls to functions that
       require SSL support. (Bug #68340, Bug #16315767)

     * In a MySQL server newer than MySQL 5.5 using a nonupgraded
       mysql.user table (for which mysql_upgrade had not been run),
       statements to set passwords caused a server exit due to a
       faulty check for the password_expired column. (Bug #68385, Bug
       #16339767)

     * It is now possible to suppress installation of the mysql-test
       directory after compiling MySQL from source by invoking CMake
       with the INSTALL_MYSQLTESTDIR option explicitly set to empty:
cmake . -DINSTALL_MYSQLTESTDIR=
       Previously, attempts to do this resulted in an error. (Bug
       #58615, Bug #11765629)

     * When only counting events but not timing them, Performance
       Schema would report MIN_TIMER_WAIT values as a large number
       instead of 0. (Bug #68768, Bug #16552425)

     * The Turbo Boyer-Moore algorithm used for LIKE pattern matches
       failed to handle some patterns. The server now uses the
       original Boyer-Moore algorithm. (Bug #59973, Bug #11766777)

     * If mysqld crashed during a shutdown initiated by
       /etc/init.d/mysql stop, mysqld_safe restartd mysqld when it
       should not have. (Bug #34084, Bug #13864548)

     * Using range access with an index prefix could produce
       incorrect results. (Bug #68750, Bug #16540042)

     * For debug builds, metadata locking for CREATE TABLE ... SELECT
       could raise an assertion. (Bug #68695, Bug #16503173)

     * Long table or column names could cause mysqlshow to exit. (Bug
       #53956, Bug #11761458)

     * A new CMake option, WITH_EDITLINE, is provided to indicate
       whether to use the bundled or system libedit/editline library.
       The permitted values are bundled (the default) and system.
       WITH_EDITLINE replaces WITH_LIBEDIT, which has been removed.
       (Bug #68558, Bug #16430208)

     * When specified in an option file, the plugin-dir client option
       was ignored. (Bug #68800, Bug #16680313)

     * Overhead for the skip_trailing_space() function was reduced.
       (Bug #68477, Bug #16395778)

     * If an UPDATE containing a subquery caused a deadlock inside
       InnoDB, the deadlock was not properly handled by the SQL
       layer. The SQL layer then tried to unlock the row after InnoDB
       rolled back the transaction, raising an assertion inside
       InnoDB. (Bug #69127, Bug #16757869)

     * Configuring MySQL with -DWITH_EXTRA_CHARSETS=none caused a
       build failure. (Bug #58672, Bug #11765682)

     * The !includedir directive in option files did not read .cnf or
       .ini files that included a dot in the file name preceding the
       extension. (Bug #51609, Bug #11759306)

     * Indexes on derived tables that were used during the first
       invocation of a stored procedure were not used in subsequent
       invocations. (Bug #68350, Bug #16346367)

     * Boolean plugin system variables did not behave well on
       machines where char is unsigned; some code attempted to assign
       a negative value to these. (Bug #59905, Bug #11864205)

     * For DELETE and UPDATE statements, EXPLAIN displayed NULL in
       the ref column for some cases where const is more appropriate.
       (Bug #68299, Bug #16296268)

     * The optimizer could choose a poor execution plan for queries
       with ORDER BY ... LIMIT. (Bug #69013, Bug #16697792)

     * FOUND_ROWS() could return an incorrect value if the preceding
       query used filesort. (Bug #69119, Bug #16760474)
       References: This bug is a regression of Bug #68458.

     * In the absence of SQL_CALC_FOUND_ROWS in the preceding query,
       FOUND_ROWS() should return the number of rows in the result
       set, but this did not always happen if the query contained
       ORDER BY. (Bug #69271, Bug #16827872)

     * sql-common/client_plugin.c contained a nonportable use of a
       va_list parameter. (Bug #62769, Bug #13252623)

     * mysqldump assumed the existence of the general_log and
       slow_log tables in the mysql database. It failed if invoked to
       dump tables from an older server where these tables do not
       exist. (Bug #65670, Bug #14236170)

     * Configuring with cmake -DWITHOUT_SERVER to build clients
       without the server failed for builds outside of the source
       tree. (Bug #66000, Bug #14367046)

     * Full-text search on InnoDB tables failed on searches for words
       containing apostrophes. (Bug #69216, Bug #16801781)

     * Full-text search on InnoDB tables failed on searches for
       literal phrases combined with + or - operators. (Bug #68720,
       Bug #16516193)

     * Optimizations that used extended secondary keys (see Use of
       Index Extensions
       (http://dev.mysql.com/doc/refman/5.7/en/index-extensions.html)
       ) worked only for InnoDB, even for storage engines with the
       requisite underlying capabilities. (Bug #68469, Bug #16391678)

     * Successful queries served from the query cache did not clear
       warnings. (Bug #49634, Bug #11757567)

     * With big_tables enabled, queries that used COUNT(DISTINCT) on
       a simple join with a constant equality condition on a
       non-duplicate key returned incorrect results. (Bug #52582, Bug
       #11760197)

     * If ALTER TABLE was used to set the default value for a
       TIMESTAMP or DATETIME column that had CURRENT_TIMESTAMP as its
       default when it was created, the new default was not shown by
       SHOW CREATE TABLE, and incorrect values could be inserted into
       the column. (Bug #45669, Bug #11754116)

     * mysql_install_db incorrectly tried to create the
       mysql.innodb_table_stats and mysql.innodb_index_stats tables
       if InnoDB was not available. (Bug #68438, Bug #16369955)

     * If one session had any metadata lock on a table, another
       session attempting CREATE TABLE [IF NOT EXISTS] for the same
       table would hang. This occurred due to an attempt in the
       second session to acquire an exclusive metadata lock on the
       table before checking whether the table already existed. An
       exclusive metadata lock is not compatible with any other
       metadata locks, so the session hung for the lock timeout
       period if another session had the table locked.
       Now the server attempts to acquire a shared metadata lock on
       the table first to check whether it exists, then upgrade to an
       exclusive lock if it does not. If the table does exist, an
       error occurs for CREATE TABLE and a warning for CREATE TABLE
       IF NOT EXISTS. (Bug #63144, Bug #13418638)

     * Attempts to build from a source RPM package could fail because
       the build process attempted to refer to a pb2user that might
       not exist. (Bug #64641, Bug #13865797, Bug #69339, Bug
       #16874980)

     * A typo in cmake/dtrace.cmake prevented DTrace support from
       being enabled by -DENABLE_DTRACE-on. (Bug #60743, Bug
       #12325449)

     * When an internal buffer was too small for the workload, the
       Performance Schema could spend a lot of time in an internal
       spin loop attempting to allocate a memory buffer, and fail.
       (Bug #69382, Bug #16945618)

     * BIT(0) is not a valid data type specification but was silently
       converted to BIT(1). Now an ER_INVALID_FIELD_SIZE error occurs
       and the specification is rejected. (Bug #68419, Bug #16358989)

     * Some LEFT JOIN queries with GROUP BY could return incorrect
       results. (Bug #68897, Bug #16620047)
       References: This bug is a regression of Bug #11760517.

     * Some possible cases of memory use after being freed were
       fixed. (Bug #68918, Bug #16725945)

     * mysqldump wrote SET statements as SET OPTION, which failed
       when reloaded because the deprecated OPTION keyword has been
       removed from SET syntax. (Bug #67507, Bug #15844882)

     * If the server could not find the errmsg.sys file at startup,
       the resulting error message did not indicate which
       configuration parameter to check. (Bug #67576, Bug #15880018)

     * If query_cache_type was disabled at startup to prevent the
       query cache from being enabled at runtime, disabling
       query_cache_type at runtime generated a warning even though it
       was already disabled. (Bug #69396, Bug #16906827)

     * For queries with ORDER BY ... LIMIT, the optimizer could
       choose a nonordering index for table access. (Bug #69410, Bug
       #16916596)

     * When selecting a union of an empty result set (created with
       WHERE 1=0 or WHERE FALSE) with a derived table, incorrect
       filtering was applied to the derived table. (Bug #69471, Bug
       #16961803)
       References: This bug is a regression of Bug #15848521.

     * For better robustness against stack overflow, the server now
       accounts for the size of the guard area when making thread
       stack size requests. (Bug #35019, Bug #11748074)

     * Two problems adding or subtracting keyword from the current
       debug system variable setting were corrected:

          + A debug value of 'd' means "all debug macros enabled".
            The following sequence left the value in an incorrect
            state:
mysql> SET debug = 'd';SELECT @@debug;
+---------+
| @@debug |
+---------+
| d       |
+---------+


mysql> SET debug = '+d,M1';SELECT @@debug;
+---------+
| @@debug |
+---------+
| d,M1    |
+---------+
            The first SET statement enables all debug macros. The
            second SET should add the M1 macro to the current set,
            which should result in no change because the current set
            is already "all macros". Instead, the second SET reset
            the current set to only the M1 macro, effectively
            disabling all others. The server now correctly leaves
            debug set to 'd'.

          + A debug value of '' means "no debug macros enabled". The
            following sequence left the value in an incorrect state:
mysql> SET debug = 'd,M1';SELECT @@debug;
+---------+
| @@debug |
+---------+
| d,M1    |
+---------+


mysql> SET debug = '-d,M1';SELECT @@debug;
+---------+
| @@debug |
+---------+
| d       |
+---------+
            The first SET statement sets debug to the M1* macro. The
            second SET should subtract the M1 macro from the current
            set, leaving no debug macros enabled. Instead, the second
            SET reset the current set to 'd' (all macros enabled).
            The server now correctly sets debug to ''.
       (Bug #58630, Bug #11765644)

     * Some subquery transformations were not visible in EXPLAIN
       output. (Bug #59852, Bug #11766685)

     * Comparison of a DATETIME value and a string did not work
       correctly for the utf8_unicode_ci collation. (Bug #68795, Bug
       #16567381)

     * The range optimizer used the wrong prerequisite for concluding
       that a table is the inner table of an outer join. This led to
       incorrect cost estimates and choice of the wrong index for
       query processing. (Bug #37333, Bug #11748775)

     * Some errors could be handled by condition handlers only if
       they were raised by particular statements, such as INSERT, but
       not if they were raised by other statements, like UPDATE. An
       example would be the foreign-key error ER_NO_REFERENCED_ROW_2
       which could be treated differently, depending on which
       statement raised it. (Bug #68831, Bug #16587369)

     * The libmysql.dll library was missing several symbols: my_init,
       mysql_client_find_plugin, mysql_client_register_plugin,
       mysql_load_plugin, mysql_load_plugin_v, mysql_options4, and
       mysql_plugin_options. (Bug #69204, Bug #16797982, Bug #62394)

     * If the WITH_SSL CMake option was specified with an incorrect
       path to the SSL installation or the path to an unsupported
       (too old) SSL installation, the option was implicitly changed
       to the bundled value and yaSSL was used instead. Now CMake
       exits with an error so the user knows that the option value
       must be changed. (Bug #69744, Bug #17162055)

     * The DBUG_ENTER string for the
       THD::increment_questions_counter() function incorrectly named
       the THD::increment_updates_counter() function. (Bug #69989,
       Bug #17297266)

     * RPM packages did not provide lowercase tags for their
       contents. For example, a server RPM indicated that it provided
       MySQL-server, but not mysql-server. (Bug #69830, Bug
       #17211588)

     * mysql.h no longer defines __WIN__ on Windows, and the MySQL
       sources have been changed to test for _WIN32 instead. (Bug
       #20338, Bug #11745828)

Thread
MySQL Community Server 5.7.2 has been released (part 4 of 4)Bjorn Munch21 Sep