Dear MySQL users,
MySQL Server 5.7.9 (GA) is a new version of the world's
most popular open source database. This is the first official release
of MySQL 5.7.
[Due to size limitations on forum/email, this announcement had to be
split into two parts. This is part 1.]
The new features in this release are now deemed to be of Release quality.
Note that 5.7.9 includes all features in MySQL 5.6 and previous 5.7
Development Milestone Releases. An overview of what's new in MySQL 5.7
is available online at
http://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html
For information on installing MySQL 5.7.9 on new servers, please see
the MySQL installation documentation at
http://dev.mysql.com/doc/refman/5.7/en/installing.html
MySQL Server 5.7.9 is available in source and binary form for a number of
platforms from the "Development Releases" selection of our download
pages at
http://dev.mysql.com/downloads/mysql/
MySQL Server 5.7.9 is also available from our repository for Linux
platforms, go here for details:
http://dev.mysql.com/downloads/repo/
Windows packages are available via the Installer for Windows or .ZIP
(no-install) packages for more advanced needs. The point and click
configuration wizards and all MySQL products are available in the
unified Installer for Windows:
http://dev.mysql.com/downloads/installer/
5.7.9 also comes with a web installer as an alternative to the full
installer.
The web installer doesn't come bundled with any actual products
and instead relies on download-on-demand to fetch only the
products you choose to install. This makes the initial download
much smaller but increases install time as the individual products
will need to be downloaded.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:
http://bugs.mysql.com/report.php
The following section lists the changes in MySQL 5.7.9 since the 5.7.8
Release Candidate.
http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-9.html
Enjoy!
=============================================================================Changes in MySQL 5.7.9 (2015-10-21)
* Audit Log Plugin Notes
* C API Notes
* Compilation Notes
* Packaging Notes
* Performance Schema Notes
* Plugin Notes
* Security Notes
* Spatial Data Support
* sys Schema Notes
* Functionality Added or Changed
* Bugs Fixed
Audit Log Plugin Notes
* Some events cannot be terminated. Previously, if an audit
plugin returned nonzero status for a nonterminable event,
the server ignored the status and continued processing
the event. However, if an audit plugin used the
my_message() function to terminate a nonterminable event,
a server exit occurred. Now the server correctly handles
termination of nonterminable events using my_message().
(Bug #21458066)
C API Notes
* The mysql_options() C API function has two new options,
MYSQL_OPT_MAX_ALLOWED_PACKET and
MYSQL_OPT_NET_BUFFER_LENGTH, that set the
max_allowed_packet and net_buffer_length system
variables, respectively. Each option name also now can be
passed to the mysql_get_option() C API function to
retrieve its value. For more information, see
mysql_options()
(http://dev.mysql.com/doc/refman/5.7/en/mysql-options.html),
and mysql_get_option()
(http://dev.mysql.com/doc/refman/5.7/en/mysql-get-option.html).
(Bug #20821550)
* Previously, it was necessary to call mysql_thread_end()
for each mysql_thread_init() call to avoid a memory leak.
C API internals have been reimplemented to reduce the
amount of information allocated by mysql_thread_init()
that must be freed by mysql_thread_end():
+ For release/production builds without debugging
support enabled, mysql_thread_end() need not be
called.
+ For debug builds, mysql_thread_init() allocates
debugging information for the DBUG package (see The
DBUG Package
(http://dev.mysql.com/doc/refman/5.7/en/dbug-package.html)).
mysql_thread_end() must be called for each
mysql_thread_init() call to avoid a memory leak.
(Bug #20621281, Bug #21802367)
Compilation Notes
* MySQL distributions now contain a mysqlclient.pc file
that provides information about MySQL configuration for
use by the pkg-config command. This enables pkg-config to
be used as an alternative to mysql_config for obtaining
information such as compiler flags or link libraries
required to compile MySQL applications. For more
information, see Building C API Client Programs Using
pkg-config
(http://dev.mysql.com/doc/refman/5.7/en/c-api-building-clients-pkg-config.html).
A new INSTALL_PKGCONFIGDIR CMake option is available to
specify the directory in which to install the
mysqlclient.pc file. The default value is
INSTALL_LIBDIR/pkgconfig, unless INSTALL_LIBDIR ends with
/mysql, in which case that is removed first. (Bug
#20637746)
Packaging Notes
* The shell and Perl versions of mysql_install_db have been
removed from MySQL distributions. The executable C++
version of mysql_install_db implemented in MySQL 5.7.5 is
still present, but remains deprecated (use mysqld
--initialize instead) and will be removed in a future
MySQL release. (Bug #21625471)
* The deprecated _r versions of the libmysqlclient
libraries are no longer installed. (Bug #21311067)
Performance Schema Notes
* Previously, the transaction instrument in the
setup_instruments table was disabled by default, and the
events_transactions_current and
events_transactions_history consumers in the
setup_consumers table were enabled by default. This setup
is inconsistent, and having the consumers enabled could
lead to the impression that transactions were
instrumented by default. Now, the consumers are also
disabled by default. To monitor transactions, enable the
instrument and the applicable consumers. (Bug #21780891)
* With the show_compatibility_56 system variable disabled,
SHOW VARIABLES and SHOW STATUS statements failed if MySQL
was compiled without Performance Schema support.
Consequently, it is no longer possible to compile without
the Performance Schema. If it is desired to compile
without particular types of instrumentation, that can be
done with the following CMake options:
DISABLE_PSI_COND
DISABLE_PSI_FILE
DISABLE_PSI_IDLE
DISABLE_PSI_MEMORY
DISABLE_PSI_METADATA
DISABLE_PSI_MUTEX
DISABLE_PSI_PS
DISABLE_PSI_RWLOCK
DISABLE_PSI_SOCKET
DISABLE_PSI_SP
DISABLE_PSI_STAGE
DISABLE_PSI_STATEMENT
DISABLE_PSI_STATEMENT_DIGEST
DISABLE_PSI_TABLE
DISABLE_PSI_THREAD
DISABLE_PSI_TRANSACTION
For example, to compile without mutex instrumentation,
configure MySQL using the -DDISABLE_PSI_MUTEX=1 option.
(Bug #21669500)
* Two changes were made regarding the effect of
show_compatibility_56:
+ Previously, when show_compatibility_56=OFF,
selecting from the following INFORMATION_SCHEMA
system and status variable tables returned an empty
result and a deprecation warning:
INFORMATION_SCHEMA.GLOBAL_VARIABLES
INFORMATION_SCHEMA.SESSION_VARIABLES
INFORMATION_SCHEMA.GLOBAL_STATUS
INFORMATION_SCHEMA.SESSION_STATUS
This caused confusion for applications that were not
aware that such selects could be empty: An empty
result and a warning was not sufficient notice to
signal the need to migrate to the corresponding
Performance Schema system and status variable
tables.
To address this issue, selecting from the
INFORMATION_SCHEMA system and status tables now
produces an error, to make it more evident that an
application is operating under conditions that
require modification, as well as where the problem
lies. The error code is ER_FEATURE_DISABLED_SEE_DOC.
The error message indicates which table is disabled
and that the show_compatibility_56 documentation
should be consulted.
+ Previously, when show_compatibility_56=ON, selecting
from the following Performance Schema status
variable tables returned an empty result:
performance_schema.global_status
performance_schema.session_status
This made it more difficult to migrate applications
from the INFORMATION_SCHEMA status variable tables
to the corresponding Performance Schema tables:
Successfully selecting from the Performance Schema
tables required knowing both that the server is from
MySQL 5.7 and that show_compatibility_56=OFF.
To address this issue, selecting from the
Performance Schema status variable tables now
produces the same result regardless of the value of
show_compatibility_56. Thus, it is necessary to know
only that the server is from MySQL 5.7.9 or higher.
(If so, select from the Performance Schema tables.
Otherwise, select from the INFORMATION_SCHEMA
tables.)
For additional information about the effects of
show_compatibility_56 and migration issues, see Server
System Variables
(http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html),
and Migrating to Performance Schema System
and Status Variable Tables
(http://dev.mysql.com/doc/refman/5.7/en/performance-schema-variable-table-migration.html).
(Bug #21606701)
* These Performance Schema tables now are world readable
and accessible without the SELECT privilege:
global_variables, session_variables, global_status, and
session_status. An implication of this change is that
SHOW VARIABLES and SHOW STATUS no longer require
privileges on the underlying Performance Schema tables
from which their output is produced when
show_compatibility_56=OFF. (Bug #21251297)
* With the show_compatibility_56 system variable enabled,
the reported values of the Last_query_cost and
Last_query_partial_plans status variables were incorrect.
With the show_compatibility_56 system variable disabled,
the reported values of the Created_tmp_tables,
Handler_external_lock, and Table_open_cache_% status
variables were incorrect. (Bug #20483278, Bug #21788549,
Bug #21788887)
* The Performance Schema session_account_connect_attrs had
mistakenly been changed to require the SELECT privilege.
It requires no special privileges again. (Bug #77702, Bug
#21436364)
References: This bug was introduced by Bug #14569746.
* In the setup_timers table, a CYCLE timer for ARM64
platforms is now available. (Bug #77620, Bug #21374923)
* The Performance Schema now includes these instruments for
monitoring I/O on binary log and relay log cache files:
wait/io/file/sql/binlog_cache
wait/io/file/sql/binlog_index_cache
wait/io/file/sql/relaylog_cache
wait/io/file/sql/relaylog_index_cache
In addition, the default value of
performance_schema_max_file_classes has been increased
from 50 to 80. (Bug #76225, Bug #20675180)
* The Performance Schema threads table now contains a
THREAD_OS_ID column that indicates the thread or task
identifier as defined by the underlying operating system.
For example, the column value corresponds to the Process
Explorer thread ID on Windows and the gettid() value on
Linux. For more information, see The threads Table
(http://dev.mysql.com/doc/refman/5.7/en/threads-table.html).
If you upgrade to this MySQL release from an earlier
version, you must run mysql_upgrade (and restart the
server) to incorporate this change into the
performance_schema database.
Plugin Notes
* The audit plugin API has been extensively revised to
support a finer breakdown of the general event type
(MYSQL_AUDIT_GENERAL_CLASS) into more specific events.
This enables audit plugins to more precisely indicate the
types of events in which they are interested and reduces
overhead for plugins that have use for only a few event
types. The API also now permits early termination of
event execution. For more information, see Writing Audit
Plugins
(http://dev.mysql.com/doc/refman/5.7/en/writing-audit-plugins.html).
The general event type is still available but
is deprecated and will be removed in a future MySQL
release.
In addition, a security_context plugin service is now
available. Audit plugins can use this service to examine
or modify the security context of threads associated with
audited events. See MySQL Services for Plugins
(http://dev.mysql.com/doc/refman/5.7/en/plugin-services.html).
Security Notes
* For RPM-based packages, the permissions used to create
the data directory (/var/lib/mysql) have been changed
from 755 to 751. This tightens the data directory
permissions while still permitting world access to the
mysql.sock file in that directory. (Bug #21066592)
Spatial Data Support
* The required version of the Boost library for server
builds has been raised from 1.58.0 to 1.59.0. (Bug
#21567456)
* Spatial functions such as ST_MPointFromText() and
ST_GeomFromText() that accept WKT-format representations
of MultiPoint values now permit individual points within
values to be surrounded by parentheses. For example, both
of the following function calls are valid, whereas
previously the second one produced an error:
ST_MPointFromText('MULTIPOINT (1 1, 2 2, 3 3)')
ST_MPointFromText('MULTIPOINT ((1 1), (2 2), (3 3))')
In addition, functions such as ST_AsText() and ST_AsWKT()
that produce WKT-format results now display MultiPoint
values with parentheses surrounding each point. (Bug
#54065, Bug #11761559)
sys Schema Notes
* The sys schema included in MySQL distributions was
updated to version 1.5.0. This includes new features and
fixes for several issues:
+ sys schema objects now have a DEFINER of
'mysql.sys'@'localhost'. (Previously, the DEFINER
was 'root'@'localhost'.) Use of the dedicated
mysql.sys account avoids problems that occur if a
DBA renames or removes the root account.
+ The following sys schema session views now provide
progress reporting for long-running transactions:
processlist
session
x$processlist
x$session
The progress column of these views shows the
percentage of work completed for stages that support
progress reporting.
+ A new diagnostics() stored procedure enables DBAs
and other support personnel to collect diagnostic
information for investigating MySQL instances. A new
metrics view and statement_performance_analyzer()
stored procedure provide supporting infrastructure
for the diagnostics() procedure.
+ The sys schema ps_is_instrument_default_enabled()
and ps_is_instrument_default_timed() stored
functions returned incorrect results in some cases.
+ The ENABLED and HISTORY columns that were added to
the Performance Schema setup_actors table in earlier
MySQL 5.7 releases caused the sys schema
ps_setup_reset_to_default() stored procedure not to
work.
+ Handing of event-timing information in the sys
schema was updated to handle changes to Performance
Schema event-timing columns in MySQL 5.7.8.
+ mysql_upgrade previously checked for an exact
object-count value in the sys schema to determine
whether an upgrade was needed. If local objects had
been added, the resulting reinstallation removed
those objects. Now it checks for at least the
expected number of objects.
If you upgrade to this MySQL release from an earlier
version, you must run mysql_upgrade to incorporate these
changes into the sys schema.
Thanks to Daniël van Eeden, Jesper Wisborg Krogh, Shlomi
Noach, and Morgan Tocker for their contributions to this
update. (Bug #78115, Bug #21647101, Bug #77927, Bug
#21550271, Bug #78720, Bug #21966366)
Functionality Added or Changed
* Incompatible Change; InnoDB: To better manage redo log
format changes, the redo log header of the first redo log
file (ib_logfile0) now includes a format version
identifier and a text string that identifies the MySQL
version that created the redo log files.
A new boolean configuration option, innodb_log_checksums,
replaces the innodb_log_checksum_algorithm option.
innodb_log_checksums=ON enables a CRC-32C checksum,
making it the only supported checksum for redo log pages.
This patch also removes unused fields from the redo log
header and checkpoint pages.
Due to redo log format changes introduced by this patch,
upgrading to or downgrading from MySQL 5.7.9 and higher
requires a clean shutdown and, in some cases, removal of
existing redo log files. For instructions related to this
change, see Changes Affecting Upgrades to MySQL 5.7
(http://dev.mysql.com/doc/refman/5.7/en/upgrading-from-previous-series.html),
and Changes Affecting Downgrades
from MySQL 5.7
(http://dev.mysql.com/doc/refman/5.7/en/downgrading-to-previous-series.html).
(Bug #21759424)
* Important Change; InnoDB: DYNAMIC replaces COMPACT as the
implicit default row format for InnoDB tables. A new
configuration option, innodb_default_row_format,
specifies the default InnoDB row format. Permitted values
include DYNAMIC (the default), COMPACT, and REDUNDANT.
The COMPACT row format remained the default row format
until this release to ensure compatibility with older
versions of InnoDB in MySQL 5.1 and earlier. Now that
MySQL 5.1 has reached the end of its product lifecycle,
the newer DYNAMIC row format becomes the default. For
information about advantages of the DYNAMIC row format,
see DYNAMIC and COMPRESSED Row Formats
(http://dev.mysql.com/doc/refman/5.7/en/innodb-row-format-dynamic.html).
Newly created tables use the row format defined by
innodb_default_row_format when a ROW_FORMAT option is not
specified explicitly or when ROW_FORMAT=DEFAULT is used.
Existing tables retain their current row format if a
ROW_FORMAT option was specified explicitly. If a
ROW_FORMAT option was not specified explicitly or if
ROW_FORMAT=DEFAULT was used, any operation that rebuilds
a table also silently changes the row format of the table
to the format defined by innodb_default_row_format. For
more information, see Specifying the Row Format for a
Table
(http://dev.mysql.com/doc/refman/5.7/en/innodb-row-format-specification.html).
* Important Change: Introduced the -> JSON column-path
operator. column->path is now supported as a synonym of
JSON_EXTRACT(column, path), where column is a JSON
column, and path is a valid JSON path.
An expression with ->, like its equivalent that uses
JSON_EXTRACT() instead, can be used in place of a column
identifier wherever the latter can occur within a valid
SQL statement. For example, the following CREATE TABLE
and SELECT statements are valid:
CREATE TABLE t1 (
a JSON,
b INT,
g INT GENERATED ALWAYS AS (a->"$.id"),
h INT GENERATED ALWAYS AS (a->"$.storeid"),
INDEX i (g),
INDEX j (h)
);
SELECT
CONCAT(a->"$.fname", ' ', a->"$.lname") AS name,
a->"$.id" AS id,
a->"$.storeid" AS store
FROM t1
WHERE g > 500
ORDER BY a->"$.storeid", a->"$.lname";
A column-path expression can be used for any column value
that is read in a SELECT column list, or in a WHERE,
ORDER BY, or GROUP BY clause in any SQL statement; such
expressions cannot be used to set values.
When an SQL statement contains one or more expressions
using -> notation, each of these is translated into an
equivalent expression that employs the JSON_EXTRACT()
function instead. This can be seen in the output from
EXPLAIN when used on such a statement.
Like JSON_EXTRACT(), the -> operator returns as NULL if
no matching value for an otherwise valid path is found.
For more information about -> and JSON_EXTRACT(), see
Functions That Search JSON Values
(http://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html).
See Searching and Modifying JSON Values
(http://dev.mysql.com/doc/refman/5.7/en/json.html#json-paths),
for information about JSON path support. See also
Secondary Indexes and Virtual Generated Columns
(http://dev.mysql.com/doc/refman/5.7/en/create-table.html#create-table-secondary-indexes-virtual-columns),
for additional information and examples.
* InnoDB: A new INNODB_METRICS server operations counter
(innodb_dict_lru_count) counts the number of tables
evicted from the table cache LRU list. Thanks to Daniël
van Eeden for the patch. (Bug #21682332, Bug #78190)
* InnoDB: The new innodb_numa_interleave read-only
configuration option allows you to enable the NUMA
interleave memory policy for allocation of the InnoDB
buffer pool. When innodb_numa_interleave is enabled, the
NUMA memory policy is set to MPOL_INTERLEAVE for the
mysqld process. After the InnoDB buffer pool is
allocated, the NUMA memory policy is set back to
MPOL_DEFAULT. This option is only available on
NUMA-enabled systems.
Thanks to Stewart Smith for the patch. (Bug #18871046,
Bug #72811)
* MySQL distributions now include these header files
because my_sys.h depends on them: my_thread_local.h,
thr_cond.h, thr_mutex.h, thr_rwlock.h. (Bug #21909332)
* MySQL Server RPM packages now obsolete MySQL Connector C.
Installing MySQL Server causes older libmysqlclient from
any MySQL Connector C packages to be removed and replaces
them with the current libmysqlclient. (Bug #21900800)
* yaSSL was upgraded to version 2.3.8. (Bug #21888925)
* Insert overhead for the MEMORY storage table was reduced
by caching computed hash values. (Bug #21866029)
* RPM .spec files were updated so that MySQL Server builds
from source RPM packages will include the proper files to
take advantage of operating system NUMA capabilities.
This introduces a runtime dependency on libnuma.so.1. RPM
and yum detect this and refuse to install if that library
is not installed. (Bug #21775221)
* The initial-password message written by mysqld
--initialize to the error log has been reduced from a
[Warning] to a [Note]. (Bug #21680457)
* The JSON_APPEND() function was renamed to
JSON_ARRAY_APPEND(). (Bug #21560934)
* Unneeded scripts and test files were removed from the
tests directory and that directory was renamed to
testclients. (Bug #21490075)
* The JSON value-updating functions JSON_APPEND(),
JSON_SET(), JSON_REPLACE(), and JSON_INSERT() now treat
SQL NULL values as JSON null literals, which is
consistent with JSON_OBJECT() and JSON_ARRAY(). (Bug
#21450922)
* The server now generates a warning when the
default_storage_engine or default_tmp_storage_engine
system variable is set to a disabled storage engine named
in the disabled_storage_engines system variable. (Bug
#21405865)
* Metadata locking for tablespaces has been extended so
that, for DDL statements that refer to multiple
tablespaces, a metadata lock is acquired on all used
tablespaces. (Bug #21376265)
* Support for building with Solaris Studio 5.13 was added.
(Bug #21185883)
* mysql_ssl_rsa_setup now is less noisy by default. Output
from openssl commands is displayed only if --verbose is
given. (Bug #21024979)
* yaSSL was upgraded to version 2.3.7d. This fixes a
connection-failure issue when used with the thread pool
plugin. (Bug #20774956)
* mysqlpump now supports a --version option. (Bug #77894,
Bug #21534277)
* Performance Schema digests in DIGEST_TEXT columns have
... appended to the end to indicate when statements
exceed the maximum statement size and were truncated.
This is also now done for statement text values in
SQL_TEXT columns. (Bug #75861, Bug #20519832)
* Output from mysql_upgrade is now less noisy and more
informative. (Bug #59077, Bug #11766046)
* A new SHUTDOWN SQL statement is available. This provides
a SQL-level interface to the same functionality
previously available using the mysqladmin shutdown
command or the mysql_shutdown() C API function. See
SHUTDOWN Syntax
(http://dev.mysql.com/doc/refman/5.7/en/shutdown.html).
* Work was done to clean up the source code base,
including: Removal of unneeded CMake checks; removing
unused macros from source files; reorganizing header
files to reduce the number of dependencies and make them
more modular, removal of function declarations without
definitions.
Bugs Fixed
* Important Change; InnoDB; Partitioning: There was no way
to upgrade existing partitioned tables to use the native
partitioning implemented for InnoDB tables in MySQL
5.7.6. This fix adds support to both mysql_upgrade and
the mysql client for upgrading partitioned InnoDB tables
created in previous releases, which used the ha_partition
handler, to use InnoDB native partitioning instead.
+ mysql_upgrade now checks for all InnoDB tables that
were created using the generic ha_partition handler
and attempts to upgrade them to InnoDB native
partitioning.
+ In the mysql client, pre-5.7.6 partitioned InnoDB
tables can be upgraded one by one to native
partitioning using the ALTER TABLE ... UPGRADE
PARTITIONING statement that is implemented in this
release.
(Bug #20727344, Bug #76374)
* Important Change; Replication: The START SLAVE and STOP
SLAVE statements can no longer be used for the
group_replication_recovery channel. See Replication
Channels
(http://dev.mysql.com/doc/refman/5.7/en/replication-channels.html),
for more information. (Bug #21680074)
* Important Change; Replication: In MySQL 5.7, the
binlog_max_flush_queue_time system variable introduced in
MySQL 5.6 no longer has any effect. This variable is now
deprecated, and has been marked for eventual removal in a
future MySQL release. (Bug #21347087)
* Important Change; Replication: When using a
single-threaded slave, the status of the applier thread
is now reported as part of the
replication_applier_status_by_worker table, instead of
replication_applier_status_by_coordinator. This means
that replication_applier_status_by_coordinator is now
empty when using a single-threaded slave; it should be
noted that such reporting for multi-threaded slaves has
not been changed, and continues to be shown in that
table. (Bug #74765, Bug #20001173)
* InnoDB: The undo log contained insufficient information
about virtual columns and virtual column indexes, which
could cause a server exit when adding or dropping virtual
columns. As a result, a slow shutdown (using
innodb_fast_shutdown=0) is required prior to performing
an in-place upgrade or downgrade from MySQL 5.7.8. For
more information, refer to Upgrading or Downgrading MySQL
(http://dev.mysql.com/doc/refman/5.7/en/upgrading-downgrading.html).
(Bug #21869656)
* InnoDB: A table-rebuilding ALTER TABLE operation that
created an index on a virtual column raised an assertion.
(Bug #21847170)
* InnoDB: A SELECT ... FOR UPDATE operation on a table with
virtual generated columns raised an assertion. InnoDB
unnecessarily retrieved a non-indexed virtual column for
a covered secondary index scan. (Bug #21827963)
* InnoDB: Creating a table with large rows failed when
using a ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED due
to an incorrect undo log record size calculation. The
same operation succeeded with ROW_FORMAT=COMPACT or
ROW_FORMAT=REDUNDANT.
ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED now permit a
row length violation at DDL time if innodb_strict_mode is
disabled. (Bug #21816041)
* InnoDB: Adding an index on a generated virtual column
with an index prefix length that exceeded the maximum
length caused a server exit. (Bug #21812026)
* InnoDB: A memory leak occurred after crash recovery.
Memory allocated in fil_space_read_name_and_filepath()
was not freed. (Bug #21811321)
* InnoDB: Altering the data type or computation method of a
virtual generated column caused an error. (Bug #21810004)
* InnoDB: An assertion was raised when creating a spatial
index. InnoDB failed to count virtual columns that
preceded the spatial index column. (Bug #21807340)
* InnoDB: Tablespace discovery modifications in MySQL 5.7.5
included the removal of code related to MLOG_FILE_CREATE2
redo log records. As a result, the redo log did not
contain sufficient information about file creation. (Bug
#21801423)
* InnoDB: The redo log provided no indication that redo
logging is disabled for index page writes during
concurrent DDL operations. As a result, external hot
backup tools could produce corrupt backups. (Bug
#21796691)
* InnoDB: In debug builds, recovery asserted during a
transparent page compression test. A torn page from the
doublewrite buffer caused an LSN debug check failure.
(Bug #21796092)
* InnoDB: Creating a virtual generated column on a
partitioned table caused a server exit. (Bug #21790751,
Bug #78326)
* InnoDB: An old version of numactl headers on the build
host caused a compilation error when building a MySQL
version that includes NUMA memory policy support. (Bug
#21785074)
* InnoDB: A SELECT .. FOR UPDATE operation on an indexed
virtual generated column raised an assertion. (Bug
#21775459)
* InnoDB: The mysql_system_tables_fix_for_downgrade.sql
script, provided to facilitate system table alterations
when downgrading from MySQL 5.7.6 or higher, was removed
from the MySQL installation directory. The script was no
longer valid for all downgrade paths. For more
information, see Changes Affecting Downgrades from MySQL
5.7
(http://dev.mysql.com/doc/refman/5.7/en/downgrading-to-previous-series.html).
(Bug #21753832)
* InnoDB: The tablespace identifier (space_id) was logged
twice for an MLOG_TRUNCATE redo log record. (Bug
#21744589)
* InnoDB: Crash recovery issued an invalid error message
indicating that an isl file could not be opened or is not
correct. (Bug #21691438)
* InnoDB: The InnoDB Monitor displayed incorrect mutex
creation information for a mutex with a long semaphore
wait. (Bug #21682997, Bug #78179)
* InnoDB: Error message formatting was corrected in the
os_file_write_page() function. (Bug #21681433)
* InnoDB: The i_s_dict_fill_sys_tablespaces() function
could free memory associated with a file name before
printing an error message. (Bug #21680518, Bug #78180)
* InnoDB: In debug builds, scanned and applied redo log
records are now printed with a string identifier instead
of a numerical identifier when --debug=d,ib_log is passed
to mysqld. For example, rec MLOG_2BYTES is now printed
instead of rec 2. (Bug #21664268)
* InnoDB: The number of system calls made by the InnoDB
page compression feature was reduced. (Bug #21654695)
* InnoDB: The recv_parse_log_rec function returned the
length of the redo log record instead of 0 when
encountering an incomplete MLOG_CHECKPOINT record. (Bug
#21640085, Bug #78058)
References: This bug is a regression of Bug #17798076.
* InnoDB: In debug builds, a parenthesis mismatch in a
MATCH() ... AGAINST clause raised a full-text parser
assertion. (Bug #21638907)
* InnoDB: Debug code was added to avoid a doublewrite
buffer assertion that was raised during Valgrind testing.
(Bug #21631197)
* InnoDB: Log messages were improved to help identify
out-of-space errors that could occur when adding rollback
segments. (Bug #21629618)
* InnoDB: In debug builds, enabling the
innodb_log_checkpoint_now debug option while a
table-rebuilding ALTER TABLE operation is running could
result in an infinite loop. (Bug #21628087, Bug #78056)
* InnoDB: UNIV_INLINE was not defined for the
dict_table_has_indexed_v_cols function. (Bug #21628058,
Bug #78055)
* InnoDB: Altering a virtual column data type is not
supported as an in-place operation. (Bug #21617377)
* InnoDB: Sorting was skipped by an ALTER TABLE statement
that changed the primary key and dropped the last column
of the previous primary key. (Bug #21612714, Bug #78020)
* InnoDB: During recovery, an invalid isl file was treated
as a missing isl file, resulting in the tablespace being
opened using the file location defined in an MLOG_FILE_*
record in the redo log. Recovery no longer opens the
tablespace if the isl file is invalid. (Bug #21577278)
* InnoDB: Code that provided a timeout mechanism intended
to reduce adaptive hash index search latch
(btr_search_latch) contention was removed. The code
became obsolete after the introduction of adaptive hash
index search system partitioning in MySQL 5.7.8. (Bug
#21569876, Bug #77957)
* InnoDB: The COMPRESSION option was displayed incorrectly
in SHOW CREATE TABLE output. (Bug #21557723, Bug #77940)
* InnoDB: An innodb_data_file_path mismatch raised an
assertion, as did initializing the database with a data
file size that was too small for the specified page size.
(Bug #21551464)
* InnoDB: A check was added to prevent accessing full-text
index tables that are in an inconsistent state. (Bug
#21529012)
* InnoDB: A schema mismatch error occurred when importing a
tablespace that was altered by DROP INDEX operation on
the source server. (Bug #21514135, Bug #77659)
* InnoDB: A virtual generated column on a table that uses
index condition pushdown (ICP) caused an assertion. (Bug
#21507796, Bug #21478287)
* InnoDB: Creating an index on a virtual generated column
after adding a full-text index on a preceding column
raised an assertion. (Bug #21478389)
* InnoDB: An INSERT operation raised a btr_search_enabled
assertion. Assertion code was too restrictive. (Bug
#21457373)
* InnoDB: Reloading a table that was evicted while empty
caused an AUTO_INCREMENT value to be reset. (Bug
#21454472, Bug #77743)
* InnoDB: A crash during a TRUNCATE TABLE operation caused
the server to exit on startup. (Bug #21451922)
* InnoDB: The .isl was not removed when dropping a general
tablespace that was created outside of the MySQL data
directory. (Bug #21446772)
* InnoDB: An inconsistent read occurred under the
REPEATABLE READ transaction isolation level. Transactions
that operated on the same row were removed from
transaction ID list in the incorrect order. (Bug
#21433768)
References: This bug is a regression of Bug #17320977.
* InnoDB: Attempting to create a general tablespace data
file on a Windows root drive caused an error. (Bug
#21419888)
* InnoDB: After disabling the adaptive hash index feature,
an adaptive hash index latch was unnecessarily obtained
and released. (Bug #21407023)
* InnoDB: An ALTER TABLE operation on a table with an index
defined on a virtual column incorrectly modified the data
of the virtual column. (Bug #21376546, Bug #77628)
* InnoDB: Resizing the buffer pool online raised an
assertion due to a memory full condition. (Bug #21348684,
Bug #77564)
* InnoDB: An ALTER TABLE ... IMPORT TABLESPACE operation
with innodb_page_size=4K and ROW_FORMAT=DYNAMIC raised an
assertion. (Bug #21341030)
* InnoDB: For spatial indexes, InnoDB unnecessarily stored
a 3072-byte prefix in undo log records instead of just
the maximum bounding rectangle (MBR). For columns with
externally stored data, both the prefix and MBR are
logged. (Bug #21340268)
* InnoDB: Invalid init_ftfuncs() assertion code was
removed. (Bug #21300774)
* InnoDB: Memory allocation sanity checks were added to the
memcached code. (Bug #21288106)
* InnoDB: An incorrect reference count caused a hang in the
TrxInInnoDB constructor. innobase_close_connection()
released the transaction object before destroying the
TrxInInnoDB object where the reference count is adjusted.
(Bug #21280816)
* InnoDB: A MySQL 5.7.8 patch that reintroduced SHOW ENGINE
INNODB MUTEX functionality caused a performance
regression. (Bug #21266784)
* InnoDB: A memcached flush_all command raised an
assertion. A function that starts a transaction was
called from within assertion code. (Bug #21239299, Bug
#75199)
* InnoDB: A shutdown hang occurred when a high priority
transaction waited for a victim transaction to exit while
the victim transaction waited for an asynchronous
rollback to complete. (Bug #21143276)
* InnoDB: A data corruption occurred on ARM64. GCC builtins
did not issue the correct fences when setting or
unsetting the lock word. (Bug #21102971, Bug #76135)
* InnoDB: Server shutdown was delayed waiting for the purge
thread to exit. To avoid this problem, the number of
calls to trx_purge() was reduced, and the trx_purge()
batch size was reduced to 20. (Bug #21040050)
* InnoDB: In READ COMMITTED mode, a REPLACE operation on a
unique secondary index resulted in a constraint
violation. Thanks to Alexey Kopytov for the patch. (Bug
#21025880, Bug #76927)
* InnoDB: The IBUF_BITMAP_FREE bit indicated that there was
more free space in the leaf page than was actually
available. (Bug #20796566)
* InnoDB: Moving the data directory before recovering a
crashed database caused tablespace discovery to fail for
file-per-table tablespaces created outside of the MySQL
data directory. (Bug #20698468)
* InnoDB: The innodb_buf_flush_list_now debug setting
failed to flush all dirty pages to disk. (Bug #20582189)
* InnoDB: An ALTER TABLE ... ADD FULLTEXT INDEX operation
raised an assertion. A thread attempted to use a lower
priority transaction that was being rolled back before
the rollback operation completed. (Bug #20481175)
* InnoDB: Running an ALTER TABLE operation on a referencing
table with a cascading foreign key constraint during a
concurrent DML operation on the referenced table caused a
loss of referential integrity. (Bug #20367116)
* InnoDB: Setting lower_case_table_names=0 on a
case-insensitive file system could result in a hang
condition when running an INSERT INTO ... SELECT ... FROM
tbl_name operation with the wrong tbl_name letter case.
An error message is now printed and the server exits when
attempting to start the server with
--lower_case_table_names=0 on a case-insensitive file
system. (Bug #20198490, Bug #75185)
* InnoDB: The server failed to start with an
innodb_force_recovery setting greater than 3. InnoDB was
set to read-only mode before redo logs were applied.
DROP TABLE is now supported with an innodb_force_recovery
setting greater than 3. (Bug #19779113)
* InnoDB: The trx_sys_read_pertable_file_format_id()
function reported the wrong file format. (Bug #19206671)
* Packaging; OS X: Using user=mysql during installation on
OS X did not allow the mysql database to be installed. To
fix this problem, OS X packages now use the --no-defaults
option when creating this database. This also means that
having a my.cnf file on the system no longer affects the
installation. (Bug #21364902)
* Partitioning: Error handling for failed
partitioning-related ALTER TABLE operations against
non-partitioned tables was not performed correctly (Bug
#20284744)
* Partitioning: ALTER TABLE when executed from a stored
procedure did not always work correctly with tables
partitioned by RANGE. (Bug #16613004)
* To be continued in part 2....
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql