The world's most popular open source database
Functionality added or changed:
Important Change: Incompatible Change:
The FEDERATED
storage engine is now disabled
by default in binary distributions. The engine is still
available and can be enabled by starting the server with the
--federated
option.
(Bug#37069)
Incompatible Change:
The engines
column in the
mysql.online_backup
table has been renamed to
drivers
to better reflect its contents.
(Bug#34965)
Incompatible Change:
A change has been made to the way that the server handles
prepared statements. This affects prepared statements processed
at the SQL level (using the
PREPARE
statement) and those processed using the binary client-server
protocol (using the
mysql_stmt_prepare()
C API
function).
Previously, changes to metadata of tables or views referred to in a prepared statement could cause a server crash when the statement was next executed, or perhaps an error at execute time with a crash occurring later. For example, this could happen after dropping a table and recreating it with a different definition.
Now metadata changes to tables or views referred to by prepared
statements are detected and cause automatic repreparation of the
statement when it is next executed. Metadata changes occur for
DDL statements such as those that create, drop, alter, rename,
or truncate tables, or that analyze, optimize, or repair tables.
Repreparation also occurs after referenced tables or views are
flushed from the table definition cache, either implicitly to
make room for new entries in the cache, or explicitly due to
FLUSH TABLES
.
Repreparation is automatic, but to the extent that it occurs, performance of prepared statements is diminished.
Table content changes (for example, with
INSERT
or
UPDATE
) do not cause
repreparation, nor do SELECT
statements.
An incompatibility with previous versions of MySQL is that a
prepared statement may now return a different set of columns or
different column types from one execution to the next. For
example, if the prepared statement is SELECT * FROM
t1
, altering t1
to contain a
different number of columns causes the next execution to return
a number of columns different from the previous execution.
Older versions of the client library cannot handle this change in behavior. For applications that use prepared statements with the new server, an upgrade to the new client library is strongly recommended.
Along with this change to statement repreparation, the default
value of the
table_definition_cache
system
variable has been increased from 128 to 256. The purpose of this
increase is to lessen the chance that prepared statements will
need repreparation due to referred-to tables/views having been
flushed from the cache to make room for new entries.
A new status variable, Com_stmt_reprepare
,
has been introduced to track the number of repreparations.
(Bug#27420, Bug#27430, Bug#27690)
Important Change:
Some changes were made to CHECK TABLE ... FOR
UPGRADE
and REPAIR
TABLE
with respect to detection and handling of tables
with incompatible .frm
files (files created
with a different version of the MySQL server). These changes
also affect mysqlcheck because that program
uses CHECK TABLE
and
REPAIR TABLE
, and thus also
mysql_upgrade because that program invokes
mysqlcheck.
If your table was created by a different version of the
MySQL server than the one you are currently running,
CHECK TABLE ... FOR UPGRADE
indicates
that the table has an .frm
file with an
incompatible version. In this case, the result set returned
by CHECK TABLE
contains a
line with a Msg_type
value of
error
and a Msg_text
value of Table upgrade required. Please do "REPAIR
TABLE `
tbl_name
`" to fix
it!
REPAIR TABLE
without
USE_FRM
upgrades the
.frm
file to the current version.
If you use REPAIR TABLE ...USE_FRM
and
your table was created by a different version of the MySQL
server than the one you are currently running,
REPAIR TABLE
will not attempt
to repair the table. In this case, the result set returned
by REPAIR TABLE
contains a
line with a Msg_type
value of
error
and a Msg_text
value of Failed repairing incompatible .FRM
file
.
Previously, use of REPAIR TABLE
...USE_FRM
with a table created by a different
version of the MySQL server risked the loss of all rows in
the table.
Important Change:
The Maria
Storage Engine is now available as
standard. Maria
is a crash safe version of
MyISAM
. Maria
supports all
of the main functionality of the MyISAM
engine, but includes recovery support (in the event of a system
crash), full logging (including CREATE
,
DROP
, RENAME
, and
TRUNCATE
operations), all
MyISAM
row formats and a new
Maria
-specific row format.
Maria
is documented at
Section 13.5, “The Maria
Storage Engine”.
Important Note:
When MySQL is built with the Maria
engine,
all internal temporary on disk tables will use the
Maria
engine. Using Maria
temporary tables in plkace of MyISAM
tables
should result in a performance gain.
On Unix, it is now possible for the output file for
BACKUP DATABASE
to be an existing
FIFO.
(Bug#37012)
mysql_upgrade now has a
--tmpdir
option to enable the location of
temporary files to be specified.
(Bug#36469)
mysqldump now adds the
LOCAL
qualifier to the
FLUSH TABLES
statement that is sent to the server when the
--master-data
option is enabled. This prevents
the FLUSH
TABLES
statement from replicating to slaves, which is
disadvantageous because it would cause slaves to block while the
statement executes.
(Bug#35157)
See also Bug#38303.
The use of the SQL_CACHE
and
SQL_NO_CACHE
options in
SELECT
statements now is checked
more restrictively: 1) Previously, both options could be given
in the same statement. This is no longer true; only one can be
given. 2) Previously, these options could be given in
SELECT
statements that were not
at the top-level. This is no longer true; the options are
disallowed in subqueries (including subqueries in the
FROM
clause, and
SELECT
statements in unions other
than the first SELECT
.
(Bug#35020)
MySQL source distributions are now available in Zip format. (Bug#27742)
The undocumented, deprecated, and not useful SHOW
COLUMN TYPES
statement has been removed.
(Bug#5299)
The server now supports a Debug Sync facility for thread
synchronization during testing and debugging. To compile in this
facility, configure MySQL with the
--enable-debug-sync
option. The
debug_sync
system variable
provides the user interface Debug Sync.
mysqld and
mysql-test-run.pl support a
--debug-sync-timeout
option to enable the
facility and set the default synchronization point timeout.
mysql-test-run.pl now supports a
--mysqltest
option for specifying options to
the mysqltest program.
Several improvements were made to MySQL Backup (the
BACKUP DATABASE
and
RESTORE
statements):
Drivers are now included for storage engines that do not
store any data or rely on other storage engines for data
storage: MERGE
,
FEDERATED
, BLACKHOLE
,
EXAMPLE
.
The backup kernel better determines the dependency ordering of objects to be backed up so that they can be restored in the proper order.
Restored events and triggers are not reactivated until the restore operation completes.
BACKUP DATABASE
now has a
WITH COMPRESSION
clause. This causes the
image file to be compressed, which reduces its size. Compression
also may result in improved backup time by reducing writes to
disk.
When reading from FALCON
tables,
FALCON
can take advantage of reading from the
disk in larger blocks. When enabled, disk reads are in blocks of
64KB. When switched off, disk reads are based on the page size
as set by falcon_page_size
.
Bugs fixed:
Important Change: Security Fix: Additional corrections were made for the symlink-related privilege problem originally addressed in MySQL 6.0.5. The original fix did not correctly handle the data directory pathname if it contained symlinked directories in its path, and the check was made only at table-creation time, not at table-opening time later. (Bug#32167, CVE-2008-2079)
See also Bug#39277.
Incompatible Change:
SHOW STATUS
took a lot of CPU
time for calculating the value of the
Innodb_buffer_pool_pages_latched
status variable. Now this variable is calculated and included in
the output of SHOW STATUS
only
when the UNIV_DEBUG
symbol is defined at
server build time.
(Bug#36600)
Incompatible Change: Access privileges for several statements are more accurately checked:
CHECK TABLE
requires some
privilege for the table.
CHECKSUM TABLE
requires
SELECT
for the table.
CREATE TABLE ... LIKE
requires
SELECT
for the source table
and CREATE
for the
destination table.
SHOW COLUMNS
displays
information only for those columns you have some privilege
for.
SHOW CREATE TABLE
requires
some privilege for the table (previously required
SELECT
).
SHOW CREATE VIEW
requires
SHOW VIEW
and
SELECT
for the view.
SHOW INDEX
requires some
privilege for any column.
SHOW OPEN TABLES
displays
only tables for which you have some privilege on any table
column.
Incompatible Change:
Certain characters were sorted incorrectly for the following
collations: TILDE and GRAVE ACCENT in
big5_chinese_ci
; LATIN SMALL LETTER J in
cp866_general_ci
; TILDE in
gb2312_chinese_ci
; and TILDE in
gbk_chinese_ci
.
As a result of this fix, any indexes on columns that use these
collations and contain the affected characters must be rebuilt
when upgrading to 6.0.6 or higher. To do this, use
ALTER TABLE
to drop and re-add
the indexes, or mysqldump to dump the
affected tables and mysql to reload the dump
file.
(Bug#25420)
Incompatible Change:
An additional correction to the original MySQL 6.0.4 fix was
made to normalize directory names before adding them to the list
of directories. This prevents /etc/
and
/etc
from being considered different, for
example.
(Bug#20748)
See also Bug#38180.
Important Change:
Previously, Falcon
failed silently when
attempting to read incompatible datafiles created by an earlier
version of the storage engine. Now, when
Falcon
encounters such datafiles, it refuses
to start, and an appropriate error is issued instead.
(Bug#35190)
Important Change:
The server no longer issues warnings for truncation of excess
spaces for values inserted into
CHAR
columns. This reverts a
change in the previous release that caused warnings to be
issued.
(Bug#30059)
Partitioning: Important Note:
The statements ANALYZE TABLE
,
CHECK TABLE
,
OPTIMIZE TABLE
, and
REPAIR TABLE
are now supported
for partitioned tables.
Also as a result of this fix, the following statements which were disabled in MySQL 6.0.5 have been re-enabled:
ALTER TABLE ... ANALYZE PARTITION
ALTER TABLE ... CHECK PARTITION
ALTER TABLE ... OPTIMIZE PARTITION
ALTER TABLE ... REPAIR PARTITION
See also Bug#39434.
Partitioning:
myisamchk failed with an assertion error when
analyzing a partitioned MyISAM
table.
(Bug#37537)
Partitioning:
When an attempt is made to change a table to an unsupported
storage engine, the server normally uses the default storage
engine in place of the requested engine while issuing a warning.
However, if the table was partitioned, the same
ALTER TABLE
statement failed with
the error, The mix of handlers in the partitions is
not allowed in this version of MySQL. This happened
even if the server was not running in
NO_ENGINE_SUBSTITUTION
mode.
Now the behavior for partitioned tables is the same as for other
MySQL tables; the substitution is made, and a warning is issued.
(Bug#35765)
Partitioning:
MyISAM
recovery enabled with the
--myisam-recover
option did not work for
partitioned MyISAM
tables.
(Bug#35161)
Partitioning:
When one user was in the midst of a transaction on a partitioned
table, a second user performing an ALTER
TABLE
on this table caused the server to hang.
(Bug#34604)
Partitioning:
Inserts failed on partitioned tables containing user-supplied
values for an AUTO_INCREMENT
column.
(Bug#33479)
Partitioning:
Partition-level TABLESPACE
options were
ignored for Falcon
tables.
(Bug#33404)
Partitioning:
For InnoDB
tables, there was a race condition
involving the data dictionary and repartitioning.
(Bug#33349)
Replication:
CREATE PROCEDURE
and
CREATE FUNCTION
statements
containing extended comments were not written to the binary log
correctly, causing parse errors on the slave.
(Bug#36570)
See also Bug#32575.
Replication:
When flushing tables, there was a slight chance that the flush
occurred between the processing of one table map event and the
next. Since the tables were opened one by one, subsequent
locking of tables would cause the slave to crash. This problem
was observed when replicating
NDBCLUSTER
or
InnoDB
tables, when executing multi-table
updates, and when a trigger or a stored routine performed an
(additional) insert on a table so that two tables were
effectively being inserted into in the same statement.
(Bug#36197)
Replication:
INSTALL PLUGIN
and
UNINSTALL PLUGIN
caused row-based
replication to fail.
These statements are not replicated; however, when using
row-based logging, the changes they introduce in the
mysql
system tables are written to the
binary log.
Replication:
CREATE VIEW
statements containing
extended comments were not written to the binary log correctly,
causing parse errors on the slave. Now, all comments are
stripped from such statements before being written to the binary
log.
(Bug#32575)
See also Bug#36570.
The minimum page size accepted by FALCON
has
been increased from 1K to 2K.
(Bug#39707)
Trying to execute a DDL statement on a Falcon
table while a transaction was being rolled back could cause the
server to crash.
(Bug#38933)
When building FALCON
using the Sun Studio 12
compiler, a requirement for the GNU Standard C++
(libstdc++
) library would be added to the
build requirements, causing the build to fail.
(Bug#38556)
The Falcon
memory manager did not always
perform initialization of internal objects correctly.
(Bug#38519)
See also Bug#38770.
Disconnecting a session where you have a applied a
WRITE CONCURRENT
lock on
Maria
tables would lead to a crash.
(Bug#38492)
Range queries on a Maria
table could fail to
return the correct rows.
(Bug#38466)
The Windows my-template.ini
template file
contained a reference to the
myisam_max_extra_sort_file_size
system variable, which no longer exists, causing the installed
server to fail upon startup.
(Bug#38371)
Incorrect handling of aggregate functions when loose index scan was used caused a server crash. (Bug#38195)
The fix for Bug#33812 had the side effect of causing the mysql client not to be able to read some dump files produced with mysqldump. To address this, that fix was reverted. (Bug#38158)
The MyISAM
backup driver was subject to a
race condition that allowed multiple
RESTORE
operations to occur
simultaneously. This could result in locking conflicts,
incorrect entries in the progress tables, or other problems.
(Bug#38108)
Concurrent adding or dropping of indexes and execution of DML
statements on a Falcon
table could cause the
server to crash.
(Bug#38044)
Executing ALTER TABLE
and DML
statements concurrently on Falcon
tables
could cause the server to hang.
(Bug#38043)
ALTER TABLE ... ADD KEY
and ALTER
TABLE ... DROP KEY
were not always handled correctly
for Falcon
tables, resulting in spurious
duplicate key and other errors.
(Bug#38041)
If a table has a BIT NOT NULL
column
c1
with a length shorter than 8 bits and some
additional NOT NULL
columns
c2
, ..., and a
SELECT
query has a
WHERE
clause of the form (c1 =
, the
query could return an unexpected result set.
(Bug#37799)constant
) AND c2 ...
MySQL server binaries built using gcc4.3
could crash when running large numbers of DML statements on
Falcon
tables.
(Bug#37725)
When building FALCON
using the Sun Studio 12
compiler on OpenSolaris the build would fail due to a missing
header file, Interlock.h
.
(Bug#37679)
Building MySQL with SSL and Falcon
enabled
would lead to a build failure.
(Bug#37517)
A large number of updates on a Falcon
table
followed by a query of the form SELECT
AVG(
could crash the
server.
(Bug#37344)int_non_key_column
) FROM
table
WHERE
int_non_key_column
<
constant
GROUP BY
int_key_column
LIMIT
limit
Queries with complex conditions in the WHERE
clause on Falcon
tables when
falcon_page_size
was set to a
low value could cause the server to crash.
(Bug#37343)
Within stored programs or prepared statements,
REGEXP
could return incorrect
results due to improper initialization.
(Bug#37337)
When running a concurrent scenario involving transactions, each
executing a small number of DELETE
and
UPDATE
operations on a small number of
records on FALCON
tables, a deadlock could
occur.
(Bug#37251)
When performing operations on a table in one client while a
different client is performing a TRUNCATE
operation on the same FALCON
table a deadlock
could be introduced.
(Bug#37080)
The
falcon_max_transaction_backlog
has been removed. The option was originally introduced to ensure
that the backlog of transactions did not exceed a certain level
with the gopher thread. FALCON
now uses
multiple gopher threads. The transaction backlog is handled
internally by FALCON
.
(Bug#36991)
The falcon_initial_allocation
has been removed. The option created new tablespace files with
the specified size to force allocation on disk of specified
block of contiguous space. The option had little effect on the
performance of the tablespace files, and has therefore been
removed.
(Bug#36990)
The
falcon_index_chill_threshold
and
falcon_record_chill_threshold
options have been modified so that the specification for the
size can be specified in bytes, and support the KB, MB, and GB
modifiers.
(Bug#36825)
The code for the ut_usectime()
function in
InnoDB
did not handle errors from the
gettimeofday()
system call. Now it retries
gettimeofday()
several times and updates
the value of the
Innodb_row_lock_time_max
status variable only if ut_usectime()
was
successful.
(Bug#36819)
If the length of a field was 3, internal
InnoDB
to integer type conversion didn't work
on big-endian machines in the
row_search_autoinc_column()
function.
(Bug#36793)
For a view that referred to a MyISAM
table,
the contents of the table could be empty after
BACKUP DATABASE
followed by
RESTORE
.
(Bug#36782)
Data loss could be caused by attempts to read data from a
database being restored by a
RESTORE
operation.
(Bug#36778)
Some warnings were being reported as errors. (Bug#36777)
Data loss could be caused by activation of a trigger for a
MyISAM
table being restored by a
RESTORE
operation.
(Bug#36749)
mysql_install_db from a
Falcon
-enabled build crashed on
Solaris/SPARC.
(Bug#36745)
On Windows 64-bit systems, temporary variables of
long
types were used to store
ulong
values, causing key cache
initialization to receive distorted parameters. The effect was
that setting key_buffer_size
to
values of 2GB or more caused memory exhaustion to due allocation
of too much memory.
(Bug#36705)
Multiple-table UPDATE
statements
that used a temporary table could fail to update all qualifying
rows or fail with a spurious duplicate-key error.
(Bug#36676)
A query which had an ORDER BY DESC
clause
that is satisfied with a reverse range scan could cause a server
crash for some specific CPU/compiler combinations.
(Bug#36639)
The online backup stream library failed to parse the backup stream on 64-bit systems. (Bug#36624)
FALCON
would try to open a number of files
during startup that are not required by the MySQL storage engine
implmentation. These operations have been removed.
(Bug#36620)
On 64-bit platforms, BACKUP
DATABASE
hung for backups of more than 32KB.
(Bug#36586)
Dumping information about locks in use by sending a
SIGHUP
signal to the server or by invoking
the mysqladmin debug command could lead to a
server crash in debug builds or to undefined behavior in
production builds.
(Bug#36579)
A REGEXP
match could return
incorrect rows when the previous row matched the expression and
used CONCAT()
with an empty
string.
(Bug#36488)
The server could not be compiled with Falcon
support on Solaris/x86.
(Bug#36486)
mysqltest ignored the value of
--tmpdir
in one place.
(Bug#36465)
The ER_TRUNCATED_WRONG_VALUE
warning
condition was sometimes raised as an error.
(Bug#36457)
When one MySQL client application committed a transaction
affecting a Falcon
table at the same time
that another client dropped this table, the
DROP TABLE
statement did not
“see” that transaction. This led to a situation
such that a row affected by the transaction was later accessed
in a manner that referred to the deleted table, resulting in a
crash of the server.
(Bug#36438)
ha_innodb.so
was incorrectly installed in
the lib/mysql
directory rather than in
lib/mysql/plugin
.
(Bug#36434)
Compiling the server with Falcon
support
failed on Solaris 10 due to problems with DTrace. This occurred
even when the build was configured using
--disable-dtrace
.
(Bug#36403)
Compiling the server with Falcon
support
failed on Solaris 10 for x86 platforms failed due to use of
assembler code specific to gcc.
(Bug#36400)
Dropping a Falcon
tablespace concurrently
with dropping a table using that tablespace caused the server to
crash.
(Bug#36396)
Attempting to compile the server with Falcon support using the Sun Studio 12 compiler failed with the error "Value.h", line 185: Error: A union member cannot have a user-defined assignment operator. (Bug#36368)
The default drivers for BACKUP
DATABASE
and RESTORE
now support a cancel operation, which also allows better cleanup
if a driver error occurs.
(Bug#36323)
The server crashed while parsing large floating-point numbers
such as 1e37
or -1e15
.
(Bug#36320)
When updating an existing instance (for example, from MySQL 5.0
to 5.1, or 5.1 to 6.0), the Instance Configuration Wizard
unnecessarily prompted for a root
password
when there was an existing root
password.
(Bug#36305)
Following a number of INSERT ... SELECT
statements on a Falcon
table, creating a
second Falcon
table using the same tablespace
as the table into which the inserts were made and then
performing a simple INSERT
on the
new table caused the server to crash.
(Bug#36294, Bug#36367)
See also Bug#29648.
For InnoDB
tables, the
DATA_FREE
column of the
INFORMATION_SCHEMA.TABLES
displayed
free space in kilobytes rather than bytes. Now it displays
bytes.
(Bug#36278)
BACKUP DATABASE
failed to back up
views that depend on tables in a different database.
(Bug#36265)
The project files created for Windows were missing the
GenError
project dependency.
(Bug#36257)
The mysql client failed to recognize comment
lines consisting of --
followed by a newline.
(Bug#36244)
CREATE INDEX
for
InnoDB
tables could under very rare
circumstances cause the server to crash..
(Bug#36169)
A read past the end of the string could occur while parsing the
value of the --innodb-data-file-path
option.
(Bug#36149)
Conversion of a FLOAT ZEROFILL
value to
string could cause a server crash if the value was
NULL
.
(Bug#36139)
The combination of semi-join and materialization both being enabled could lead to assertion failure during subquery processing. (Bug#36137)
Range optimizer evaluation of IN
subqueries
to be handled with the materialization strategy could lead to
assertion failure.
(Bug#36133)
A server crash could occur during the cleanup phase of subquery execution. (Bug#36128)
On Windows, the installer attempted to use JScript to determine whether the target data directory already existed. On Windows Vista x64, this resulted in an error because the installer was attempting to run the JScript in a 32-bit engine, which wasn't registered on Vista. The installer no longer uses JScript but instead relies on a native WiX command. (Bug#36103)
A SELECT ... LIKE
query issued following a
number of INSERT
statements on a
Falcon
table failed to return all matching
records.
(Bug#36097)
mysqltest was performing escape processing
for the --replace_result
command, which it
should not have been.
(Bug#36041)
An error in calculation of the precision of zero-length items
(such as NULL
) caused a server crash for
queries that employed temporary tables.
(Bug#36023)
For EXPLAIN EXTENDED
, execution of an
uncorrelated IN
subquery caused a crash if
the subquery required a temporary table for its execution.
(Bug#36011)
The MERGE
storage engine did a table scan for
SELECT COUNT(*)
statements when it could
calculate the number of records from the underlying tables.
(Bug#36006)
The server crashed inside NOT IN
subqueries
with an impossible WHERE
or
HAVING
clause, such as NOT IN
(SELECT ... FROM t1, t2, ... WHERE 0)
.
(Bug#36005)
mysql_stmt_prepare()
did not
reset the list of messages (those messages available via
SHOW WARNINGS
).
(Bug#36004)
The Event Scheduler was not designed to work under the embedded
server. It is now disabled for the embedded server, and the
event_scheduler
system variable
is not displayed.
(Bug#35997)
Grouping or ordering of long values in unindexed
BLOB
or
TEXT
columns with the
gbk
or big5
character set
crashed the server.
(Bug#35993)
SET GLOBAL debug=''
resulted in a Valgrind
warning in DbugParse()
, which was reading
beyond the end of the control string.
(Bug#35986)
If a SELECT
table list contained
at least one INFORMATION_SCHEMA
table, the
required privileges for accessing the other tables were reduced.
(Bug#35955)
Some syntactically invalid statements could cause the server to return an error message containing garbage characters. (Bug#35936)
MySQL could not be built using Sun Studio due to the use of compiler options specific to gcc. (Bug#35929)
The “prefer full scan on clustered primary key over full scan of any secondary key” optimizer rule introduced by Bug#26447 caused a performance regression for some queries, so it has been disabled. (Bug#35850)
The server ignored any covering index used for
ref
access of a table in a
query with ORDER BY
if this index was
incompatible with the ORDER BY
list and there
was another covering index compatible with this list. As a
result, suboptimal execution plans were chosen for some queries
that used an ORDER BY
clause.
(Bug#35844)
mysql_upgrade did not properly update the
mysql.event
table.
(Bug#35824)
The current system time (as returned by
NOW()
or synonyms) became
constant after a RESTORE
operation.
(Bug#35806)
Processing of an uncorrelated subquery using semi-join could cause incorrect results or a server crash. (Bug#35767)
An incorrect error and message was produced for attempts to
create a MyISAM
table with an index
(.MYI
) filename that was already in use by
some other MyISAM
table that was open at the
same time. For example, this might happen if you use the same
value of the INDEX DIRECTORY
table option for
tables belonging to different databases.
(Bug#35733)
Enabling the read_only
system
variable while autocommit mode was enabled caused
SELECT
statements for
transactional storage engines to fail.
(Bug#35732)
The range optimizer ignored conditions on inner tables in
semi-join IN
subqueries, causing the
optimizer to miss good query execution plans.
(Bug#35674)
An empty bit-string literal (b''
) caused a
server crash. Now the value is parsed as an empty bit value
(which is treated as an empty string in string context or 0 in
numeric context).
(Bug#35658)
On 64-bit systems, assigning values of 2
63 – 1 or larger to
key_buffer_size
caused memory
overruns.
(Bug#35616)
For InnoDB
tables,
REPLACE
statements used
“traditional” style locking, regardless of the
setting of
innodb_autoinc_lock_mode
. Now
REPLACE
works the same way as
“simple inserts” instead of using the old locking
algorithm. (REPLACE
statements
are treated in the same way as as
INSERT
statements.)
(Bug#35602)
Different invocations of CHECKSUM
TABLE
could return different results for a table
containing columns with spatial data types.
(Bug#35570)
A semi-join subquery in the ON
clause in the
absence of a WHERE
clause caused a server
crash.
(Bug#35550)
InnoDB
was not updating the
Handler_delete
or
Handler_update
status
variables.
(Bug#35537)
The method for enumerating view dependencies could cause the server to deadlock. (Bug#35395)
If the server crashed with an InnoDB
error
due to unavailability of undo slots, errors could persist during
rollback when the server was restarted: There are two
UNDO
slot caches (for
INSERT
and
UPDATE
). If all slots end up in
one of the slot caches, a request for a slot from the other slot
cache would fail. This can happen if the request is for an
UPDATE
slot and all slots are in
the INSERT
slot cache, or vice
versa.
(Bug#35352)
Simultaneous inserts and updates on an updateable view
referencing a Falcon
table could sometimes
cause duplicate key errors.
(Bug#35322)
The combination of
GROUP_CONCAT()
,
DISTINCT
, and LEFT JOIN
could crash the server when the right table is empty.
(Bug#35298)
Accessing a MERGE
table with an empty
underlying table list incorrectly resulted in a “wrong
index” error message rather than “end of
file.”
(Bug#35274)
BACKUP DATABASE
caused a server
crash upon encountering a table row that has been marked for
deletion but not removed.
(Bug#35249)
For InnoDB
tables, ALTER TABLE
DROP
failed if the name of the column to be dropped
began with “foreign”.
(Bug#35220)
The table pullout strategy was not reflected in EXPLAIN
EXTENDED
output if not all of the subquery tables were
pulled out.
(Bug#35160)
Access-denied messages for INFORMATION_SCHEMA
incorrectly showed the name of the default database instead.
(Bug#35096)
Passing an invalid parameter to
CHAR()
in an ORDER
BY
clause caused the server to hang.
(Bug#34949)
Some binaries produced stack corruption messages due to being built with versions of bison older than 2.1. Builds are now created using bison 2.3. (Bug#34926)
Concurrent execution of
FLUSH TABLES
along with SHOW FUNCTION STATUS
or SHOW PROCEDURE STATUS
could
cause a server crash.
(Bug#34895)
Creating a new Falcon
table using
CREATE TABLE ... SELECT
where the table uses
a primary key, and rows contain duplicate keys, could lead to a
table being created but not populated. Because the pending (bad)
record was not committed, the table remains in a state that
means it cannot be dropped or recreated.
(Bug#34892)
The log_output
system variable
could be set to an illegal value.
(Bug#34820)
A server crash or memory overrun could occur with a dependent subquery and joins. (Bug#34799)
An assertion could be raised when the dependencies on a
transaction could not be released after a specified time when
using FALCON
tables.
(Bug#34602)
InnoDB
could crash if overflow occurred for
an AUTO_INCREMENT
column.
(Bug#34335)
On Windows 64-bit builds, an apparent compiler bug caused memory
overruns for code in innobase/mem/*
.
Removed optimizations so as not to trigger this problem.
(Bug#34297)
Several additional configuration scripts in the
BUILD
directory now are included in source
distributions. These may be useful for users who wish to build
MySQL from source. (See
Section 2.9.3, “Installing from the Development Source Tree”, for information about
what they do.)
(Bug#34291)
For InnoDB
tables, loss of data resulted from
performing inserts concurrently with a
RESTORE
operation.
(Bug#34210)
In some cases, concurrent INSERT
and DELETE
statements on the same
Falcon
table could cause the server to crash,
due to a failure to find a record that should have been in the
table.
(Bug#33933)
A number of problems in new subquery optimization code meant that MySQL could pick an incorrect query plan when using InsideOut and/or FirstMatch subquery optimizations, which in turn would cause wrong query results. (Bug#33743)
If CREATE TABLE
or
ALTER TABLE
of a
Falcon
table failed, it was not possible to
create another table in the same database having the same name
unless the server was restarted. In some cases, subsequent
CREATE TABLE
statements could
cause the server to crash.
(Bug#33723)
Attempts to access a FEDERATED
table using a
non-existent server did not reliably return a proper error.
(Bug#33702)
It was possible for multiple mysqld instances
to use the same Falcon
tablespace and
metadata files, which could lead to corruption of the tablespace
files, metadata files, or both.
(Bug#33607)
TIMESTAMP
columns were restored
to the current date and time (not their actual values) by a
RESTORE
operation.
(Bug#33573)
Use of 61 nested subqueries caused a server crash. (Bug#33509)
An ALTER TABLE ... TABLESPACE
statement
referencing a non-existant tablespace on a
Falcon
table failed with an inappropriate
error message the first time it was executed. A second attempt
to execute the statement led to a crash of the MySQL server.
(Bug#33397)
Executing a FLUSH
PRIVILEGES
statement after creating a temporary table
in the mysql
database with the same name as
one of the MySQL system tables caused the server to crash.
While it is possible to shadow a system table in this way, the temporary table exists only for the current user and connection, and does not effect any user privileges.
Selecting from a view that referenced the same table in the
FROM
clause and an IN
clause caused a server crash.
(Bug#33245)
When creating a new tablespace and specifying the name of an existing tablespace file, an incorrect error message would be reported specifying that the tablespace already existed. The error message has been updated to reflect the actual error. (Bug#33213)
There was a race condition between the event scheduler and the server shutdown thread. (Bug#32771)
Assignment of relative pathnames to
general_log_file
or
slow_query_log_file
did not
always work.
(Bug#32748)
Deeply nested subqueries could cause stack overflow or a server crash. (Bug#32680)
Query results from a FEDERATED
table were
corrupt if the query included an ORDER BY
on
a TEXT
column.
(Bug#32426)
Conversion of binary values to multi-byte character sets could fail to left-pad values to the correct length. This could result in a server crash. (Bug#32394)
On all x86 platforms, the default was to attempt to build the
server with the Falcon
storage engine, even
if Falcon
was not supported for a given
platform.
(Bug#32287)
Killing a statement that invoked a stored function could return an incorrect error message indicating table corruption rather than that the statement had been interrupted. (Bug#32140)
Occurrence of an error within a stored routine did not always cause immediate statement termination. (Bug#31881)
For DROP FUNCTION
(that is, when the function name is qualified with the database
name), the statement should apply only to a stored function
named db_name
.func_name
func_name
in the given database.
However, if a UDF with the same name existed, the statement
dropped the UDF instead.
(Bug#31767)
On NetWare, mysql_install_db could appear to execute normally even if it failed to create the initial databases. (Bug#30129)
A problem related to HP-UX compilers that caused incorrect
WEIGHT_STRING()
results was
fixed.
(Bug#29825)
TRUNCATE
TABLE
for InnoDB
tables returned a
count showing too many rows affected. Now the statement returns
0 for InnoDB
tables.
(Bug#29507)
InnoDB
could return an incorrect rows-updated
value for UPDATE
statements.
(Bug#29157)
The mysql.servers
table was not created
during installation on Windows.
(Bug#28680, Bug#32797)
The jp
test suite was not working.
(Bug#28563)
The internal init_time()
library function
was renamed to my_init_time()
to avoid
conflicts with external libraries.
(Bug#26294)
In some cases, the parser interpreted the ;
character as the end of input and misinterpreted stored program
definitions.
(Bug#26030)
Statements to create, alter, or drop a view were not waiting for completion of statements that were using the view, which led to incorrect sequences of statements in the binary log when statement-based logging was enabled. (Bug#25144)
The Questions
status variable
is intended as a count of statements sent by clients to the
server, but was also counting statements executed within stored
routines.
(Bug#24289)
InnoDB
exhibited thread thrashing with more
than 50 concurrent connections under an update-intensive
workload.
(Bug#22868)
DROP DATABASE
did not drop
orphaned FOREIGN KEY
constraints.
(Bug#18942)
Delayed-insert threads were counted as connected but not as
created, incorrectly leading to a
Threads_connected
value
greater than the
Threads_created
value.
(Bug#17954)
The parser used signed rather than unsigned values in some cases that caused legal lengths in column declarations to be rejected. (Bug#15776)
Stored procedure exception handlers were catching fatal errors (such as out of memory errors), which could cause execution not to stop to due a continue handler. Now fatal errors are not caught by exception handlers and a fatal error is returned to the client. (Bug#15192)
On Windows, moving an InnoDB
.ibd
file and then symlinking to it in the
database directory using a .sym
file caused
a server crash.
(Bug#11894)
If a connection was waiting for a
GET_LOCK()
lock or a
SLEEP()
call, and the connection
aborted, the server did not detect this and thus did not close
the connection. This caused a waste of system resources
allocated to dead connections. Now the server checks such a
connection every five seconds to see whether it has been
aborted. If so, the connection is killed (and any lock request
is aborted).
(Bug#10374)
User Comments
Add your own comment.