MySQL Forums
Forum List  »  Announcements

MySQL Community Server 5.7.4 has been released (part 2/2)
Posted by: Bjørn Munch
Date: March 31, 2014 11:02AM

[ This is part 2 of the announcement ]

Bugs Fixed, continued

[/code]
* InnoDB: A type name (srv_shutdown_state) was the same as a
variable name. The srv_shutdown_state type name has been
changed to srv_shutdown_t. (Bug #16735398)

* InnoDB: On Windows, the full-text search (FTS) object ID was
not in the expected hexadecimal format. (Bug #16559254)
References: See also Bug #16559119.

* InnoDB: The buf_buddy_relocate function would perform an
unnecessary hash lookup. (Bug #16596057)

* InnoDB: Server shutdown would result in a hang with the
following message written to the error log: "[NOTE] InnoDB:
Waiting for purge thread to be suspended." (Bug #16495065)

* InnoDB: InnoDB would fail to start when innodb_data_file_path
specified the data file size in kilobytes by appending K to
the size value. (Bug #16287752)

* InnoDB: Fetching and releasing pages from the buffer pool and
tracking the page state are expensive and complex operations.
Prior to the bug fix, these operations were performed using a
page mutex. Using a page mutex to track several things is
expensive and does not scale well. The bug fix separates fetch
and release tracking (in-use state) of a page from page I/O
state tracking. Fetch and release is now tracked using atomics
where available.
For portability, a new CMake build option,
INNODB_PAGE_ATOMIC_REF_COUNT (default ON), can be used to
disable atomic page reference counting on platforms where
atomics support is not available. When atomic page reference
counting is enabled (default), "[Note] InnoDB: Using atomics
to ref count buffer pool pages" is printed to the error log at
server startup. If atomic page reference counting is disabled,
"[Note] InnoDB: Using mutexes to ref count buffer pool pages"
is printed instead. (Bug #16249481, Bug #68079)

* InnoDB: An insert buffer merge would cause an assertion error
due to incorrectly handled ownership information for
externally stored BLOBs.
InnoDB: Assertion failure in thread thread_num in file ibuf0ibuf.cc l
ine 4080
InnoDB: Failing assertion: rec_get_deleted_flag(rec, page_is_comp(pag
e))
(Bug #14668683)

* InnoDB: Decreasing the auto_increment_increment value would
have no affect on the next auto-increment value. (Bug
#14049391, Bug #65225)

* InnoDB: Table renaming errors would appear in the LATEST
FOREIGN KEY ERROR section of the SHOW ENGINE INNODB STATUS
output. (Bug #12762390, Bug #61746)

* InnoDB: The page latching algorithm for b-trees would lock
sibling leaf pages, prolonging dictionary locks. The bug fix
implements prefectching of sibling leaf pages to reduce index
lock holding time. (Bug #12734249, Bug #61736)

* InnoDB: An INSERT ...ON DUPLICATE KEY UPDATE statement run on
a table with multiple unique indexes would sometimes cause
events to be incorrectly written to the binary log. (Bug
#11758237, Bug #50413)

* InnoDB: BUF_READ_AHEAD_AREA would frequently call
ut_2_power_up for workloads with a high I/O rate. The
calculation is now performed once and the result is stored in
the buf_pool_t structure. (Bug #11762242, Bug #54814)

* InnoDB: UNIV_SYNC_DEBUG, which was disabled in univ.i with the
fix for Bug#16720368, is now enabled. (Bug #69617, Bug
#17033591)

* Partitioning: Queries using the index_merge optimization (see
Index Merge Optimization
(http://dev.mysql.com/doc/refman/5.7/en/index-merge-optimizati
on.html)) could return invalid results when run against tables
that were partitioned by HASH. (Bug #17588348, Bug #70588)
References: See also Bug #16862316, Bug #17648468, Bug
#18167648.

* Partitioning: When no partition had returned a row since the
last HA_ERR_KEY_NOT_FOUND error, the use of uninitialized
memory in the priority queue used for returning rows in sorted
order could lead to a crash of the server. (Bug #17401628)

* Replication: When running the server with --gtid-mode=ON, STOP
SLAVE followed by START SLAVE resulted in a mismatch between
the information provided by
INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO and the
Slave_open_temp_tables status variable: the
INNODB_TEMP_TABLE_INFO table showed that no temporary tables
existed, but Slave_open_temp_tables had a nonzero value. (Bug
#18236612)

* Replication: Attempting to use semisynchronous replication
concurrently with SSH connections caused the server to fail.
(Bug #18219471)

* Replication: When MASTER_HEARTBEAT_PERIOD was not included in
CHANGE MASTER TO, the statement reset Slave_heartbeat_period
to its default value and Slave_received_heartbeats to 0. Now
the heartbeat period is not changed by CHANGE MASTER TO unless
explicitly set using MASTER_HEARTBEAT_PERIOD. In addition, the
statement no longer resets Slave_received_heartbeats. (Bug
#18185490)

* Replication: The MASTER_SSL_CRL and MASTER_SSL_CRLPATH options
are not available when using yaSSL; MySQL Replication now sets
these to NULL automatically whenever yaSSL is enabled. (Bug
#18165937)

* Replication: mysqlbinlog did not free up memory used by its
event buffer when using the --rewrite-db option. (Bug
#18164998)

* Replication: After setting MASTER_SSL_CRLPATH using a CHANGE
MASTER TO statement, the option value was not displayed
properly in the SSL_CRL_PATH column of the Performance Schema
replication_connection_configuration table. (Bug #18174719)

* Replication: Setting --slave-parallel-workers to 1 or greater
and starting the slave caused the slave SQL thread to use but
not release memory until the slave was restarted with STOP
SLAVE and START SLAVE. (Bug #18001777, Bug #71197)

* Replication: When a slave was configured with replication
filters and --log-warnings=2, every statement which was
filtered caused an entry to be written in the error log. For
busy servers which generated many statements to be filtered,
the result was that the error log could quickly grow to many
gigabytes in size. Now a throttle is used for such errors, so
that an error message is printed only once in a given
interval, saying that this particular error occurred a
specific number of times during that interval. (Bug #17986385)

* Replication: When the master and the slave both had
gtid_mode=OFF set initially, and the slave SQL thread was
stopped while there remained anonymous transactions in the
relay log, if the slave was then restarted with gtid_mode=ON,
then the slave assigned GTIDs such transactions. This could
cause problems when the slave was later promoted to a master,
as the transactions would be played again on the promoted
master's slaves, leading quickly to inconsistencies on those
slaves. (Bug #17813449)
References: See also Bug #17827018.

* Replication: When the master and the slave both had
gtid_mode=ON set initially, and the slave SQL thread was
stopped while there remained GTID transactions in the relay
log, if the slave was then restarted with gtid_mode=OFF, then
the slave SQL thread executed any anonymous transaction it
encountered without writing its GTID to the binary log, with
the result that the GTID was lost. This could cause problems
when the slave was later promoted to a master, as the
transaction would be played again on the promoted master's
slaves, leading quickly to inconsistencies on those slaves.
(Bug #17827018)
References: See also Bug #17813449.

* Replication: When the binary log I/O cache grew to exactly
32768 bytes and the current transaction was preceded by a
transaction whose size was greater than 32768 bytes, events
could be corrupted when written into the binary log. (Bug
#17842137)

* Replication: Creating and dropping large numbers of temporary
tables could lead to increased memory consumption. (Bug
#17806014)

* Replication: SHOW SLAVE STATUS used incorrect values when
reporting MASTER_SSL_CRL and MASTER_SSL_CRLPATH. (Bug
#17772911, Bug #70866)
References: This bug was introduced by Bug #11747191.

* Replication: Binary log events could be sent to slaves before
they were flushed to disk on the master, even when sync_binlog
was set to 1. This could lead to either of those of the
following two issues when the master was restarted following a
crash of the operating system:

+ Replication cannot continue because one or more slaves
are requesting replicate events that do not exist on the
master.

+ Data exists on one or more slaves, but not on the master.
Such problems are expected on less durable settings
(sync_binlog not equal to 1), but it should not happen when
sync_binlog is 1. To fix this issue, a lock (LOCK_log) is now
held during synchronization, and is released only after the
binary events are actually written to disk. (Bug #17632285,
Bug #70669)

* Replication: mysqlbinlog --verbose failed when it encountered
a corrupt row event in the binary log. Such a row event could
also cause the slave to fail. (Bug #17632978)
References: See also Bug #16960133.

* Replication: When log_warnings is greater than 1, the master
prints binary log dump thread information---containing the
slave server ID, binary log file name, and binary log
position---in mysqld.1.err. A slave server ID greater than 2
billion was printed with a negative value in such cases. (Bug
#17641586, Bug #70685)

* Replication: When running the slave with
--slave-parallel-workers at 1 or greater, setting
--slave-skip-errors=all caused the error log to be filled with
with instances of the warning Slave SQL: Could not execute
Query event. Detailed error: ;, Error_code: 0. (Bug #17581990,
Bug #68429)
References: See also Bug #17986385.

* Replication: When semi-synchronous replication was configured
on an independent server with no slaves and
rpl_semi_sync_master_wait_no_slave was set to OFF, the master
still waited for an ACK from the slave. When
rpl_semi_sync_master_wait_no_slave is set to OFF, the master
should revert to normal replication when the number of slaves
reaches zero during the specified timeout period. Now in such
cases the server checks whether semi-synchronous replication
is switched on, and, if so, goes on to check whether any
slaves are connected. If none are connected, semi-synchronous
replication is disabled until such time that the user sets the
value of rpl_semi_sync_master_wait_no_slave to ON. (Bug
#17510411, Bug #70360)

* Replication: A number of possible state messages used as
values for the PROCESSLIST_STATE column of the Performance
Schema threads table were longer than the width of the column
(64 characters).
The long state messages have now been rewritten, and shortened
accordingly. This fix applies in MySQL 5.7 and later. (Bug
#17319380)

* Replication: Seconds_Behind_Master in the output of SHOW SLAVE
STATUS could under some conditions be reported as 0 when it
should have had a value greater than zero. (Bug #17233214)
References: See also Bug #16579028.

* Replication: The server did not handle correctly the insertion
of a row larger than 4 GB when using row-based replication.
(Bug #17081415)

* Replication: When using row-based replication, an additional
auto-increment column on the slave version of a table was not
updated correctly; a zero was inserted instead. (Bug
#17066269, Bug #69680)

* Replication: Statements involving the Performance Schema
tables should not be written to the binary log, because the
content of these tables is applicable only to a given MySQL
Server instance, and may differ greatly between different
servers in a replication topology. The database administrator
should be able to configure (INSERT, UPDATE, or DELETE) or
flush (TRUNCATE TABLE) performance schema tables on a single
server without affecting others. However, when replicating
from a MySQL 5.5 master to a MySQL 5.5 or later slave,
warnings about unsafe statements updating Performance Schema
tables were elevated to errors. For MySQL 5.6 and later
slaves, this prevented the simultaneous use of
performance_schema and GTIDs (see Replication with Global
Transaction Identifiers
(http://dev.mysql.com/doc/refman/5.7/en/replication-gtids.html
)).
This fix causes all updates on tables in the
performance_schema database to be filtered on the master and
not replicated, regardless of the type of logging that is in
effect. Prior to this fix, statements using were handled by
being marked as unsafe for replication, which caused warnings
during execution; the statements were nonetheless written to
the binary log, regardless of the logging format in effect.
Existing replication behavior for tables in the
INFORMATION_SCHEMA database is not changed by this fix.
For more information, see MySQL Performance Schema
(http://dev.mysql.com/doc/refman/5.7/en/performance-schema.htm
l). (Bug #16814264)
References: See also Bug #14741537, Bug #18259193.

* Replication: Invalid event offsets in the binary log were not
always handled correctly, which could lead to replication
failure. (Bug #16736412, Bug #69087)

* Replication: Semisynchronous replication became very slow if
there were many dump threads (such as from mysqlbinlog or
slave I/O connections) working at the same time. It was also
found that semisynchronous master plugin functions were called
even when the dump connections did not support semisynchronous
replication, which led to locking of the plugin lock as well
as wasting time on necessary code.
After this fix, non-semisynchronous dump threads no longer
call semisynchronous master functions to observe binary
events. (Bug #70218, Bug #17434690)

* Replication: The semisynchronous replication plugin was called
twice for a DDL statement, incrementing
Rpl_semi_sync_master_yes_tx by 2 instead of 1 each time such a
statement was executed. (Bug #70410, Bug #17509011)

* During compilation, attempts to create sql_yacc.h could be
made from multiple directories simultaneously. (Bug #18319335)

* MySQL distributions for Solaris now include a source tarball
for gcc under the share directory, to comply with GPL
conditions resulting from inclusion of the C++ runtime
library. (Bug #18306484)

* mysql_secure_installation attempted to free memory incorrectly
and exited abnormally after a failed attempt to read an option
file. (Bug #18255657)

* Compilation failed if MySQL was configured with CFLAGS set to
include a -Werror option with an argument. (Bug #18173037)

* A shared libmysqld embedded server library was not built on
Linux. (Bug #18123048, Bug #16430656, Bug #68559)

* The default compiler flags are picked up from
cmake/build_configurations/compiler_options.cmake. This can be
switched off by the CMake -DWITH_DEFAULT_COMPILER_OPTIONS=0
option. However, it could also be switched off for the C or
C++ compilers if the CFLAGS or CXXFLAGS environment variables
were set.
Those environment variables now have no such effect. To
specify compiler flags, use -DWITH_DEFAULT_COMPILER_OPTIONS=0
option, or the -DCMAKE_C_FLAGS=flags and -DCMAKE_C_FLAGS=flags
options can be used. (Bug #18158812)

* While printing the server version, the mysql client did not
check for buffer overflow in a string variable. (Bug
#18186103)

* mysql_secure_installation exited if mysql_install_db had been
run with the --skip-random-passwords option. (Bug #18181665)

* When the optimizer attempted to use MRR or DS-MRR to read an
internally created temporary table, the server could exit or
raise an assertion. (Bug #18172819)

* A bug in the range optimizer code that handles index merge
could lead to a server exit or missing rows in the result set.
(Bug #18136628)

* Building MySQL from source on Windows using Visual Studio 2008
would fail with an identifier not found error due to a
regression introduced by the patch for Bug#16249481. (Bug
#18057449)

* Repeated rebuilds in the same source tree resulted in
libmysqld.a increasing in size each time. (Bug #18082702)

* mysql_config improperly produced nonempty output when invoked
with the --libmysqld-libs (or a synonym) if MySQL was
configured with the WITHOUT_SERVER option. (Bug #18102839)

* Type casting during LIKE pattern match operations could cause
a server exit. (Bug #18114294)

* SHOW GRANTS could be used to view the password hash for a
proxied user. Password hash display now requires the SUPER
privilege. (Bug #18057514)

* On Microsoft Windows, the rw-lock backup implementation for
the my_atomic_* functions was always used. Now, the native
Microsoft Windows implementation is used, where available.
(Bug #18054042)

* Link failures were fixed on Solaris SPARC and Linux 64-bit
platforms. (Bug #18004599)

* When tables are reopened from the table cache and the current
thread is not instrumented for the Performance Schema, the
server exited attempting to populate OWNER_THREAD_ID in the
table_handles table. (Bug #18047865)

* A memory leak occurred within the Performance Schema during
server startup. (Bug #18003651)

* storage/ndb/CMakeLists.txt reset the CMake cache for some
compiler flags for which the result should have been saved.
(Bug #17949504)

* Compilation used different warning flags for Clang and GCC,
producing different warning output depending on which compiler
you use. Warning output is now consistent for the two
compilers. (Bug #17959689)

* Building libevent was incorrectly dependent on MySQL being
configured with the -DWITH_INNODB_MEMCACHED=1 option. (Bug
#17964544)

* On Solaris, configuration failed if no STL_LIBRARY_NAME was
found. (Bug #17954277)

* The audit log plugin could cause a server exit during log file
rotation operations when there were many operations happening
for multiple connections. (Bug #17930339)

* The SUM_SORT_MERGE_PASSES column value in the Performance
Schema events_statements_summary_by_digest table was
calculated incorrectly. (Bug #17938255)

* During shutdown, a mutex that was still locked could be
removed, causing a server exit. (Bug #17959898)

* If the Performance Schema events_statements_summary_by_digest
table was full when a statement with a new digest was found,
the Performance_schema_digest_lost status variable was not
incremented. (Bug #17935314)

* FORCE INDEX [FOR ORDER BY] (index_name) did not work for
joins.
The fix for this bug also also changes the warning created for
EXPLAIN. Instead of printing only {IGNORE|USE|FORCE} INDEX it
now also prints FOR {GROUP BY|ORDER BY|JOIN} if that was
specified in the query. (Bug #17889511)

* Shutdown of open connection threads could fail to occur
cleanly during server shutdown. (Bug #17863690)

* DECIMAL NOT NULL items could return NULL in subqueries. (Bug
#17921777)

* mysql_secure_installation exited if it connected using SSL and
the user had an expired password. (Bug #17880395)

* With the compressed client/server protocol enabled,
Performance Schema statement instrumentation could raise an
assertion. (Bug #17794846)

* For debug builds, inserts into a multiple-table view could
raise an assertion. (Bug #17834434)

* The optimizer could push down a condition when the index did
not have the key part present in the condition. (Bug
#17814492)

* For debug builds, the filesort algorithm could raise a
spurious assertion. (Bug #17734642)

* The mysql_get_option symbol was missing from libmysql.dll.
(Bug #17733103)

* Build and execution problems were fixed for builds made with
gcc 4.8.1 in 32-bit mode on SPARC. (Bug #17740390)

* The server could exit when executing an INSERT ... SELECT with
UNION, ROLLUP, and ON DUPLICATE KEY UPDATE with a subquery.
(Bug #17727506)
References: This bug is a regression of Bug #16967281.

* The patch for Bug #16041903 introduced an incorrect
DBUG_ASSERT that in debug builds raised a spurious assertion.
(Bug #17746721)

* Valgrind errors were produced during row comparator setup.
(Bug #17755540)

* In some cases, UNIX_TIMESTAMP() could return NULL when it
should return 0. (Bug #17728371)

* An assertion could be raised if a filesort failed to resize
its main buffer when record properties changed. (Bug
#17757914)

* The resetconnection command for mysql did not report proper
errors if the server was down or the user password had
expired. (Bug #17772561)

* Compilation failed if MySQL was configured using
-DWITH_LIBWRAP=1. (Bug #17738805)

* Contraction information in a collation could be mishandled,
resulting in incorrect decisions about whether a character is
part of a contraction, and miscalculation of contraction
weights. (Bug #17760379)

* The cache used for the Index Merge access method was freed
only after successful retrieval of all rows. Interruption or
failure of the operation led to a file descriptor leak. (Bug
#17708621)

* The optimizer calculated the cost for joined buffer scans
incorrectly, evaluating rows filtered out by attached
conditions not once, but once per join buffer. (Bug #17694707)

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

* Using the mysqldump --set-gtid-purged option with no value
caused mysqldump to crash. (Bug #17650245)

* A race condition between Performance Schema statement event
threads led to a server exit. (Bug #17637970)

* For debug builds, an aggregate function in a subquery join
condition could raise an assertion. (Bug #17602807)

* If SAFE_MUTEX was enabled (true only for debug builds),
THR_LOCK_mutex was used before being initialized. (Bug
#17641055, Bug #70639)

* After the fix for Bug #16409270, it was not possible to
#include <mysql.h> following #include <windows.h>. (Bug
#17514554)

* An addressing error in accessing the join buffer could produce
invalid results or a server exit. (Bug #17513341)

* The parser permitted some queries with multiple ORDER BY
clauses, which then failed during execution and caused a
server exit. (Bug #17473479)

* For debug builds, the server could exit for statements that
inserted into a BLOB column declared as NOT NULL using a
subquery that retrieved from a BLOB column and included GROUP
BY NULL. (Bug #17458917)

* Insufficient cleanup after removal of a SELECT_LEX structure
caused dereferencing of a NULL pointer and a server exit. (Bug
#17458169)

* Within a CASE expression, use of a subquery referencing the
VALUES() function could cause a server exit. (Bug #17458914)
References: This bug is a regression of Bug #14789787.

* mysql_config incorrectly included some flags to generate
compiler warning output. (Bug #17400967)

* The parser silently accepted duplicate ORDER BY clauses and/or
LIMIT clauses before ORDER BY clauses in subqueries. These
caused failures during query execution. Fixing this problem
results in some changes in parser behavior. The parser no
longer accepts:

+ A LIMIT clause before an ORDER BY clause

+ A LIMIT clause in a parentheses-less SELECT statement
before a UNION keyword

+ An INTO clause after a PROCEDURE ANALYSE() clause
(Bug #17426017, Bug #17703542, Bug #17727401)

* SET PASSWORD combined with assignment of a variable from a
subquery result could raise an assertion. (Bug #17458750)

* On Windows, mysql_secure_installation exited if the root
password was expired. (Bug #17415203)

* For CASE expressions involving floating-point numbers, the
max_length and decimal values could be computed incorrectly.
The logic for CASE was corrected to be the same as for
COALESCE(), which performs a similar operation. (Bug
#17388045)

* If accepting a connection attempt failed due to an
out-of-memory error, the server could access a stale thread
structure for a previously disconnected connection, resulting
in Valgrind errors. (Bug #17398792)

* With semi-join optimization enabled, queries with nested
subqueries could cause a server exit due to incorrect
resolution of references to columns in the middle query block.
(Bug #17398972)

* The SHA256 password authentication algorithm allocated a
buffer one byte too short. (Bug #17397073)

* A client crash occurred if mysql_set_server_option() or
several other C API functions were called before
mysql_real_connect(). (Bug #17338958)

* In some cases, the optimizer wrote fixed-length temporary
MyISAM tables to disk rather than variable-length temporary
tables. (Bug #17231940)

* Enabling the validate_password plugin could result in
incorrect password hashes being stored in the mysql.user
table. (Bug #17065383)

* For debug builds, the second execution of a prepared statement
processed using a semi-join could cause a server exit. (Bug
#16988465)

* A spurious assertion was raised for queries processed using a
semi-join LooseScan optimization that required rows to be
returned in order. (Bug #16977389)

* A circular dependency problem involving sql/sql_builtin.cc was
resolved. (Bug #16877045)

* For accounts authenticated using the sha256_password plugin,
setting the password after the password had been expired did
not clear the password-expired flag. (Bug #16872181)

* During server shutdown, file information was freed before
calling query_logger.cleanup(), leading to a memory leak. (Bug
#16859266)

* For prepared INSERT INTO ... SELECT statements, nonexistent
column names were not reported during statement preparation,
but only later at statement execution. (Bug #16820562)

* Multiple-table updates failed to update under certain
conditions. (Bug #16767011)

* Crash recovery of temporary tables used uninitialized memory.
(Bug #16754540)

* On Mac OS X 10.7, a race condition involving vio_shutdown()
and the select-based implementation of vio_io_wait() could
cause a server exit. (Bug #16354789, Bug #17733393)

* Host names in example URLs used within the source code were
replaced by names in the example.com domain, the domain
intended by IANA for this purpose. (Bug #15890092)

* On Mac OS X, preloading of client plugins specified with the
LIBMYSQL_PLUGINS environment variable could fail unless the
plugins were located in the hardwired default plugin
directory. The C API now checks during plugin preloading for a
LIBMYSQL_PLUGIN_DIR environment variable which can be set to
the path name of the directory in which to look for client
plugins. (Bug #13994567, Bug #18110355)

* For utf8 and utf8mb4 strings, handler functions unnecessarily
called a Unicode conversion function. (Bug #14057034)

* Certain (... NULL ...) IN (...) expressions returned NULL when
they should return 0, such as SELECT (NULL, 1) IN ((0, 0), (0,
0)). (Bug #13944462)

* Several -W warning flags were turned off for compilation in
maintainer mode if MySQL was configured with
-DWITH_INNODB_MEMCACHED=1. (Bug #13898319)

* The optimizer set up for dynamic range access in some cases
where range access cannot be used, resulting in fallback to a
table scan. (Bug #13814468)

* Executing mysqladmin shutdown for a server running with the
thread pool plugin enabled and servicing a large number of
concurrent connections caused the server to exit abnormally.
(Bug #13788920)

* Calling the ExtractValue() function with an invalid XPath
expression could in some cases lead to a failure of the
server. (Bug #12428404, Bug #61065)

* Use of a nonmulti-byte algorithm for skipping leading spaces
in multi-byte strings could cause a server exit. (Bug
#12368495)

* With ONLY_FULL_GROUP_BY SQL mode enabled, a query that uses
GROUP BY on a column derived from a subquery in the FROM
clause failed with a column isn't in GROUP BY error, if the
query was in a view. (Bug #11923239)

* For the utf8_bin collation, ORDER BY LOWER(col_name) could
produce incorrect ordering. (Bug #69005, Bug #16691598)

* Several issues identified by the Coverity static analysis tool
were fixed. Thanks to Honza Horak for the patch. (Bug #70830,
Bug #17760511)

* On Windows, the --local-service server option did not work,
and was not displayed in the --help message. (Bug #69637, Bug
#17049656)

* The server wrote an excessive number of "Sort aborted"
messages to the error log. (Bug #70173, Bug #17372396)

* It was not possible to query a view with an ORDER BY clause
that referenced an alias in the SELECT clause of the view
definition, unless all columns in the view were named in the
select list.
To handle this problem, the server now writes a view
differently into the .frm file that stores the view
definition. 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. (Bug #69678,
Bug #17077305)

* Overhead was reduced within critical sections of the
my_fopen() and my_register_filename() mysys functions. Thanks
to Po-Chun Chang for the patch. (Bug #70848)

* The prototype of the Performance Schema instrumentation API
mysql_cond_timedwait() call was fixed to be drop-in compatible
with pthread_cond_timedwait(). This fix affects only
implementers of third-party plugins. (Bug #70628, Bug
#17702677)

* For debug builds, JSON-format EXPLAIN statements for queries
that involve semi-join materialization could cause a server
exit. (Bug #70014, Bug #17305943)

* For an existing user, GRANT with an empty password (IDENTIFIED
BY [PASSWORD] '') did not change the password. (Bug #69899,
Bug #17256161)

* The make_atomic_cas_body64 implementation on IA32 with gcc but
without gcc builtins could be miscompiled due to an incorrect
constraint. The patch also causes MySQL to use builtin atomics
when compiled using Clang. (Bug #63451, Bug #17242996)

* The wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_sync mutex was
not properly instrumented for the Performance Schema. (Bug
#70939, Bug #17813333)

* Complex updates of Performance Schema tables involving joins
or subqueries failed to update every row. (Bug #70025, Bug
#17309657)

* For the path specified with the --basedir option, mysql_plugin
attempted to unlink the path rather than free the memory in
which the path was stored. (Bug #69752, Bug #17168602)

* Compilation problems were fixed for errors reported by Clang
and gcc when compiling in C++11 mode. (Bug #66803, Bug
#14631159)

* The optimizer could choose ref access over eq_ref access when
cost of a nonunique access was evaluated before cost of a
unique index. (Bug #54808, Bug #11762236)

* COUNT(DISTINCT) sometimes produced an incorrect result when
the last read row contained a NULL value. (Bug #68749, Bug
#16539979, Bug #71028, Bug #17867117)

* When run by root, mysqld --help --verbose exited with a
nonzero error code after displaying the help message. (Bug
#70058, Bug #17324415)

* MySQL client programs from a Community Edition distribution
could not connect using SSL to a MySQL server from an
Enterprise Edition. This was due to a difference in
certificate handling by yaSSL and OpenSSL (used for Community
and Enterprise, respectively). OpenSSL expected a blank
certificate to be sent when not all of the --ssl-ca,
--ssl-cert, and --ssl-key options were specified, and yaSSL
did not do so. To resolve this, yaSSL has been modified to
send a blank certificate when an option is missing. (Bug
#68788, Bug #16715064)

* sql_resolver.cc referred to partitioning code that should have
been protected by an #ifdef, even when MySQL was configured
with -DWITH_PARTITION_STORAGE_ENGINE=OFF. (Bug #71010, Bug
#17876794)

* An incorrect result could be returned for a query with an IF()
predicate in the WHERE clause combined with OUTER JOIN in a
subquery that is transformed to a semi-join. (A workaround is
to disable semi-join using SET
optimizer_switch='semijoin=off';) (Bug #70608, Bug #17600176)

* Downloading of the Google Mock library could fail during
configuration. This is fixed by requiring CMake 2.8.2 or
higher. (Bug #69854, Bug #17231722)

* A full-text search combined with derived tables (subqueries in
the FROM clause) caused a server exit.
Now if a full-text operation depends on a derived table, the
server produces an error indicating that a full-text search
cannot be done on a materialized table. (Bug #68751, Bug
#16539903)

* Some scripts displayed out-of-date information regarding where
to report bugs. (Bug #68742, Bug #16530527)

* CMake produced not-useful warnings about
INTERFACE_LINK_LIBRARIES policy. (Bug #71089, Bug #17905155,
Bug #17894997)

* CMake produced a warning in ssl.cmake due to malformed syntax.
(Bug #71094, Bug #17905144)

* Previously, the first stage executed within a statement was
stage/sql/init. This collided with a different stage named
init and was incompatible with the starting stage for SHOW
PROFILE. The first stage executed within a statement is now
named stage/sql/starting. (Bug #71201, Bug #17993294)

* Some files in the Performance Schema file_instances table were
not being removed because the file-removal operation was not
instrumented. (Bug #69782, Bug #17209750)

* mysqldump --single-transaction acquired metadata locks for
each dumped table but did not release them until the dump
operation finished. Consequently, other DDL operations on a
dumped table blocked even after the table itself had been
dumped. mysqldump now attempts to release metadata locks
earlier. (Bug #71017, Bug #17862905)

* Updating a FEDERATED table with UPDATE... JOIN caused a server
exit when the local table contained a single row and that row
could be joined to a row in the FEDERATED table. (Bug #68354,
Bug #16324629)

* The mysqladmin, mysqlbinlog, mysqlcheck, mysqldump,
mysqlimport, mysqlslap, and mysqlshow programs now support a
--secure-auth option that prevents sending passwords to the
server in old (pre-4.1) format. This option is enabled by
default; use --skip-secure-auth to disable it. (Bug #69051,
Bug #16723046)

* During configuration, CMake improperly checked for the C++
header file cxxabi.h. (Bug #71268, Bug #18147458)

* On Mac OS X, the libmysqlclient dylib file linked to itself.
(Bug #61699, Bug #13890998, Bug #61243, Bug #12590037)

* gcov printed warnings without file names. (Bug #33269, Bug
#11747622)

* cmake/configure.pl listed instances of WITH_COMMENT rather
than the correct option COMPILATION_COMMENT. (Bug #65834, Bug
#14298560)

* FLUSH STATUS cleared a variable that could result a subsequent
implicit commit of an XA transaction causing a server exit.
(Bug #70854, Bug #17911445)

* A deadlock error occurring during subquery execution could
cause an assertion to be raised. (Bug #69969, Bug #17307201)

* The Performance Schema stage/sql/Waiting to get readlock
instrument is no longer used and has been removed. (Bug
#71298, Bug #18035404)

* A query that creates a temporary table to find distinct values
and has a constant value in the projected list could produce
incorrect results. (Bug #70657, Bug #17634335)

* mysqlbinlog leaked memory in relation to --rewrite-db
processing. (Bug #71283, Bug #18027692)

* Messages written by the server to the error log for LDML
collation definition problems were missing the collation name.
(Bug #68144, Bug #16204175)

* Configuring with -DWITH_DEBUG=1 did not have the same effect
as configuring with -DCMAKE_BUILD_TYPE=Debug. (Bug #70647, Bug
#17632854)

* mysqlcheck did not correctly handle table names containing
dots. (Bug #68015, Bug #16064833)

* Previously, for EXPLAIN output, the rows-examined estimate for
Performance Schema tables always displayed as 1000. Now a more
accurate estimate is displayed based on sizing parameters used
when allocating memory for each table. This results in no
change of behavior because Performance Schema tables have no
indexes. (Bug #71278, Bug #18024455)

* Optimizer trace output from the range optimizer could include
raw binary data and generate unprintable characters. Now
binary data is printed in hex format. (Bug #71273, Bug
#18023222)

* The -DWITH_EXAMPLE_STORAGE_ENGINE=1 CMake option was ignored
but should not have been. If -DWITH_EXAMPLE_STORAGE_ENGINE=0
is given, the EXAMPLE storage engine is built as a plugin.
(Bug #70859, Bug #17772560)
References: See also Bug #18324650.

* For logarithmic functions, if the argument is less than or
equal to 0.0E0, response is now as follows: In strict mode,
the error "Invalid argument for logarithm" is reported. In
non-strict mode, a NULL value is returned. (Bug #50507, Bug
#11758319)

* Aggregating the results of a subquery in the FROM clause could
produce incorrect results. (Bug #71244, Bug #18014565)

* Some BETWEEN expressions on unsigned values were evaluated
using signed arithmetic. Thanks to Xiaobin Lin for the patch.
(Bug #70622, Bug #17606942)

* For system variables that take a string value, SET statements
permitted an unquoted value, but values that contained dots
were parsed incorrectly and only part of the value was
assigned. For example, SET GLOBAL slow_query_log_file =
my_slow.log assigned the value my_slow. Now such values must
be quoted or an error occurs. (Bug #69703, Bug #17075846)

* A temporal literal string without delimiters and more than 14
digits was validated as a TIMESTAMP/DATETIME value with a
two-digit precision fractional seconds part. But fractional
seconds should always be separated from other parts of a time
by a decimal point. (Bug #69714, Bug #17080703)

* On Windows, mysql_install_db.pl could be run only from within
the bin directory under the installation directory. (Bug
#42421, Bug #11751526)

* mysql_install_db referred to the obsolete mysqlbug script for
reporting problems. It now refers to http://bugs.mysql.com/
instead. (Bug #29716, Bug #11746921)

* The deprecated msql2mysql, mysql_convert_table_format,
mysql_find_rows, mysql_fix_extensions, mysql_setpermission,
and mysqlaccess utilities were removed. (Bug #27482, Bug
#69012, Bug #69014, Bug #69015, Bug #69016, Bug #69017, Bug
#11746603, Bug #16699248, Bug #16699279, Bug #16699284, Bug
#16699317, Bug #18179576)
[/code]

Options: ReplyQuote


Subject
Views
Written By
Posted
MySQL Community Server 5.7.4 has been released (part 2/2)
3287
March 31, 2014 11:02AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.