List:Announcements« Previous MessageNext Message »
From:Bjorn Munch Date:December 4 2013 8:44am
Subject:MySQL Community Server 5.7.3 has been released (part 2/2)
View as plain text  
[ This is part 2 of the announcement ]

   Bugs Fixed

     * Incompatible Change: For logging to the general_log and
       slow_log tables in the mysql database, log lines containing
       multiple character sets were not always handled correctly. The
       general_log.argument and slow_log.sql_text columns now have
       been changed from MEDIUMTEXT to MEDIUMBLOB. Consequently, no
       character set transformation is done for logging to tables
       now, which aligns it with logging to files.
       If you upgrade to this release of MySQL from an earlier
       version, you must run mysql_upgrade (and restart the server)
       to incorporate these changes into the mysql database. (Bug
       #14575847)

     * Important Change; Replication: START SLAVE UNTIL
       SQL_AFTER_GTIDS did not cause the slave to stop until the next
       GTID event was received following execution of the transaction
       having the indicated GTID, which could cause issues in the
       case when the next GTID event is delayed, or does not exist.
       Now the slave stops after completing the transaction with that
       GTID. (Bug #14767986)

     * Important Change; Replication: It was possible to start the
       server with binary logging enabled but no server ID specified;
       in such cases, the server would set server_id to 1 (rather
       than 0) while slaves remained unable to connect.
       Now --server-id must be used when starting the server with
       binary logging enabled, otherwise the server is unable to
       start. If --server-id=0 is used, this value is no longer
       changed by the server; in this case, updates are written to
       the binary log, but slaves are unable to connect. Using
       --server-id without specifying a value has the same effect as
       setting it explicitly to 0. (Bug #11763963, Bug #56739)

     * InnoDB: A regression introduced by the fix for Bug#17371537
       resulted a memory leak for memcached insert operations. (Bug
       #17738935)

     * InnoDB: The trx->error_key_num field was not initialized in
       the error injection code found in
       storage/innobase/handler/handler0alter.cc. The error_key_num
       field is usually 0 but can be a non zero value if the memory
       buffer of a DDL transaction object is reused. (Bug #17624926)

     * InnoDB: Fault-tolerant code found in the log apply code for
       InnoDB ALTER TABLE ... IN PLACE could result in data
       corruption. (Bug #17625063, Bug #17512497)

     * InnoDB: Databases names beginning with a digit would cause a
       full-text search (FTS) parser error. (Bug #17607956)
       References: See also Bug #17161372.

     * InnoDB: An ALTER TABLE ... CHANGE [COLUMN] operation would
       result in an rbt_empty(index_cache->words) assertion. (Bug
       #17536995)

     * InnoDB: Running SHOW ENGINE INNODB STATUS on one connection
       thread and killing that thread by running a KILL CONNECTION
       statement from a different connection thread would result in a
       severe error. (Bug #17474166)

     * InnoDB: An excessive amount of memory would be consumed when
       querying INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE. The problem
       would occur for very large full-text search indexes. (Bug
       #17483582, Bug #70329)

     * InnoDB: buf_flush_event would be created at flush thread
       startup instead of server startup. Also, buf_flush_event would
       be signaled when InnoDB is started in read-only mode. (Bug
       #17516062)

     * InnoDB: CHECK TABLE would ignore the QUICK option. (Bug
       #17513737)

     * InnoDB: In debug builds, test case failures would occur due to
       ibuf_contract_ext performing merges and dict_stats_update
       returning evicted pages back into the buffer pool while
       ibuf_change_buffering_debug is enabled. (Bug #17446090)

     * InnoDB: InnoDB would fail to return an error when attempting
       to run a query after discarding the tablespace. (Bug
       #17431533)

     * InnoDB: Data in the OPERATION column of
       performance_schema.events_waits_current table was incorrect
       due to a code regression introduced in MySQL 5.7.2. (Bug
       #17429480)

     * InnoDB: A severe error would occur after discarding a
       tablespace. (Bug #17430207)

     * InnoDB: During a TRUNCATE TABLE operation, InnoDB: Trying to
       TRUNCATE a missing index of table ... warnings would be
       printed to the error log. These warnings should not be printed
       when the index is a full-text search (FTS) index. (Bug
       #17402002, Bug #70226)
       References: See also Bug #12429565.

     * InnoDB: The UNIV_BLOB_DEBUG compile-time debug flag, which is
       not often used and is limited by its inability to work across
       crash recovery, has been removed in order to simplify code
       refactoring. (Bug #17338452)

     * InnoDB: The UNIV_SEARCH_DEBUG compile-time debug check, which
       has never reported a failure, has been removed along with all
       references to it. (Bug #17338432)

     * InnoDB: An assertion would be raised when the database
       initialization thread encountered other threads performing
       buffer pool flushing. (Bug #17349975)

     * InnoDB: Full-text index creation on a large table would fail
       due to insufficient temporary table space and result in a
       misleading "incorrect key file" error. (Bug #17339606)

     * InnoDB: row_scan_index_for_mysql would allocate a buffer size
       of UNIV_PAGE_SIZE for row_search_for_mysql. When the record
       length was greater than UNIV_PAGE_SIZE, a Valgrind error would
       occur. (Bug #17378106)

     * InnoDB: The InnoDB mecached plugin would update a record
       before inserting to the binlog, which would cause slave server
       replication to stop. The insert should occur before the
       update. (Bug #17358875)

     * InnoDB: During parallel full-text search (FTS) index creation,
       a scanner thread reads in documents and passes them to the
       tokenizer. The tokenizer frees documents from memory when
       tokenization is complete. When tokenizing documents with a
       large amount of text, the tokenizer thread would not keep pace
       with the scanner thread. As a result, memory would not be
       freed fast enough and the "tokenization pending list" would
       grow in size. (Bug #17384979)

     * InnoDB: A full-text search (FTS) BOOLEAN MODE query with an
       invalid character in the query string could result in a memory
       access violation failure. (Bug #17350055)

     * InnoDB: trx_create and trx_free would be called for every
       memcached get request. (Bug #17371537, Bug #70172)

     * InnoDB: When innodb_file_per_table is set to OFF, replication
       would fail with error code 1880 when truncating tables. For
       tables that reside in the shared tablespace, the truncate log
       file name used during the truncate action was not unique. The
       error is due to a MySQL 5.7.2 code regression related to Bug
       #14174004. (Bug #17327409)

     * InnoDB: trx_sys_t::ro_trx_list has been removed. Adding and
       removing transactions from the ro_trx_list can be costly, and
       placing transactions on the list by default is no longer
       necessary after mutex related optimizations implemented in
       MySQL 5.7.2. User transactions are still placed on the
       trx_t::mysql_trx_list. Currently, background read-only
       transactions are not placed on any list. (Bug #17332300)

     * InnoDB: When InnoDB is retrieving rows and a KILL QUERY
       statement is issued, InnoDB would return false errors. (Bug
       #16950658)

     * InnoDB: The hardcoded size for the srv_max_n_threads variable
       was insufficient. The variable setting is now configured based
       on the maximum number of connection threads and InnoDB
       background threads. (Bug #16884077)

     * InnoDB: In btr_validate_level there are checks to ensure that
       all B-tree pages are marked when allocated. The checks would
       fail on the change buffer because the allocation of change
       buffer pages is handled differently than other B-tree pages.
       (Bug #16884217)

     * InnoDB: InnoDB would set UNIV_WORD_SIZE to 4 for both Windows
       32-bit and 64-bit systems. With this patch, UNIV_WORD_SIZE is
       set to 8 on 64-bit Windows systems. This patch also removes
       UNIV_WORD_ALIGNMENT, which is no longer used. (Bug #16774645)

     * InnoDB: When the change buffer is enabled, InnoDB would fail
       to write a transaction log record when merging a record from
       the insert buffer to a secondary index page if the insert was
       performed as an "update-in-place". (Bug #16752251, Bug #69122)

     * InnoDB: A SELECT COUNT (*) query would run very slowly when
       run concurrently with a LOAD DATA operation. (Bug #16764240,
       Bug #69141)

     * InnoDB: Due to a regression in MySQL 5.6, creating or dropping
       tables with innodb_force_recovery set to 3
       (SRV_FORCE_NO_TRX_UNDO) would fail. Additionally, this bug fix
       includes a code modification that sets InnoDB to read-only
       when innodb_force_recovery is set to a value greater than 3
       (SRV_FORCE_NO_TRX_UNDO). (Bug #16631778, Bug #69892)

     * InnoDB: When new indexes are added by an ALTER TABLE
       operation, instead of only saving table-level statistics and
       statistics for the new indexes, InnoDB would save statistics
       for the entire table, including the table's other indexes.
       This behavior slowed ALTER TABLE performance. (Bug #16511145)

     * InnoDB: An InnoDB memcached configuration error message
       contained an incorrect file name. The error message stated,
       Please create config table containers in database
       innodb_memcache by running innodb_config.sql. error 31. The
       correct file name is innodb_memcached_config.sql. Also, the
       "error 31" portion of the error message has been translated to
       its text equivalent, which is "Table not found". (Bug
       #16498810, Bug #68684)

     * InnoDB: In mutex_spin_wait(), the sync_array_reserve_cell
       function could fail to find an empty slot on systems with sync
       wait arrays that are small in size, resulting in an error.
       (Bug #16245498)

     * InnoDB: When index_read_map is called for an exact search and
       fails to return a record due to non-matching search criteria,
       the cursor would be positioned on the next record after the
       searched key. A subsequent call to index_next would return the
       next record instead of returning the previous non-matching
       row, thereby skipping a record. (Bug #14621190, Bug #15965874,
       Bug #17314241, Bug #70038, Bug #17413093, Bug #12860669, Bug
       #60220)

     * InnoDB: An infinite loop could occur in buf_page_get_gen when
       handling compressed-only pages. (Bug #12560151, Bug #61132)

     * InnoDB: InnoDB would attempt to free BLOB pages already marked
       as free. (Bug #11762662, Bug #55284)

     * InnoDB: Converting a table with a large number of columns from
       MyISAM to InnoDB would cause an assertion due to insufficient
       log buffer space. Instead of asserting, InnoDB now attempts to
       increase log buffer size automatically if the redo log size is
       too large. (Bug #11758196, Bug #50366)

     * Partitioning: The storage engine was set incorrectly during a
       rebuild of a partition; the table storage engine was ignored
       and the default storage engine used instead. Thus, in MySQL
       5.1, it was possible for REBUILD PARTITION to change the
       partition storage engine from InnoDB to MyISAM, and for the
       reverse (rebuilding partitions of MyISAM tables causing the
       partitions to use InnoDB) to occurin MySQL 5.5 and later. Now,
       when rebuilding partitions, the storage engine actually used
       by the table is checked and used by the handler for the
       rebuild operation, so that the partition storage engine is not
       inadvertently changed. (Bug #17559867)

     * Partitioning: Index condition pushdown did not work with
       partitioned tables. (Bug #17306882, Bug #70001)

     * Partitioning: After disabling the parent table's indexes with
       ALTER TABLE ... DISABLE KEYS, rebuilding any of its partitions
       enabled the indexes on those partitions, leading MyISAM to
       fail with an error when the optimizer tried to use one of the
       affected indexes.
       Now in such cases, we check for disabled indexes on the table
       before rebuilding any of its partitions. If the indexes have
       been disabled, then we disable them on the partition following
       the rebuild. (Bug #16051817)

     * Replication: When GTID-based replication was used with an
       intra-schema multi-threaded slave, transactions were assigned
       to the first worker thread only. (Bug #17590616, Bug #70536)

     * Replication: The WORKER_ID column of the
       replication_execute_status_by_worker table did not use the
       internal id column values from the mysql.slave_worker_info
       table, as expected. (Bug #17514406, Bug #70426)

     * Replication: The THREAD_ID column values shown in the
       performance_schema.replication_execute_status_by_worker table
       used the same thread IDs shown in the output from SHOW
       PROCESSLIST, rather than those used by other
       performance_schema tables. (Bug #17440991, Bug #70423)
       References: See also Bug #17473308, Bug #17526982.

     * Replication: The final argument in the SET clause of a LOAD
       DATA ... SET statement was repeated in the binary log. (Bug
       #17429677, Bug #70277)

     * Replication: When an error encountered by the dump thread
       while reading events from the active binary log file was a
       temporary error, so that the dump thread tried to read the
       event, it was possible for the dump thread to seek the wrong
       position, which could cause one or more events to be resent.
       To prevent this, the thread's position is obtained after each
       correct read of an event.
       In addition, with this fix, only binary logs that are not
       closed normally are marked as possibly being corrupted.
       Finally, two warnings are added; these are now returned when a
       dump thread encounters a temporary error. (Bug #17402313)

     * Replication: When stopping the I/O thread, it was possible
       with a very large transaction (equivalent to a binary log size
       greater than 100MB) that the thread did not receive the
       transaction to the end. When reconnecting with
       MASTER_AUTO_POSITION=1 it then tried to fetch changes from the
       next transaction, which could lead to loss of the incomplete
       transaction and its data. (Bug #17280176, Bug #69943)

     * Replication: Setting rpl_semi_sync_master_enabled while the
       master was waiting for a reply from the slave could in some
       cases cause the master to fail. (Bug #17327454, Bug #70045)

     * Replication: Trying to set CHANGE MASTER TO ...
       MASTER_AUTO_POSITION = 0 failed with error 1777
       (ER_AUTO_POSITION_REQUIRES_GTID_MODE_ON). (Bug #17277744)

     * Replication: No error was written to the log file when writing
       an incident event to the binary log. This meant that the user
       was not alerted that a slave server will later be stopped by
       the incident event. To prevent this from happening, error
       messages are now written in the log file for all incidents
       written to the binary log. (Bug #17258782)

     * Replication: The value of LAST_INSERT_ID() was not correctly
       replicated when filtering rules were used on the slave. (Bug
       #17234370, Bug #69861)

     * Replication: RESET SLAVE ALL reset only the host, port, user,
       password, and log positions. Now it resets all connection
       parameters. (Bug #17185647)

     * Replication: An internal function used for storing GTID values
       could sometimes try to handle them as strings of the wrong
       length. (Bug #17032712, Bug #69618)

     * Replication: During row-based replication with
       binlog_row_image set to MINIMAL, updating only some columns of
       a table having 9 or more columns caused mysqlbinlog to fail
       when it was used with the --verbose option. (Bug #16960133)

     * Replication: When a master with semisynchronous replication
       enabled was shut down, the master failed to wait for either a
       semisyncnronous ACK or timeout before completing the shutdown.
       This prevented semisynchronous replication from reverting to
       asynchronous replication and allowed open transactions to
       complete on the master, which resulted in missing events on
       the slave.
       To fix this problem, dump threads are now stopped last during
       shutdown, after the client is told to stop, so that, if the
       dump thread has pending events from active clients, they can
       be sent to the slave. (Bug #16775543)

     * Replication: Issuing a GRANT statement with invalid parameters
       caused the master to write LOST_EVENTS events into its binary
       logs, causing replication to stop. Now such cases, if one or
       more grants or revocations of privileges are successful, an
       incident is written to the log; otherwise, only a warning is
       logged. (Bug #16629195, Bug #68892)

     * Replication: START SLAVE failed when the server was started
       with the options --master-info-repository=TABLE
       relay-log-info-repository=TABLE and with autocommit set to 0,
       together with --skip-slave-start.
       A workaround for previous versions of MySQL is to restart the
       slave mysqld without the --skip-slave-start option. (Bug
       #16533802)

     * Replication: A number of unneeded initializations of objects
       that were used but not actually needed for reading the relay
       info log were removed. (Bug #16291602)

     * Replication: mysqlbinlog now supports the same command-line
       options relating to SSL as mysql, mysqladmin, and other MySQL
       client programs. See SSL Command Options
       (http://dev.mysql.com/doc/refman/5.7/en/ssl-options.html), for
       more information. (Bug #11751199, Bug #41975)

     * UNION ALL statements for which one SELECT returned zero rows
       could result in an incorrect FOUND_ROWS() value. (Bug
       #17708480)

     * For debug builds, an error occurring during DELETE IGNORE
       could raise an assertion. (Bug #17720294)

     * Enabling Index Merge optimizer switches and setting a small
       sort_buffer_size value could lead to a server exit. (Bug
       #17617945)

     * CMake configuration for the Clang compiler sets more
       appropriate flags for building on Linux. Specifically, -g
       -fno-omit-frame-pointer -fno-strict-aliasing is now added.
       (Bug #17633291)

     * Disconnect processing overhead was reduced for sessions that
       have no outstanding prepared statements. Previously, a global
       mutex was acquired to handle these, but there is no need to do
       so in the absence of such statements. (Bug #17560986)

     * Semi-join materialization strategy was not used for VARCHAR
       columns longer than 512 bytes, resulting in use of a
       less-efficient strategy and worse query performance. (The
       limit in characters rather than bytes depends on the column
       character set; 170 characters for utf8, for example.) (Bug
       #17566396)

     * UNION ALL queries for which the last SELECT selected an
       aggregate value from an empty table resulted in an incorrect
       FOUND_ROWS() value. (Bug #17580869)

     * Some license and documentation files were missing from Windows
       MSI packages. (Bug #17584523)

     * The optimizer did not consider a clustered primary key as a
       covering index unless all columns required for a query were in
       the primary key definition. This incorrectly raised the
       calculated cost of using the index and caused it not to be
       used in some cases when it would be more efficient than the
       index otherwise chosen. (Bug #17560636)

     * Selecting from the Performance Schema session_connect_attrs
       table under high load could cause a server exit. (Bug
       #17542370)

     * Performance Schema memory instrumentation overhead was
       reduced.
       Memory allocated internally by the Performance Schema was not
       reported by the memory instrumentation. This was corrected,
       and there is now a memory/performance_schema/internal_buffers
       instrument (disabled by default) that can be enabled to obtain
       this information. (Bug #17493868)

     * Stored programs were not listed in the Performance Schema
       objects_summary_global_by_type table. (Bug #17472833)

     * The Performance Schema had a race condition adding and
       deleting stored procedure entries that could raise an
       assertion. (Bug #17529279)

     * my_print_stacktrace() printed a Reference Manual URL that
       pointed to the 5.1 manual. It now is parameterized for the
       current server series. (Bug #17465503)

     * DROP TRIGGER succeeded even with the read_only system variable
       enabled. (Bug #17503460)

     * An incorrect result could be produced by a simple
       COUNT(DISTINCT) query on a table that contains a large number
       of distinct values. This was more likely when tmp_table_size
       or max_heap_table_size were set to small values. (Bug
       #17500866)

     * An assertion was raised if a statement tried to set an
       exception condition in a diagnostics area which already
       contained an exception or completion condition. This could
       occur if a failed stored program tried to transfer its
       exception condition to the diagnostics area of its caller that
       already contained a condition. (Bug #17400687)

     * In the Performance Schema memory instrumentation, statistics
       collected for memory-free operations could be under-evaluated,
       leading to the appearance of a memory leak. (Bug #17400029)

     * KILL with an invalid thread ID value could raise an assertion.
       (Bug #17420682)

     * Compilation failures under Visual Studio 2012 were corrected.
       (Bug #17430236)

     * For JSON-format EXPLAIN statements, materialized views were
       incorrectly labeled as optimized_away_subqueries rather than
       as materialized_from_subquery. (Bug #17428655)

     * In debug builds, SHOW PROCEDURE CODE raised an assertion. (Bug
       #17434385)

     * The mysql_real_connect() C API function could leak memory if
       it failed. (Bug #17337684)

     * Savepoints could not be used successfully following an
       ER_LOCK_DEADLOCK error (or ER_LOCK_WAIT_TIMEOUT error, if
       innodb_rollback_on_timeout was enabled). (Bug #17356954)
       References: This bug is a regression of Bug #14188793.

     * The CLIENT_CONNECT_WITH_DB flag was improperly handled in the
       C client library. This could lead to a malformed packet sent
       to the server. (Bug #17351732)

     * Upgrades using RPM packages failed if the MySQL server was
       running due to failure to ignore the mysqld_safe.pid file
       created by mysqld_safe. (Bug #17343851)

     * Compiling without the Performance Schema resulted in
       unresolved symbols. (Bug #17399658)

     * An assertion was raised if SET PASSWORD was used for an
       account that has been manually deleted from the mysql.user
       table but still present in memory. (Bug #17359329)

     * Some warnings produced by mysql_install_db referred to the
       now-deprecated log_warnings system variable. These have been
       updated to refer to log_error_verbosity instead. (Bug
       #17363350)

     * Full-text search on InnoDB tables failed on searches that used
       the + boolean operator. (Bug #17280122)

     * The mysql_options() C API function could leak memory if called
       more than once with the MYSQL_SET_CLIENT_IP option. (Bug
       #17297012)

     * The CONV() function could call abs(INT_MIN), which is
       undefined, and cause a server exit. (Bug #17296644)

     * An error array in the SSL code was missing a comma, leading to
       implicit concatenation of adjacent messages and a resulting
       off-by-one error in the relationship between error numbers and
       messages. (Bug #17294150)

     * Cost comparison for ref access could be inaccurate. (Bug
       #17303649)

     * The filesort implementation sometimes failed to allocate
       enough buffer space, leading to a server exit. (Bug #17326567)

     * For single-threaded workloads, the optimizer recognizes some
       special cases for which it can avoid function calls and
       enhance performance. (Bug #17234723)

     * The my_load_path() function could in some cases calculate a
       path value incorrectly. (Bug #17204851)

     * Within a stored program, comparison of the value of a scalar
       subquery with an IN clause resulted in an error for the first
       execution and raised an assertion for the second execution.
       (Bug #17029399)

     * In debug builds, an assert could be raised if a statement was
       killed while executing a trigger. (Bug #17049537)

     * Temporary table columns were marked as temporarily nullable
       without taking into account the presence of triggers for the
       table. This could lead to NOT NULL columns being updated to
       NULL by a multiple-table UPDATE statement. (Bug #17055378)

     * JSON-format EXPLAIN statements could leak memory. (Bug
       #16970785)

     * Some queries with ROLLUP and an inner subquery with a
       reference to an outer field could raise an assertion. (Bug
       #16967281)

     * Information was not transferred between two optimizer modules
       because there were duplicate variables for the same
       information. This could lead to suboptimal query execution
       plans and incorrect query results. (Bug #16982071, Bug #70021,
       Bug #17310161)

     * GRANT without an IDENTIFIED BY clause resulted in an error
       even for existing users. (Bug #16938568)

     * For partitioned tables, queries could return different results
       depending on whether Index Merge was used. (Bug #16862316)

     * GROUP_CONCAT() with an invalid separator could cause a server
       exit. (Bug #16870783)

     * mysqltest_embedded does not work with the --ps-protocol
       option, so it now issues a warning if that option is given.
       (Bug #16817580)

     * An internal InnoDB string routine could write past the end of
       a buffer. (Bug #16765410)

     * GIS intersection-related code was missing a return value
       check, leading to a loop in nondebug builds and a raised
       assertion in debug builds. (Bug #16659166)

     * For debug builds, when the optimizer removed an Item_ref
       pointing to a subquery, it caused a server exit. (Bug
       #16509874)
       References: This bug is a regression of Bug #16318585.

     * It is no longer possible to expire the password for
       anonymous-user accounts because an anonymous user cannot
       execute SET PASSWORD to reset the account password. (Bug
       #16483619)

     * On Windows, a MySQL client program that simply used #include
       <mysql.h> could not be compiled due to missing Windows
       declarations in that file. The same program would compile on
       other platforms. (Bug #16409270)

     * HANDLER READ could cause a server exit due to wrongly
       considering columns as constant. (Bug #16386136)

     * Using the binary client/server protocol, the second execution
       of a prepared statement for a query with parameters in the
       LIMIT clause raised an assertion. (Bug #16346241)

     * Very long database names in queries could cause the server to
       exit. (Bug #15912213, Bug #16900358)

     * Memory allocated for the Performance Schema was not freed at
       server shutdown. (Bug #14771682)

     * If an INSTALL PLUGIN statement contained invalid UTF-8
       characters in the shared library name, it caused the server to
       hang (or to raise an assertion in debug builds). (Bug
       #14653594)

     * Standalone Windows MSI packages did not have the ALLUSERS
       property set. They now set ALLUSERS=1. For earlier MSI
       packages in this MySQL series, a workaround is to use the
       following command:
C:\> msiexec /i msi_installer_name ALLUSERS=1
       (Bug #14647206)

     * Deadlocks involving metadata locks and InnoDB deadlocks were
       both reported as an ER_LOCK_DEADLOCK error, but only InnoDB
       deadlocks rolled back the transaction. Now both deadlocks roll
       back the transaction. (Bug #14188793)

     * Columns in a PRIMARY KEY must be NOT NULL, but if declared
       explicitly as NULL produced no error. Now an error occurs. For
       example, a statement such as CREATE TABLE t (i INT NULL
       PRIMARY KEY) is rejected. The same occurs for similar ALTER
       TABLE statements. (Bug #13995622, Bug #66987, Bug #15967545,
       Bug #16545198)

     * Fixed a potential problem with the MySQL string function
       strmov(). Its behavior with respect to overlap of source and
       destination previously depended on native support for
       stpcpy(). (Bug #48864, Bug #17429539)

     * If one connection changed its default database and
       simultaneously another connection executed SHOW PROCESSLIST,
       the second connection could access invalid memory when
       attempting to display the first connection's default database.
       memory. (Bug #58198, Bug #11765252)

     * Full-text search on InnoDB tables failed on searches for words
       containing apostrophes when using boolean operators. (Bug
       #69932, Bug #17276125)

     * InnoDB deadlock caused transaction rollback but did not
       release metadata locks, blocking concurrent DDL on the
       transaction tables until the connection that got the deadlock
       issued an explicit COMMIT or ROLLBACK. (Bug #69668, Bug
       #17054007)

     * In debug builds, static initialization code could call DBUG
       functions before the DBUG subsystem was initialized. (Bug
       #69653, Bug #17063675)

     * With the thread pool plugin enabled, the the PROCESSLIST_USER
       and PROCESSLIST_HOST columns of the Performance Schema threads
       table were always NULL for client sessions. Also, for the main
       thread, those columns were not NULL but set to a user account.
       Note
       As part of the bug fix implementation, Performance Schema
       instrumentation for the thread pool plugin was changed to use
       thread_pool, not sql.
       (Bug #70028, Bug #17310065, Bug #17049691)

     * COUNT(DISTINCT) should not count NULL values, but they were
       counted when the optimizer used Loose Index Scan. (Bug #69841,
       Bug #17222452)

     * For queries of the form UPDATE ... WHERE unique_key ORDER BY
       ... LIMIT ..., incorrect rows could be updated. Unique keys
       permit multiple NULL values, but the optimizer did not always
       consider all of them. (Bug #68656, Bug #16482467)

     * If asked to upgrade a server that was running without InnoDB
       enabled, mysql_upgrade issued complaints about InnoDB tables
       not existing (tables that will not exist unless InnoDB is
       available). (Bug #70152, Bug #17361912)

     * In some cases, range conditions over indexes defined on column
       prefixes returned incomplete result sets. (For example, SELECT
       ... WHERE 'abcdef1' < col_name AND col_name < 'abcdef9', where
       the index on col_name indexed only the first 6 characters.)
       (Bug #70341, Bug #17458273)

     * Reads of Geometry values within a stored program could read
       already-freed memory and produce incorrect results. (Bug
       #69517, Bug #16985214)

     * ER_TRUNCATED_WRONG_VALUE (truncated value) errors for DECIMAL
       values failed to show the erroneous input value. (Bug #68745,
       Bug #16552002)

     * Performance Schema instrumentation overhead was reduced for
       frequent connect/disconnect operations. (Bug #70018, Bug
       #17310878)

     * For a column declared as a PRIMARY KEY, the MySQL sometimes
       unnecessarily added a DEFAULT clause. For example, for CREATE
       TABLE t (a INT, PRIMARY KEY(a)), a DEFAULT 0 clause was added,
       whereas with CREATE TABLE t (a INT PRIMARY KEY), it was not.
       (Bug #36723, Bug #11748566)

     * Setting host_cache_size at startup had no effect. (Bug #70552,
       Bug #17576516)

     * InnoDB full-text searches failed to find records within
       transactions that included savepoints. (Bug #70333, Bug
       #17458835)

     * Some INSERT INTO ... SELECT ... FROM statements were slow
       unless the tmp_table_size and max_heap_table_size system
       variables were set large enough to permit the temporary table
       used for query processing to be stored in the MEMORY storage
       engine. (Bug #69368, Bug #16894092)

     * Incorrect reference counting in the range optimizer module
       resulted in potential for missing or duplicate rows in the
       query result set. (Bug #70236, Bug #17405466)

     * With a NULL literal in a particular parameter position,
       IFNULL(), COALESCE(), and CASE returned a signed value when
       they should return an unsigned value. (Bug #65976, Bug
       #14359340)

     * For queries that qualify to be written to the slow query log,
       the check whether the log is enabled now occurs earlier,
       reducing overhead.
       Also, when log_throttle_queries_not_using_indexes is specified
       at server startup, a value is now required. Previously, it was
       incorrectly treated as optional. (Bug #69420, Bug #16924125)

     * Host names in grant tables are stored in lowercase, but
       mysql_install_db could fail to observe this convention,
       leading to accounts that could not be dropped with DROP USER.
       (Bug #62255, Bug #12917164, Bug #62254, Bug #12917151)

     * For EXPLAIN FOR CONNECTION connection_id, the parser did not
       permit connection_id values larger than the maximum signed
       BIGINT value. The maximum unsigned value now is permitted.
       (Bug #70533, Bug #17564492)

     * At server shutdown, a race condition between the main thread
       and the shutdown thread could cause server failure. (Bug
       #56666, Bug #11763896)

     * EXPLAIN FOR CONNECTION reported no error if the connection ID
       belonged to no connection thread. (Bug #70532, Bug #17564493)

     * The server uses the ethernet hardware address for UUID
       generation, but made assumptions about the names of ethernet
       devices rather than querying the system for their names.
       Thanks to Honza Horak for the patch. (Bug #63055, Bug
       #13548252)

     * Several issues identified by the Coverity static analysis tool
       were fixed. Thanks to Jan Stanek and Honza Horak for the
       patches. (Bug #70591, Bug #17590095)

     * Missing va_end() calls were added to logging and UCS2 code.
       Thanks to Jan Stanek for the patch. (Bug #68896, Bug
       #16725769)

     * MySQL did not compile on Mac OS X 10.9 (Mavericks). (Bug
       #70542, Bug #17647863)

     * Within a stored function or trigger, occurrence of an
       ER_LOCK_WAIT_TIMEOUT error caused failure to execute a
       condition handler. (Bug #67947, Bug #16041903)

     * Specifying the same directory with multiple instances of
       --ignore-db-dir caused a server exit. (Bug #69441, Bug
       #16944177)

     * Killing a query that is performing a filesort operation
       resulted in an ER_SERVER_SHUTDOWN (Server shutdown in progess)
       error. (Bug #18256, Bug #11745656)

     * Views containing ORDER BY integer could result in errors at
       view evaluation time. Consider these view definitions, which
       use ORDER BY with an ordinal number:
CREATE VIEW v1 AS SELECT x, y, z FROM t ORDER BY 2;
CREATE VIEW v2 AS SELECT x, 1, z FROM t ORDER BY 2;
       In the first case, ORDER BY 2 refers to a named column y. In
       the second case, it refers to a constant 1. For queries that
       select from either view fewer than 2 columns (the number named
       in the ORDER BY clause), an error occurred if the server
       evaluated the view using the MERGE algorithm. Examples:
mysql> SELECT x FROM v1;
ERROR 1054 (42S22): Unknown column '2' in 'order clause'
mysql> SELECT x FROM v2;
ERROR 1054 (42S22): Unknown column '2' in 'order clause'
       To handle view definitions like this, the server now writes
       them differently into the .frm file that stores the view
       definition. This difference is visible with SHOW CREATE VIEW.
       Previously, the .frm file contained this for the ORDER BY 2
       clause:
For v1: ORDER BY 2
For v2: ORDER BY 2
       Now, the .frm file contains this:
For v1: ORDER BY `t`.`y`
For v2: ORDER BY ''
       That is, for v1, 2 is replaced by a reference to the name of
       the column referred to. For v2, 2 is replaced by a constant
       string expression (ordering by a constant has no effect, so
       ordering by any constant will do).
       If you experience view-evaluation errors such as just
       described, drop and recreate the view so that the .frm file
       contains the updated view representation. Alternatively, for
       views like v2 that order by a constant value, drop and
       recreate the view with no ORDER BY clause. (Bug #28695, Bug
       #11746789)

- Bjorn Munch
Thread
MySQL Community Server 5.7.3 has been released (part 2/2)Bjorn Munch4 Dec