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.
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.
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)
The Falcon memory manager did not always
perform initialization of internal objects correctly.
(Bug#38519)
See also Bug#38770.
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)
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)
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)
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)
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)
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)
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_namefunc_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.