* The code base was modified to account for new warning checks
introduced by gcc 4.8. (Bug #16729109)
* Compiling failed with -DMY_ATOMIC_MODE_RWLOCKS=1 or on
platforms on which MySQL did not support lockless atomic
operations (such as ARM). (Bug #16736461)
* In a prepared statement or stored routine, if the HAVING
clause of a subquery referenced some column of the GROUP BY of
the parent query, the server could exit. (Bug #16739050)
* Password rewriting in the general query log now also applies
to prepared statements. (Bug #16732621)
* The deprecated thread_concurrency system variable has been
removed. (Bug #16661195)
* Overhead for setting PROCESSLIST_STATE values in the
Performance Schema THREADS table has been reduced. (Bug
#16633515)
* The read-only open_files_limit system variable did not show
maximum number of open files the mysqld process could have,
but instead the number that was requested after adjusting the
--open-files-limit command-line option. (Bug #16657588)
* Kill handling in the thread pool plugin was subject to timeout
problems and Valgrind warnings. (Bug #16633880)
* Within a stored procedure, repeated execution of a prepared
CREATE TABLE statement for a table with partitions could cause
a server exit. (Bug #16614004)
* Some problems compiling on Solaris in 64-bit mode with gcc and
g++ were corrected. (Bug #16555106)
* The Windows authentication plugin failed to free a context
buffer for each connection. (Bug #16591288)
* The DBUG_PRINT() macro unnecessarily evaluated arguments when
debugging was not enabled. (Bug #16556597)
* Some rows for a session could be missing sporadically from the
Performance Schema session_connect_attrs table while the
session was executing a workload. (Bug #16576980)
* The server could make the wrong decision about whether an
account password was expired. (Bug #16604641)
* Enabling the query cache could cause repeatable-read
transactions to return incorrect results. (Bug #16497925)
* When index condition pushdown was used on a descending range
scan and the first range interval did not contain any
qualifying records, the result of the range scan could be
empty even if other range intervals contained qualifying
records. (Bug #16483273)
* The server could attempt a filesort operation for a zero-size
sort length, causing it to exit. (Bug #16503160)
* SHOW WARNINGS and SHOW ERRORS did not properly reset the
warning count. (Bug #16522662)
* my_load_defaults() was modified to accommodate some problems
under compilation with gcc 4.7.2 that could cause a client
crash during option processing. (Bug #16497125)
* Opening a cursor on a SELECT within a stored procedure could
cause a segmentation fault. (Bug #16499751)
References: This bug is a regression of Bug #14740889.
* Geometry methods that worked with WKB data performed
insufficient input data validation, which could cause Valgrind
errors or a server exit. (Bug #16510712, Bug #12772601)
* Missing variable initialization led to incorrectly returning
an error from st_select_lex_unit::explain and led to a failed
assertion. (Bug #16484966)
* Clients could determined based on connection error message
content whether an account existed. (Bug #16513435)
* CREATE TABLE or ALTER TABLE can fail if the statement
specified unsupported options or something was missing.
Previously, such errors were returned as ER_ILLEGAL_HA. Now
they are returned as the new ER_MISSING_HA_CREATE_OPTION
error. (Bug #16498740)
* Failure to handle a full-text search wildcard properly could
cause the server to exit. (Bug #16446108)
* Some INFORMATION_SCHEMA queries that used ORDER BY did not use
a filesort optimization as they did in MySQL 5.5. (Bug
#16423536)
* Performance Schema parameter autosizing at startup did not
take into account later autosizing changes to other startup
parameters on which the Performance Schema parameters
depended. (Bug #16430532)
* The WKB reader for spatial operations could fail and cause a
server exit. (Bug #16451878)
* For queries using ref access on CHAR and VARCHAR data types,
the ref access condition could be evaluated again as part of
the query condition or pushed down as an index condition to
the storage engine. (Bug #16437630)
* A full-text search syntax error failed to print to standard
output. (Bug #16429688, Bug #16765397)
* Optimizer heuristics inappropriately preferred range access
over ref access in cases when the ref access referred to a
column of a table earlier in the join seqence. (Bug #16437940)
* The ER_OUTOFMEMORY error was used in some places without the
proper parameter being passed, resulting in incorrect
diagnostic output. (Bug #16449659)
* Unlike MyISAM, InnoDB does not support boolean full-text
searches on nonindexed columns, but this restriction was not
enforced, resulting in queries that returned incorrect
results. (Bug #16434374)
* If a table has been marked as containing only NULL values for
all columns if it is a NULL-complemented row of an outer join,
then rollup on the column which cannot be nullable results in
a server exit. (Bug #16436014)
* If the optimizer was using a loose index scan, the server
could exit while attempting to create a temporary table. (Bug
#16436567)
* Incorrect results or a server exit could be caused by a
reference to an aggregated expression inside a nested
subquery, where the aggregated expression was evaluated in a
query block more than two levels outer to the reference. (Bug
#16436383)
* In debug builds, failure in the range optimizer for an
ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT error could go
undetected and cause the filesort code to raise an assertion.
In release builds, this problem manifested as clients
receiving an ER_FILSORT_ABORT rather than the correct error
code. (Bug #16366881)
* If a lock timeout resulted from an UPDATE with a nested SELECT
being unable to access rows being accessed by another thread,
the error could go unchecked and cause an assertion to be
raised later. (Bug #16367039)
* In debug builds, failure in the range optimizer for an
ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT error could go
undetected and cause an assertion to be raised when a response
was sent to the client. In release builds, this problem
manifested as clients receiving an OK for a statement that had
failed. (Bug #16366994, Bug #16247110)
* Manually-created accounts (using INSERT) with a malformed
password effectively had no password. (Bug #16414396)
* Several scripts in the sql-bench directory that were supposed
to be executable did not have the executable access bit set.
(Bug #16395606)
* For debug builds, DBUG_EXPLAIN resulted in a buffer overflow
when the debug system variable value was more than 255
characters. (Bug #16402143)
* For debug builds, with an XA transaction in IDLE or PREPARED
status, execution of a query with the query cache enabled
could cause a server exit. (Bug #16388996)
* A race condition in vio_shutdown() could cause a server exit.
(Bug #16354789)
* An assertion could be raised when creating a index on a prefix
of a TINYBLOB column in an InnoDB column. (Bug #16368875)
* For debug builds, set_field_to_null() could raise an assertion
for attempts to insert NULL into a NOT NULL column. (Bug
#16362246)
* A server exit could occur for queries of the form SELECT
(SELECT 1 FROM t1) IN (SELECT a FROM t1) when attempting to
evaluate the constant left-hand argument to the IN subquery
predicate. (Bug #16369522)
* An assertion could be raised if, in greedy search mode, the
optimizer identified join orders but was unable to choose one.
(Bug #16361170)
* Debugging flags used to set the debug system variable were
ignored if they were a prefix of keywords already in the
debugging list. (Bug #16415978)
* If the primary key for the mysql.proc system table was removed
(an unsupported and not-recommended operation), the server
exited for subsequent stored procedure invocation. Similar
problems could occur for other system tables. Now an error
occurs instead. (Bug #16373054)
* Oracle RPM packages were unusable by yum due to issues with
the obsoletes line in the .spec file causing yum to interpret
the package as obsoleting itself. (Bug #16298542)
* Re-execution of a stored procedure could cause a server exit
in Item_field::fix_outer_field. (Bug #16317443)
* A GROUP_CONCAT() invocation containing subquery having an
outer reference caused the server to exit. (Bug #16347343)
* For debug builds, GROUP_CONCAT(... ORDER BY) within an ORDER
BY clause could cause a server exit. (Bug #16347426)
* The validate_password plugin did not always enforce
appropriate constraints against assigning empty passwords.
(Bug #16346443)
* For debug builds, the server could exit for queries involving
a nested subquery, a subquery tranformed into a semi-join and
using a view. (Bug #16317076)
* No warning was generated if a duplicate index existed after
dropping a column associated with a multiple-column index.
(Bug #16315351)
* SELECT DISTINCT with WITH ROLLUP could result in a Duplicate
entry 'NULL' for key '<auto_key>' error. (Bug #16314835)
* The server could exit in do_copy_not_null() due to an improper
NULL-value check. (Bug #16316564)
* Transforming some subqueries that select temporal or BIGINT
types or to a semijoin caused a server exit on the second
execution of prepared statements or stored programs. (Bug
#16319671)
* The range optimizer could set up incorrect ranges for queries
that used XOR operations. (Bug #16272562)
* mysql_secure_installation could not connect to the server if
the account used had an expired password. It invoked mysql
noninteractively, resulting in that program failing to
connect. Now mysql supports a --connect-expired-password
option that indicates to the server that it can handle sandbox
mode for expired-password accounts even if invoked
noninteractively, and mysql_secure_installation invokes mysql
with this option. (Bug #16248315)
* If loose index scan was used on a query that used MIN(), a
segmentation fault could occur. (Bug #16222245)
* The usual failed-login attempt accounting was not applied to
failed COM_CHANGE_USER commands. (Bug #16241992)
* For debug builds, an assertion could be raised if a failed
LOAD DATA INFILE statement will followed by an INSERT for the
same table within the same session. (Bug #16240526)
* For debug builds, an assertion was incorrectly raised for
queries executed using eq_ref access and filesort. (Bug
#16164885)
* A user variable referenced during execution of a prepared
statement is set to memory that is freed at the end of
execution. A second execution of the statement could result in
Valgrind warnings when accessing this memory. (Bug #16119355)
* Misoptimization of left expressions in prepared statements
could cause a server exit. (Bug #16095534)
* A prepared statement that used GROUP_CONCAT() and an ORDER BY
clause that named multiple columns could cause the server to
exit. (Bug #16075310)
* The server could exit the second time a stored routine was
invoked that performed an UPDATE or DELETE using an invalid
column in the join clause. (Bug #16078466)
* If my_write() encountered a disk-full condition, it could
return an incorrect error value. (Bug #16078792)
* Creating a FEDERATED table without specifying a connection
string caused a server exit. (Bug #16048546)
* ORDER BY MATCH ... AGAINST could cause a server exit. (Bug
#16073689)
* Certain queries containing ORDER BY or SQL_CALC_FOUND_ROWS
could cause a server exit for JSON-format EXPLAIN statements.
(Bug #16077396, Bug #16078113)
* Client programs from MySQL 5.6.4 and up could confuse older
servers during the connection process by using newer protocol
features not understood by older servers. (Bug #15965409)
* When a partition is missing, code in ha_innodb.cc would retry
10 times and sleep for a microsecond each time while holding
LOCK_open. The retry logic for partitioned tables was
introduced as a fix for Bug#33349 but did not include a test
case to validate it. This fix removes the retry logic for
partitioned tables. If the problem reported in Bug#33349
reappears, a different solution will be explored. (Bug
#15973904)
* The mysql.server script exited with an error if the status
command was executed with multiple servers running. (Bug
#15852074)
* Use of the VALUES() function in the VALUES() clause of an
INSERT statement could result in Valgrind warnings or an
unstable server, possibly leading to a server exit. (Bug
#14789787)
* In some cases, REVOKE could fail to revoke the GRANT OPTION
privilege. (Bug #14799187)
* The Debug Sync facility could lose a signal, leading to a
spurious ER_DEBUG_SYNC_TIMEOUT error. (Bug #14765080)
* The mysql client allocated but did not free a string after
reading each line in interactive mode, resulting in a memory
leak. (Bug #14685362)
* The optimizer trace could print ranges for key parts that were
not usable for range access. (Bug #14615536)
* Killing a connection while it was in the process of
disconnecting could lead to an assertion being raised,
Valgrind warnings, and general unstability. (Bug #14560522)
* When running a query on INFORMATION_SCHEMA.INNODB_BUFFER_PAGE
that requested table_name and index_name values, query results
would include index pages without table_name or index_name
values. (Bug #14529666)
* Several COM_xxx commands in the client-server protocol did not
have length checks for incoming network packets, which could
result in various problems for malformed input. (Bug
#14525642)
* Passwords in statements were not obfuscated before being
written to the audit log. (Bug #14536456)
* If used to process a prepared CALL statement for a stored
procedure with OUT or INOUT parameters,
mysql_stmt_store_result() did not properly set the flags
required to retrieve all the result sets. (Bug #14492429)
* INSERT ... ON DUPLICATE KEY UPDATE on a view could cause a
server exit. (Bug #14261010)
* With the thread pool plugin in use, normal connection
termination caused the Aborted_clients status variable to be
incremented. (Bug #14081240)
* A build failure occurred if HAVE_CRYPT was 0. (Bug #14036425)
* Grouping by an outer BLOB column in a subquery caused a server
exit. (Bug #13966809, Bug #14700180)
* On Windows, command-line options of the form
--opt_name="opt_value" worked but --opt_name='opt_value' did
not.
On all platforms, for Performance Schema options of the form
--performance_schema_instrument="instrument=value", invalid
instrument names now are rejected. (Bug #13955232)
* The server could exit after failing to handle an out-of-memory
condition in open_normal_and_derived_tables(). (Bug #13553905)
* The server could exit due to improper handling of the error
from an invalid comparison. (Bug #13009341)
* MySQL Installer, if run in custom install or change mode,
offered installation options that had no effect. (Bug
#12928601)
* The thread pool plugin produced an error message containing an
incorrect maximum thread_pool_prio_kickup_timer value. (Bug
#12817590)
* Metadata returned for a prepared SELECT statement that had
outer joins could indicate that columns containing NULL values
were NOT NULL. (Bug #12818811)
* For debug builds, the server could exit as a result of a
series of statements that used a user variable such that its
character set/collation changed from statement to statement.
(Bug #12368577)
* Incorrect results could be returned from queries that used
several aggr_func(DISTINCT) functions (where aggr_func() is an
aggregate function such as COUNT()) when these referred to
different columns of the same composite key. (Bug #12328597)
* The CMake check for unsigned time_t failed on all platforms.
(Bug #11766815)
* An identifier containing special characters could become too
long after conversion of such characters to encoded format,
resulting in SQL errors or failure to find files. (Bug
#11766880)
* mysql_convert_table_format ignored --engine or -e as a synonym
for the --type option. (Bug #11756950)
* mysqladmin debug causes the server to write debug information
to the error log. On systems that supported mallinfo(), the
memory-status part of this output was incorrect in 64-bit
environments when mysqld consumed more than 4GB memory.
Now the server uses malloc_info() to obtain memory-status
information. malloc_info() does not report the memory that the
glibc malloc() implementation internally allocates using
mmap(). However, it does provide the memory usage information
in all the memory arenas.
This bug fix also involves a change of output format. The
server now writes memory information in XML format rather than
as plain text. Example:
Memory status:
<malloc version="1">
<heap nr="0">
<sizes>
<size from="33" to="33" total="1056" count="32"/>
<size from="65" to="65" total="65" count="1"/>
<size from="113" to="113" total="226" count="2"/>
<size from="129" to="129" total="2451" count="19"/>
<size from="145" to="145" total="290" count="2"/>
<size from="161" to="161" total="1288" count="8"/>
<size from="209" to="209" total="418" count="2"/>
</sizes>
<total type="fast" count="0" size="0"/>
<total type="rest" count="66" size="5794"/>
<system type="current" size="10833920"/>
<system type="max" size="10833920"/>
<aspace type="total" size="10833920"/>
<aspace type="mprotect" size="10833920"/>
</heap>
<total type="fast" count="0" size="0"/>
<total type="rest" count="66" size="5794"/>
<system type="current" size="10833920"/>
<system type="max" size="10833920"/>
<aspace type="total" size="10833920"/>
<aspace type="mprotect" size="10833920"/>
</malloc>
(Bug #11746658)
* When an ALTER TABLE operation was performed with an invalid
foreign key constraint, the error reported was
ER_CANT_CREATE_TABLE rather than ER_CANNOT_ADD_FOREIGN. (Bug
#64617, Bug #13840553)
* If an account had a nonzero MAX_USER_CONNECTIONS value, that
value was not always respected. (Bug #65104, Bug #14003080)
* On 64-bit Mac OS X systems, CMake used x86 rather than x86_64
when determining the machine type. (Bug #58462, Bug #11765489)
* For failure to create a new thread for the event scheduler,
event execution, or new connection, no message was written to
the error log. This could lead to the impression that the
event scheduler was running normally when it was not. (Bug
#67191, Bug #14749800, Bug #16865959)
* Compilation on Solaris using gcc produced incorrect builds for
32-bit systems. (Bug #68675)
* The mysql client incorrectly used latin1 for certain
comparisons even if started with a multibyte default character
set, resulting in a client crash. (Bug #68107, Bug #16182919)
* In option files, the server could misinterpret option settings
if the value was given after the option name with no = sign in
between. (Bug #67740, Bug #15930031)
* The url columns in the mysql datatbase help tables were too
short to hold some of the URLs in the help content. These
columns are now created as type TEXT to accommodate longer
URLs. (Bug #61520, Bug #12671635)
* mysqld --help and mysqld --verbose --help performed
unnecessary logging. (Bug #68578, Bug #16442113)
* Performance of prepared DML statements containing ? parameter
substitution markers was improved under row-based logging
format: Since the binary log in this case need not include the
statement text, and since the statement will not be forced to
statement-based logging as some DDL statements might be, there
is no need to substitute ? markers to produce a statement
suitable for logging. (Bug #67676, Bug #16038776)
* ELT(LEAST(...),..) could return a non-NULL value even if
LEAST() returned NULL. (Bug #67578, Bug #16171537)
* InnoDB does not support full-text parser plugins, but failed
to report an error if they were specified. Now an
ER_INNODB_NO_FT_USES_PARSER error is returned. (Bug #62004,
Bug #12843070)
* If Loose Index Scan was used to evaluate a query that compared
an integer column to an integer specified as a quoted string
(for example, col_name = '1'), the query could return
incorrect results. (Bug #68473, Bug #16394084)
* IF() function evaluations could produce different results when
executed in a prepared versus nonprepared statement. (Bug
#45370, Bug #11753852)
* If a function such as AES_DECRYPT() that requires SSL support
failed, the error could affect later calls to functions that
require SSL support. (Bug #68340, Bug #16315767)
* In a MySQL server newer than MySQL 5.5 using a nonupgraded
mysql.user table (for which mysql_upgrade had not been run),
statements to set passwords caused a server exit due to a
faulty check for the password_expired column. (Bug #68385, Bug
#16339767)
* It is now possible to suppress installation of the mysql-test
directory after compiling MySQL from source by invoking CMake
with the INSTALL_MYSQLTESTDIR option explicitly set to empty:
cmake . -DINSTALL_MYSQLTESTDIR Previously, attempts to do this resulted in an error. (Bug
#58615, Bug #11765629)
* When only counting events but not timing them, Performance
Schema would report MIN_TIMER_WAIT values as a large number
instead of 0. (Bug #68768, Bug #16552425)
* The Turbo Boyer-Moore algorithm used for LIKE pattern matches
failed to handle some patterns. The server now uses the
original Boyer-Moore algorithm. (Bug #59973, Bug #11766777)
* If mysqld crashed during a shutdown initiated by
/etc/init.d/mysql stop, mysqld_safe restartd mysqld when it
should not have. (Bug #34084, Bug #13864548)
* Using range access with an index prefix could produce
incorrect results. (Bug #68750, Bug #16540042)
* For debug builds, metadata locking for CREATE TABLE ... SELECT
could raise an assertion. (Bug #68695, Bug #16503173)
* Long table or column names could cause mysqlshow to exit. (Bug
#53956, Bug #11761458)
* A new CMake option, WITH_EDITLINE, is provided to indicate
whether to use the bundled or system libedit/editline library.
The permitted values are bundled (the default) and system.
WITH_EDITLINE replaces WITH_LIBEDIT, which has been removed.
(Bug #68558, Bug #16430208)
* When specified in an option file, the plugin-dir client option
was ignored. (Bug #68800, Bug #16680313)
* Overhead for the skip_trailing_space() function was reduced.
(Bug #68477, Bug #16395778)
* If an UPDATE containing a subquery caused a deadlock inside
InnoDB, the deadlock was not properly handled by the SQL
layer. The SQL layer then tried to unlock the row after InnoDB
rolled back the transaction, raising an assertion inside
InnoDB. (Bug #69127, Bug #16757869)
* Configuring MySQL with -DWITH_EXTRA_CHARSETS=none caused a
build failure. (Bug #58672, Bug #11765682)
* The !includedir directive in option files did not read .cnf or
.ini files that included a dot in the file name preceding the
extension. (Bug #51609, Bug #11759306)
* Indexes on derived tables that were used during the first
invocation of a stored procedure were not used in subsequent
invocations. (Bug #68350, Bug #16346367)
* Boolean plugin system variables did not behave well on
machines where char is unsigned; some code attempted to assign
a negative value to these. (Bug #59905, Bug #11864205)
* For DELETE and UPDATE statements, EXPLAIN displayed NULL in
the ref column for some cases where const is more appropriate.
(Bug #68299, Bug #16296268)
* The optimizer could choose a poor execution plan for queries
with ORDER BY ... LIMIT. (Bug #69013, Bug #16697792)
* FOUND_ROWS() could return an incorrect value if the preceding
query used filesort. (Bug #69119, Bug #16760474)
References: This bug is a regression of Bug #68458.
* In the absence of SQL_CALC_FOUND_ROWS in the preceding query,
FOUND_ROWS() should return the number of rows in the result
set, but this did not always happen if the query contained
ORDER BY. (Bug #69271, Bug #16827872)
* sql-common/client_plugin.c contained a nonportable use of a
va_list parameter. (Bug #62769, Bug #13252623)
* mysqldump assumed the existence of the general_log and
slow_log tables in the mysql database. It failed if invoked to
dump tables from an older server where these tables do not
exist. (Bug #65670, Bug #14236170)
* Configuring with cmake -DWITHOUT_SERVER to build clients
without the server failed for builds outside of the source
tree. (Bug #66000, Bug #14367046)
* Full-text search on InnoDB tables failed on searches for words
containing apostrophes. (Bug #69216, Bug #16801781)
* Full-text search on InnoDB tables failed on searches for
literal phrases combined with + or - operators. (Bug #68720,
Bug #16516193)
* Optimizations that used extended secondary keys (see Use of
Index Extensions
(http://dev.mysql.com/doc/refman/5.7/en/index-extensions.html)
) worked only for InnoDB, even for storage engines with the
requisite underlying capabilities. (Bug #68469, Bug #16391678)
* Successful queries served from the query cache did not clear
warnings. (Bug #49634, Bug #11757567)
* With big_tables enabled, queries that used COUNT(DISTINCT) on
a simple join with a constant equality condition on a
non-duplicate key returned incorrect results. (Bug #52582, Bug
#11760197)
* If ALTER TABLE was used to set the default value for a
TIMESTAMP or DATETIME column that had CURRENT_TIMESTAMP as its
default when it was created, the new default was not shown by
SHOW CREATE TABLE, and incorrect values could be inserted into
the column. (Bug #45669, Bug #11754116)
* mysql_install_db incorrectly tried to create the
mysql.innodb_table_stats and mysql.innodb_index_stats tables
if InnoDB was not available. (Bug #68438, Bug #16369955)
* If one session had any metadata lock on a table, another
session attempting CREATE TABLE [IF NOT EXISTS] for the same
table would hang. This occurred due to an attempt in the
second session to acquire an exclusive metadata lock on the
table before checking whether the table already existed. An
exclusive metadata lock is not compatible with any other
metadata locks, so the session hung for the lock timeout
period if another session had the table locked.
Now the server attempts to acquire a shared metadata lock on
the table first to check whether it exists, then upgrade to an
exclusive lock if it does not. If the table does exist, an
error occurs for CREATE TABLE and a warning for CREATE TABLE
IF NOT EXISTS. (Bug #63144, Bug #13418638)
* Attempts to build from a source RPM package could fail because
the build process attempted to refer to a pb2user that might
not exist. (Bug #64641, Bug #13865797, Bug #69339, Bug
#16874980)
* A typo in cmake/dtrace.cmake prevented DTrace support from
being enabled by -DENABLE_DTRACE-on. (Bug #60743, Bug
#12325449)
* When an internal buffer was too small for the workload, the
Performance Schema could spend a lot of time in an internal
spin loop attempting to allocate a memory buffer, and fail.
(Bug #69382, Bug #16945618)
* BIT(0) is not a valid data type specification but was silently
converted to BIT(1). Now an ER_INVALID_FIELD_SIZE error occurs
and the specification is rejected. (Bug #68419, Bug #16358989)
* Some LEFT JOIN queries with GROUP BY could return incorrect
results. (Bug #68897, Bug #16620047)
References: This bug is a regression of Bug #11760517.
* Some possible cases of memory use after being freed were
fixed. (Bug #68918, Bug #16725945)
* mysqldump wrote SET statements as SET OPTION, which failed
when reloaded because the deprecated OPTION keyword has been
removed from SET syntax. (Bug #67507, Bug #15844882)
* If the server could not find the errmsg.sys file at startup,
the resulting error message did not indicate which
configuration parameter to check. (Bug #67576, Bug #15880018)
* If query_cache_type was disabled at startup to prevent the
query cache from being enabled at runtime, disabling
query_cache_type at runtime generated a warning even though it
was already disabled. (Bug #69396, Bug #16906827)
* For queries with ORDER BY ... LIMIT, the optimizer could
choose a nonordering index for table access. (Bug #69410, Bug
#16916596)
* When selecting a union of an empty result set (created with
WHERE 1=0 or WHERE FALSE) with a derived table, incorrect
filtering was applied to the derived table. (Bug #69471, Bug
#16961803)
References: This bug is a regression of Bug #15848521.
* For better robustness against stack overflow, the server now
accounts for the size of the guard area when making thread
stack size requests. (Bug #35019, Bug #11748074)
* Two problems adding or subtracting keyword from the current
debug system variable setting were corrected:
+ A debug value of 'd' means "all debug macros enabled".
The following sequence left the value in an incorrect
state:
mysql> SET debug = 'd';SELECT @@debug;
+---------+
| @@debug |
+---------+
| d |
+---------+
mysql> SET debug = '+d,M1';SELECT @@debug;
+---------+
| @@debug |
+---------+
| d,M1 |
+---------+
The first SET statement enables all debug macros. The
second SET should add the M1 macro to the current set,
which should result in no change because the current set
is already "all macros". Instead, the second SET reset
the current set to only the M1 macro, effectively
disabling all others. The server now correctly leaves
debug set to 'd'.
+ A debug value of '' means "no debug macros enabled". The
following sequence left the value in an incorrect state:
mysql> SET debug = 'd,M1';SELECT @@debug;
+---------+
| @@debug |
+---------+
| d,M1 |
+---------+
mysql> SET debug = '-d,M1';SELECT @@debug;
+---------+
| @@debug |
+---------+
| d |
+---------+
The first SET statement sets debug to the M1* macro. The
second SET should subtract the M1 macro from the current
set, leaving no debug macros enabled. Instead, the second
SET reset the current set to 'd' (all macros enabled).
The server now correctly sets debug to ''.
(Bug #58630, Bug #11765644)
* Some subquery transformations were not visible in EXPLAIN
output. (Bug #59852, Bug #11766685)
* Comparison of a DATETIME value and a string did not work
correctly for the utf8_unicode_ci collation. (Bug #68795, Bug
#16567381)
* The range optimizer used the wrong prerequisite for concluding
that a table is the inner table of an outer join. This led to
incorrect cost estimates and choice of the wrong index for
query processing. (Bug #37333, Bug #11748775)
* Some errors could be handled by condition handlers only if
they were raised by particular statements, such as INSERT, but
not if they were raised by other statements, like UPDATE. An
example would be the foreign-key error ER_NO_REFERENCED_ROW_2
which could be treated differently, depending on which
statement raised it. (Bug #68831, Bug #16587369)
* The libmysql.dll library was missing several symbols: my_init,
mysql_client_find_plugin, mysql_client_register_plugin,
mysql_load_plugin, mysql_load_plugin_v, mysql_options4, and
mysql_plugin_options. (Bug #69204, Bug #16797982, Bug #62394)
* If the WITH_SSL CMake option was specified with an incorrect
path to the SSL installation or the path to an unsupported
(too old) SSL installation, the option was implicitly changed
to the bundled value and yaSSL was used instead. Now CMake
exits with an error so the user knows that the option value
must be changed. (Bug #69744, Bug #17162055)
* The DBUG_ENTER string for the
THD::increment_questions_counter() function incorrectly named
the THD::increment_updates_counter() function. (Bug #69989,
Bug #17297266)
* RPM packages did not provide lowercase tags for their
contents. For example, a server RPM indicated that it provided
MySQL-server, but not mysql-server. (Bug #69830, Bug
#17211588)
* mysql.h no longer defines __WIN__ on Windows, and the MySQL
sources have been changed to test for _WIN32 instead. (Bug
#20338, Bug #11745828)
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql