This is a bugfix release for the current MySQL Community Server production release family. It replaces MySQL 5.0.41.
Functionality added or changed:
Incompatible Change:
Prior to this release, when DATE
values were compared with
DATETIME
values, the time portion
of the DATETIME
value was
ignored, or the comparison could be performed as a string
compare. Now a DATE
value is
coerced to the DATETIME
type by
adding the time portion as 00:00:00
. To mimic
the old behavior, use the CAST()
function as shown in this example: SELECT
.
(Bug#28929)date_col
= CAST(NOW() AS DATE) FROM
table
;
Incompatible Change:
INSERT DELAYED
is now downgraded
to a normal INSERT
if the
statement uses functions that access tables or triggers, or that
is called from a function or a trigger.
This was done to resolve the following interrelated issues:
The server could abort or deadlock for
INSERT DELAYED
statements for
which another insert was performed implicitly (for example,
via a stored function that inserted a row).
A trigger using an INSERT
DELAYED
caused the error INSERT DELAYED
can't be used with table ... because it is locked with LOCK
TABLES although the target table was not
actually locked.
INSERT DELAYED
into a table
with a BEFORE INSERT
or AFTER
INSERT
trigger gave an incorrect
NEW
pseudocolumn value and caused the
server to deadlock or abort.
MySQL Cluster: The server source tree now includes scripts to simplify building MySQL with SCI support. For more information about SCI interconnects and these build scripts, see Section 17.3.5.1, “Configuring MySQL Cluster to use SCI Sockets”. (Bug#25470)
Binaries for the Linux x86 statically linked
tar.gz
Community package were linked
dynamically, not statically. Static linking has been re-enabled.
(Bug#29617)
INSERT DELAYED
statements on
BLACKHOLE
tables are now rejected, due to the
fact that the BLACKHOLE
storage engine does
not support them.
(Bug#27998)
A new status variable, Com_call_procedure
,
indicates the number of calls to stored procedures.
(Bug#27994)
Potential memory leaks in SHOW
PROFILE
were eliminated.
(Bug#24795)
Bugs fixed:
Security Fix: A malformed password packet in the connection protocol could cause the server to crash. Thanks for Dormando for reporting this bug, and for providing details and a proof of concept. (Bug#28984, CVE-2007-3780)
Security Fix: Use of a view could allow a user to gain update privileges for tables in other databases. (Bug#27878, CVE-2007-3782)
Security Fix:
The requirement of the DROP
privilege for RENAME TABLE
was
not enforced.
(Bug#27515, CVE-2007-2691)
Security Fix:
If a stored routine was declared using SQL SECURITY
INVOKER
, a user who invoked the routine could gain
privileges.
(Bug#27337, CVE-2007-2692)
Security Fix:
CREATE TABLE LIKE
did not require any
privileges on the source table. Now it requires the
SELECT
privilege.
In addition, CREATE TABLE LIKE
was not
isolated from alteration by other connections, which resulted in
various errors and incorrect binary log order when trying to
execute concurrently a CREATE TABLE LIKE
statement and either DDL statements on the source table or DML
or DDL statements on the target table.
(Bug#23667, Bug#25578, CVE-2007-3781)
Incompatible Change:
The names of stored functions referenced by views were not
properly displayed by SHOW CREATE
VIEW
.
The fix corrects a problem introduced by Bug#23491. There is an incompatibility when upgrading from versions affected by that bug fix (MySQL 5.0.40 through 5.0.43, MySQL 5.1.18 through 5.1.19): If you use mysqldump before upgrading from an affected version and reload the data after upgrading to a higher version, you must drop and recreate your views. (Bug#28605)
Incompatible Change:
When mysqldump was run with the
--delete-master-logs
option,
binary log files were deleted before it was known that the dump
had succeeded, not after. (The method for removing log files
used RESET MASTER
prior to the
dump. This also reset the binary log sequence numbering to
.000001
.) Now mysqldump
flushes the logs (which creates a new binary log number with the
next sequence number), performs the dump, and then uses
PURGE BINARY LOGS
to remove the
log files older than the new one. This also preserves log
numbering because the new log with the next number is generated
and only the preceding logs are removed. However, this may
affect applications if they rely on the log numbering sequence
being reset.
(Bug#24733)
Incompatible Change:
The use of an ORDER BY
or
DISTINCT
clause with a query containing a
call to the GROUP_CONCAT()
function caused results from previous queries to be redisplayed
in the current result. The fix for this includes replacing a
BLOB
value used internally for
sorting with a VARCHAR
. This
means that for long results (more than 65,535 bytes), it is
possible for truncation to occur; if so, an appropriate warning
is issued.
(Bug#23856, Bug#28273)
MySQL Cluster: A corrupt schema file could cause a File already open error. (Bug#28770)
MySQL Cluster:
Setting InitialNoOpenFiles
equal to
MaxNoOfOpenFiles
caused an error. This was
due to the fact that the actual value of
MaxNoOfOpenFiles
as used by the cluster was
offset by 1 from the value set in
config.ini
.
(Bug#28749)
MySQL Cluster:
UPDATE IGNORE
statements involving the
primary keys of multiple tables could result in data corruption.
(Bug#28719)
MySQL Cluster:
A race condition could result when nonmaster nodes (in addition
to the master node) tried to update active status due to a local
checkpoint (that is, between NODE_FAILREP
and
COPY_GCIREQ
events). Now only the master
updates the active status.
(Bug#28717)
MySQL Cluster: A fast global checkpoint under high load with high usage of the redo buffer caused data nodes to fail. (Bug#28653)
MySQL Cluster:
When an API node sent more than 1024 signals in a single batch,
NDB
would process only the first
1024 of these, and then hang.
(Bug#28443)
MySQL Cluster:
A delay in obtaining AUTO_INCREMENT
IDs could
lead to excess temporary errors.
(Bug#28410)
MySQL Cluster: The cluster waited 30 seconds instead of 30 milliseconds before reading table statistics. (Bug#28093)
MySQL Cluster:
INSERT IGNORE
wrongly ignored NULL
values in unique
indexes.
(Bug#27980)
MySQL Cluster: The name of the month “March” was given incorrectly in the cluster error log. (Bug#27926)
MySQL Cluster:
It was not possible to add a unique index to an
NDB
table while in single user
mode.
(Bug#27710)
MySQL Cluster:
Repeated insertion of data generated by
mysqldump into
NDB
tables could eventually lead to
failure of the cluster.
(Bug#27437)
MySQL Cluster:
ndb_connectstring
did not appear in the
output of SHOW VARIABLES
.
(Bug#26675)
MySQL Cluster: A failure to release internal resources following an error could lead to problems with single user mode. (Bug#25818)
Replication:
The result of executing of a prepared statement created with
PREPARE s FROM "SELECT 1 LIMIT ?"
was not
replicated correctly.
(Bug#28464)
Replication: Recreating a view that already exists on the master would cause a replicating slave to terminate replication with a 'different error message on slave and master' error. (Bug#28244)
Replication: Binary logging of prepared statements could produce syntactically incorrect queries in the binary log, replacing some parameters with variable names rather than variable values. This could lead to incorrect results on replication slaves. (Bug#26842, Bug#12826)
Replication:
Connections from one mysqld server to another
failed on Mac OS X, affecting replication and
FEDERATED
tables.
(Bug#26664)
See also Bug#29083.
Replication: Aborting a statement on the master that applied to a nontransactional statement broke replication. The statement was written to the binary log but not completely executed on the master. Slaves receiving the statement executed it completely, resulting in loss of data synchrony. Now an error code is written to the error log so that the slaves stop without executing the aborted statement. (That is, replication stops, but synchrony to the point of the stop is preserved and you can investigate the problem.) (Bug#26551)
Replication: Restoration of the default database after stored routine or trigger execution on a slave could cause replication to stop if the database no longer existed. (Bug#25082)
Replication: When using transactions and replication, shutting down the master in the middle of a transaction would cause all slaves to stop replicating. (Bug#22725)
Replication:
Using CREATE TABLE LIKE ...
would raise an
assertion when replicated to a slave.
(Bug#18950)
Cluster API:
For BLOB
reads on operations with
lock mode LM_CommittedRead
, the lock mode was
not upgraded to LM_Read
before the state of
the BLOB
had already been
calculated. The NDB
API methods
affected by this problem included the following:
NdbOperation::readTuple()
NdbScanOperation::readTuples()
NdbIndexScanOperation::readTuples()
On the IBM i5 platform, the installation script in the
.savf
binaries unconditionally executed the
mysql_install_db script. This problem was
fixed in a repackaged distribution numbered 5.0.45b.
(Bug#30084)
Long path names for internal temporary tables could cause stack overflows. (Bug#29015)
Using an INTEGER
column from a
table to ROUND()
a number
produced different results than using a constant with the same
value as the INTEGER
column.
(Bug#28980)
If a program binds a given number of parameters to a prepared
statement handle and then somehow changes
stmt->param_count
to a different number,
mysql_stmt_execute()
could crash
the client or server.
(Bug#28934)
INSERT .. ON DUPLICATE KEY UPDATE
could under
some circumstances silently update rows when it should not have.
(Bug#28904)
Queries that used UUID()
were
incorrectly allowed into the query cache. (This should not
happen because UUID()
is
nondeterministic.)
(Bug#28897)
Using a VIEW
created with a nonexisting
DEFINER
could lead to incorrect results under
some circumstances.
(Bug#28895)
On Windows, USE_TLS
was not defined for
mysqlclient.lib
.
(Bug#28860)
A subquery with ORDER BY
and LIMIT
1
could cause a server crash.
(Bug#28811)
Using BETWEEN
with nonindexed date
columns and short formats of the date string could return
incorrect results.
(Bug#28778)
Selecting GEOMETRY
columns in a
UNION
caused a server crash.
(Bug#28763)
When constructing the path to the original
.frm
file, ALTER ..
RENAME
was unnecessarily (and incorrectly) lowercasing
the entire path when not on a case-insensitive file system,
causing the statement to fail.
(Bug#28754)
Searches on indexed and nonindexed
ENUM
columns could return
different results for empty strings.
(Bug#28729)
Executing EXPLAIN
EXTENDED
on a query using a derived table over a
grouping subselect could lead to a server crash. This occurred
only when materialization of the derived tables required
creation of an auxiliary temporary table, an example being when
a grouping operation was carried out with usage of a temporary
table.
(Bug#28728)
The result of evaluation for a view's CHECK
OPTION
option over an updated record and records of
merged tables was arbitrary and dependant on the order of
records in the merged tables during the execution of the
SELECT
statement.
(Bug#28716)
The “manager thread” of the LinuxThreads implementation was unintentionally started before mysqld had dropped privileges (to run as an unprivileged user). This caused signaling between threads in mysqld to fail when the privileges were finally dropped. (Bug#28690)
For debug builds, ALTER TABLE
could trigger an assertion failure due to occurrence of a
deadlock when committing changes.
(Bug#28652)
Killing from one connection a long-running EXPLAIN
QUERY
started from another connection caused
mysqld to crash.
(Bug#28598)
Outer join queries with ON
conditions over
constant outer tables did not return
NULL
-complemented rows when conditions were
evaluated to FALSE
.
(Bug#28571)
An update on a multiple-table view with the CHECK
OPTION
clause and a subquery in the
WHERE
condition could cause an assertion
failure.
(Bug#28561)
PURGE MASTER LOGS BEFORE
(
caused a server
crash. Subqueries are forbidden in the subquery
)BEFORE
clause now.
(Bug#28553)
mysqldump calculated the required memory for a hex-blob string incorrectly causing a buffer overrun. This in turn caused mysqldump to crash silently and produce incomplete output. (Bug#28522)
Passing a DECIMAL
value as a
parameter of a statement prepared with
PREPARE
resulted in an error.
(Bug#28509)
mysql_affected_rows()
could
return an incorrect result for
INSERT ...
ON DUPLICATE KEY UPDATE
if the
CLIENT_FOUND_ROWS
flag was set.
(Bug#28505)
A query that grouped by the result of an expression returned a different result when the expression was assigned to a user variable. (Bug#28494)
Subselects returning LONG
values in MySQL
versions later than 5.0.24a returned LONGLONG
prior to this. The previous behavior was restored.
(Bug#28492)
This regression was introduced by Bug#19714.
Forcing the use of an index on a
SELECT
query when the index had
been disabled would raise an error without running the query.
The query now executes, with a warning generated noting that the
use of a disabled index has been ignored.
(Bug#28476)
The query SELECT '2007-01-01' + INTERVAL
caused
mysqld to fail.
(Bug#28450)column_name
DAY FROM
table_name
A server crash could happen under rare conditions such that a
temporary table outgrew heap memory reserved for it and the
remaining disk space was not big enough to store the table as a
MyISAM
table.
(Bug#28449)
mysql_upgrade failed if certain SQL modes were set. Now it sets the mode itself to avoid this problem. (Bug#28401)
A query with a NOT IN
subquery predicate
could cause a crash when the left operand of the predicate
evaluated to NULL
.
(Bug#28375)
The test case for mysqldump failed with
bin-log
disabled.
(Bug#28372)
Attempting to LOAD_FILE
from an empty floppy
drive under Windows, caused the server to hang. For example, if
you opened a connection to the server and then issued the
command SELECT LOAD_FILE('a:test');, with no
floppy in the drive, the server was inaccessible until the modal
pop-up dialog box was dismissed.
(Bug#28366)
A buffer overflow could occur when using
DECIMAL
columns on Windows
operating systems.
(Bug#28361)
libmysql.dll
could not be dynamically loaded
on Windows.
(Bug#28358)
Grouping queries with correlated subqueries in
WHERE
conditions could produce incorrect
results.
(Bug#28337)
mysqltest used a too-large stack size on PPC/Debian Linux, causing thread-creation failure for tests that use many threads. (Bug#28333)
EXPLAIN
for a query on an empty
table immediately after its creation could result in a server
crash.
(Bug#28272)
The IS_UPDATABLE
column in the
INFORMATION_SCHEMA.VIEWS
table was
not always set correctly.
(Bug#28266)
Comparing a DATETIME
column value
with a user variable yielded incorrect results.
(Bug#28261)
For CAST()
of a
NULL
value with type
DECIMAL
, the return value was
incorrectly initialized, producing a runtime error for binaries
built using Visual C++ 2005.
(Bug#28250)
Portability problems caused by use of isinf()
were corrected.
(Bug#28240)
When dumping procedures, mysqldump
--compact
generated
output that restored the session variable
sql_mode
without first
capturing it. When dumping routines, mysqldump
--compact
neither
set nor retrieved the value of
sql_mode
.
(Bug#28223)
Comparison of the string value of a date showed as unequal to
CURTIME()
. Similar behavior was
exhibited for DATETIME
values.
(Bug#28208)
For InnoDB
, in some rare cases the optimizer
preferred a more expensive
ref
access to a less
expensive range access.
(Bug#28189)
A performance degradation was observed for outer join queries to which a not-exists optimization was applied. (Bug#28188)
SELECT * INTO OUTFILE ... FROM
INFORMATION_SCHEMA.SCHEMATA
failed with an
Access denied error, even for a user who
had the FILE
privilege.
(Bug#28181)
The Bytes_received
and
Bytes_sent
status variables
could hold only 32-bit values (not 64-bit values) on some
platforms.
(Bug#28149)
Comparisons of DATE
or
DATETIME
values for the
IN()
function could yield
incorrect results.
(Bug#28133)
Storing a large number into a
FLOAT
or
DOUBLE
column with a fixed length
could result in incorrect truncation of the number if the
column's length was greater than 31.
(Bug#28121)
The server could hang for INSERT IGNORE ... ON
DUPLICATE KEY UPDATE
if an update failed.
(Bug#28000)
DECIMAL
values beginning with
nine 9
digits could be incorrectly rounded.
(Bug#27984)
For INSERT
... ON DUPLICATE KEY UPDATE
statements that affected
many rows, updates could be applied to the wrong rows.
(Bug#27954)
Early NULL
-filtering optimization did not
work for eq_ref
table access.
(Bug#27939)
The second execution of a prepared statement from a
UNION
query with ORDER
BY RAND()
caused the server to crash. This problem
could also occur when invoking a stored procedure containing
such a query.
(Bug#27937)
For attempts to open a nonexistent table, the server should
report ER_NO_SUCH_TABLE
but
sometimes reported
ER_TABLE_NOT_LOCKED
.
(Bug#27907)
A stored program that uses a variable name containing multibyte characters could fail to execute. (Bug#27876)
Nongrouped columns were allowed by *
in
ONLY_FULL_GROUP_BY
SQL mode.
(Bug#27874)
ON
conditions from JOIN
expressions were ignored when checking the CHECK
OPTION
clause while updating a multiple-table view
that included such a clause.
(Bug#27827)
Debug builds on Windows generated false alarms about uninitialized variables with some Visual Studio runtime libraries. (Bug#27811)
Certain queries that used uncorrelated scalar subqueries caused
EXPLAIN
to crash.
(Bug#27807)
Changes to some system variables should invalidate statements in the query cache, but invalidation did not happen. (Bug#27792)
Performing a UNION
on two views
that had ORDER BY
clauses resulted in an
Unknown column
error.
(Bug#27786)
mysql_install_db is supposed to detect existing system tables and create only those that do not exist. Instead, it was exiting with an error if tables already existed. (Bug#27783)
On some systems, udf_example.c
returned an
incorrect result length. Also on some systems,
mysql-test-run.pl could not find the shared
object built from udf_example.c
.
(Bug#27741)
mysqld did not check the length of option values and could crash with a buffer overflow for long values. (Bug#27715)
Comparisons using row constructors could fail for rows
containing NULL
values.
(Bug#27704)
LOAD DATA
did not use
CURRENT_TIMESTAMP
as the default value for a
TIMESTAMP
column for which no
value was provided.
(Bug#27670)
On Linux, the server could not create temporary tables if
lower_case_table_names
was set
to 1 and the value of tmpdir
was a directory name containing any uppercase letters.
(Bug#27653)
For InnoDB
tables, a multiple-row
INSERT
of the form
INSERT INTO t (id...) VALUES (NULL...) ON DUPLICATE KEY
UPDATE id=VALUES(id)
, where id
is
an AUTO_INCREMENT
column, could cause
ERROR 1062 (23000): Duplicate entry...
errors
or lost rows.
(Bug#27650)
HASH
indexes on
VARCHAR
columns with binary
collations did not ignore trailing spaces from strings before
comparisons. This could result in duplicate records being
successfully inserted into a MEMORY
table
with unique key constraints. A consequence was that internal
MEMORY
tables used for GROUP
BY
calculation contained duplicate rows that resulted
in duplicate-key errors when converting those temporary tables
to MyISAM
, and that error was incorrectly
reported as a table is full
error.
(Bug#27643)
The XML output representing an empty result was an empty string
rather than an empty <resultset/>
element.
(Bug#27608)
An error occurred trying to connect to mysqld-debug.exe. (Bug#27597)
Comparison of a DATE
with a
DATETIME
did not treat the
DATE
as having a time part of
00:00:00
.
(Bug#27590)
See also Bug#32198.
Selecting MIN()
on an indexed
column that contained only NULL
values caused
NULL
to be returned for other result columns.
(Bug#27573)
If a stored function or trigger was killed, it aborted but no error was thrown, allowing the calling statement to continue without noticing the problem. This could lead to incorrect results. (Bug#27563)
The fix for Bug#17212 provided correct sort order for misordered output of certain queries, but caused significant overall query performance degradation. (Results were correct (good), but returned much more slowly (bad).) The fix also affected performance of queries for which results were correct. The performance degradation has been addressed. (Bug#27531)
The CRC32()
function returns an
unsigned integer, but the metadata was signed, which could cause
certain queries to return incorrect results. (For example,
queries that selected a CRC32()
value and used that value in the GROUP BY
clause.)
(Bug#27530)
An interaction between SHOW TABLE
STATUS
and other concurrent statements that modify the
table could result in a divide-by-zero error and a server crash.
(Bug#27516)
When ALTER TABLE
was used to add
a new DATE
column with no
explicit default value, '0000-00-00'
was used
as the default even if the SQL mode included the
NO_ZERO_DATE
mode to prohibit
that value. A similar problem occurred for
DATETIME
columns.
(Bug#27507)
A race condition between DROP
TABLE
and SHOW TABLE
STATUS
could cause the latter to display incorrect
information.
(Bug#27499)
Using a TEXT
local variable in a
stored routine in an expression such as SET
produced
an incorrect result.
(Bug#27415)var
=
SUBSTRING(var
, 3)
Nested aggregate functions could be improperly evaluated. (Bug#27363)
A stored function invocation in the WHERE
clause was treated as a constant.
(Bug#27354)
Failure to allocate memory associated with
transaction_prealloc_size
could
cause a server crash.
(Bug#27322)
mysqldump crashed if it got no data from
SHOW CREATE PROCEDURE
(for
example, when trying to dump a routine defined by a different
user and for which the current user had no privileges). Now it
prints a comment to indicate the problem. It also returns an
error, or continues if the --force
option is
given.
(Bug#27293)
The error message for error number 137
did
not report which database/table combination reported the
problem.
(Bug#27173)
mysqlbinlog produced different output with
the -R
option than without it.
(Bug#27171)
A large filesort could result in a division by zero error and a server crash. (Bug#27119)
Times displayed by SHOW PROFILE
were incorrectly associated with the profile entry one later
than the correct one.
(Bug#27060)
Flow control optimization in stored routines could cause exception handlers to never return or execute incorrect logic. (Bug#26977)
SHOW PROFILE
hung if executed
before enabling the @@profiling
session
variable.
(Bug#26938)
mysqldump would not dump a view for which the
DEFINER
no longer exists.
(Bug#26817)
Creating a temporary table with InnoDB
when
using the one-file-per-table setting, and when the host file
system for temporary tables was tmpfs
, would
cause an assertion within mysqld
. This was
due to the use of O_DIRECT
when opening the
temporary table file.
(Bug#26662)
mysql_upgrade did not detect failure of external commands that it runs. (Bug#26639)
Some test suite files were missing from some MySQL-test packages. (Bug#26609)
Statements within triggers ignored the value of the
low_priority_updates
system
variable.
(Bug#26162)
See also Bug#29963.
Index hints (USE INDEX
, IGNORE
INDEX
, FORCE INDEX
) cannot be used
with FULLTEXT
indexes, but were not being
ignored.
(Bug#25951)
If CREATE TABLE t1 LIKE t2
failed due to a
full disk, an empty t2.frm
file could be
created but not removed. This file then caused subsequent
attempts to create a table named t2
to fail.
This is easily corrected at the file system level by removing
the t2.frm
file manually, but now the
server removes the file if the create operation does not
complete successfully.
(Bug#25761)
Running CHECK TABLE
concurrently
with a SELECT
,
INSERT
or other statement on
Windows could corrupt a MyISAM table.
(Bug#25712)
On Windows, connection handlers did not properly decrement the server's thread count when exiting. (Bug#25621)
mysql_upgrade did not pass a password to mysqlcheck if one was given. (Bug#25452)
On Windows, mysql_upgrade was sensitive to lettercase of the names of some required components. (Bug#25405)
For storage engines that allow the current auto-increment value
to be set, using ALTER TABLE ... ENGINE
to
convert a table from one such storage engine to another caused
loss of the current value. (For storage engines that do not
support setting the value, it cannot be retained anyway when
changing the storage engine.)
(Bug#25262)
Due to a race condition, executing
FLUSH
PRIVILEGES
in one thread could cause brief table
unavailability in other threads.
(Bug#24988)
Several math functions produced incorrect results for large
unsigned values. ROUND()
produced
incorrect results or a crash for a large number-of-decimals
argument.
(Bug#24912)
The result set of a query that used WITH
ROLLUP
and DISTINCT
could lack some
rollup rows (rows with NULL
values for
grouping attributes) if the GROUP BY
list
contained constant expressions.
(Bug#24856)
For queries that used ORDER BY
with
InnoDB
tables, if the optimizer chose an
index for accessing the table but found a covering index that
enabled the ORDER BY
to be skipped, no
results were returned.
(Bug#24778)
Concurrent execution of
CREATE TABLE ...
SELECT
and other statements involving the target table
suffered from various race conditions, some of which might have
led to deadlocks.
(Bug#24738)
On some Linux distributions where LinuxThreads and NPTL
glibc
versions both are available, statically
built binaries can crash because the linker defaults to
LinuxThreads when linking statically, but calls to external
libraries (such as libnss
) are resolved to
NPTL versions. This cannot be worked around in the code, so
instead if a crash occurs on such a binary/OS combination, print
an error message that provides advice about how to fix the
problem.
(Bug#24611)
An attempt to execute
CREATE TABLE ...
SELECT
when a temporary table with the same name
already existed led to the insertion of data into the temporary
table and creation of an empty nontemporary table.
(Bug#24508)
The MERGE
storage engine could return
incorrect results when several index values that compare
equality were present in an index (for example,
'gross'
and 'gross '
,
which are considered equal but have different lengths).
(Bug#24342)
Some upgrade problems are detected and better error messages suggesting that mysql_upgrade be run are produced. (Bug#24248)
Some views could not be created even when the user had the requisite privileges. (Bug#24040)
Using CAST()
to convert
DATETIME
values to numeric values
did not work.
(Bug#23656)
The AUTO_INCREMENT
value would not be
correctly reported for InnoDB
tables when
using SHOW CREATE TABLE
statement
or mysqldump command.
(Bug#23313)
Implicit conversion of 9912101
to
DATE
did not match
CAST(9912101 AS DATE)
.
(Bug#23093)
Conversion errors could occur when constructing the condition
for an IN
predicate. The predicate was
treated as if the affected column contains
NULL
, but if the IN
predicate is inside NOT
, incorrect results
could be returned.
(Bug#22855)
SELECT COUNT(*)
from a table containing a
DATETIME NOT NULL
column could produce
spurious warnings with the
NO_ZERO_DATE
SQL mode enabled.
(Bug#22824)
Using SET
GLOBAL
to change the
lc_time_names
system variable
had no effect on new connections.
(Bug#22648)
A multiple-table UPDATE
could
return an incorrect rows-matched value if, during insertion of
rows into a temporary table, the table had to be converted from
a MEMORY
table to a MyISAM
table.
(Bug#22364)
yaSSL crashed on pre-Pentium Intel CPUs. (Bug#21765)
Linux binaries were unable to dump core after executing a
setuid()
call.
(Bug#21723)
A slave that used
--master-ssl-cipher
could not connect to the master.
(Bug#21611)
Quoted labels in stored routines were mishandled, rendering the routines unusable. (Bug#21513)
Stack overflow caused server crashes. (Bug#21476)
CURDATE()
is less than
NOW()
, either when comparing
CURDATE()
directly
(CURDATE() < NOW()
is true) or when
casting CURDATE()
to
DATE
(CAST(CURDATE() AS
DATE) < NOW()
is true). However, storing
CURDATE()
in a
DATE
column and comparing
incorrectly yielded false. This is fixed by
comparing a col_name
<
NOW()DATE
column as
DATETIME
for comparisons to a
DATETIME
constant.
(Bug#21103)
CREATE TABLE IF NOT EXISTS ... SELECT
caused
a server crash if the target table already existed and had a
BEFORE INSERT
trigger.
(Bug#20903)
Deadlock occurred for attempts to execute CREATE TABLE
IF NOT EXISTS ... SELECT
when
LOCK TABLES
had been used to
acquire a read lock on the target table.
(Bug#20662, Bug#15522)
Changing a utf8
column in an
InnoDB
table to a shorter length did not
shorten the data values.
(Bug#20095)
For dates with 4-digit year parts less than 200, an incorrect
implicit conversion to add a century was applied for date
arithmetic performed with
DATE_ADD()
,
DATE_SUB()
, +
INTERVAL
, and - INTERVAL
. (For
example, DATE_ADD('0050-01-01 00:00:00',
INTERVAL 0 SECOND)
became '2050-01-01
00:00:00'
.)
(Bug#18997)
Granting access privileges to an individual table where the database or table name contained an underscore would fail. (Bug#18660)
The -lmtmalloc
library was removed from the
output of mysql_config on Solaris, as it
caused problems when building DBD::mysql
(and
possibly other applications) on that platform that tried to use
dlopen() to access the client library.
(Bug#18322)
The check-cpu script failed to detect AMD64 Turion processors correctly. (Bug#17707)
Trying to shut down the server following a failed
LOAD DATA
INFILE
caused mysqld to crash.
(Bug#17233)
The omission of leading zeros in dates could lead to erroneous results when these were compared with the output of certain date and time functions. (Bug#16377)
INSERT...ON DUPLICATE KEY UPDATE
could cause
Error 1032: Can't find record in ...
for
inserts into an InnoDB
table unique index
using key column prefixes with an underlying
utf8
string column.
(Bug#13191)
Having the EXECUTE
privilege for
a routine in a database should make it possible to
USE
that database, but the server
returned an error instead. This has been corrected. As a result
of the change, SHOW TABLES
for a
database in which you have only the
EXECUTE
privilege returns an
empty set rather than an error.
(Bug#9504)
User Comments
Add your own comment.