Tabla de contenidos
This appendix lists the changes in the MySQL source code for version 5.1.0 and later releases. For information about changes in previous versions of the MySQL database software, see the Manual de referencia de MySQL 4.1, which provides coverage of the 3.22, 3.23, 4.0, and 4.1 series of releases.
We are working actively on MySQL 5.0 and 5.1, and provide only critical bugfixes for MySQL 4.1, 4.0, and MySQL 3.23. We update this section as we add new features, so that everybody can follow the development.
Note that we tend to update the manual at the same time we make changes to MySQL. If you find a recent version of MySQL listed here that you can't find on our download page (http://dev.mysql.com/downloads/), it means that the version has not yet been released.
The date mentioned with a release version is the date of the last BitKeeper ChangeSet on which the release was based, not the date when the packages were made available. The binaries are usually made available a few days after the date of the tagged ChangeSet, because building and testing all packages takes some time.
The following changelog shows what has been done in the 5.0 tree:
Basic support for read-only server side cursors.
Basic support for (updatable) views. See, for example,
Sección 21.2, “Sintaxis de CREATE VIEW”.
Basic support for stored procedures (SQL:2003 style). See Capítulo 19, Procedimientos almacenados y funciones.
Initial support for rudimentary triggers.
Added SELECT INTO
, which can be
of mixed (that is, global and local) types. See
Sección 19.2.9.3, “La sentencia list_of_varsSELECT ... INTO”.
Removed the update log. It is fully replaced by the binary log.
If the MySQL server is started with
--log-update, it is translated to
--log-bin (or ignored if the server is
explicitly started with --log-bin), and a
warning message is written to the error log. Setting
SQL_LOG_UPDATE silently sets
SQL_LOG_BIN instead (or do nothing if the
server is explicitly started with --log-bin).
Support for the ISAM storage engine has been
removed. If you have ISAM tables, you should
convert them before upgrading. See
Sección 2.10.1, “Aumentar la versión de 4.1 a 5.0”.
Support for RAID options in
MyISAM tables has been removed. If you have
tables that use these options, you should convert them before
upgrading. See Sección 2.10.1, “Aumentar la versión de 4.1 a 5.0”.
User variable names are now case insensitive: If you do
SET @a=10; then SELECT @A;
now returns 10. Case sensitivity of a
variable's value depends on the collation of the value.
Strict mode, which in essence means that you get an error instead of a warning when inserting an incorrect value into a column. See Sección 5.3.2, “El modo SQL del servidor”.
VARCHAR and VARBINARY
columns remember end space. A VARCHAR() or
VARBINARY column can contain up to 65,535
characters or bytes, respectively.
MEMORY (HEAP) tables can
have VARCHAR() columns.
When using a constant string or a function that generate a
string result in CREATE ... SELECT, MySQL
creates the result field based on the max_length of the
string/expression:
| max_length | Column type |
| = 0 | CHAR(0) |
| < 512 | VARCHAR(max_length) |
| >= 512 | TEXT |
For a full list of changes, please refer to the changelog sections for each individual 5.0.x release.
Functionality added or changed:
mysqldump now dumps triggers for each
dumped table. This can be suppressed with the
--skip-triggers option. (Bug#10431)
Added new ER_STACK_OVERRUN_NEED_MORE error
message to indicate that, while the stack is not completly
full, more stack space is required. (Bug#11213)
NDB: Improved handling of the configuration
variables NoOfPagesToDiskDuringRestartACC,
NoOfPagesToDiskAfterRestartACC,
NoOfPagesToDiskDuringRestartTUP, and
NoOfPagesToDiskAfterRestartTUP should
result in noticeably faster startup times for MySQL Cluster.
(Bug#12149)
Added support of where clause for queries with FROM
DUAL. (Bug#11745)
Bugs fixed:
Multiple SELECT SQL_CACHE queries in a
stored procedure causes error and client hang. (Bug#6897)
Added checks to prevent error when allocating memory when there was insufficient memory available. (Bug#7003)
Character data truncated when GBK characters
0xA3A0 and 0xA1 are
present. (Bug#11987)
Comparisons like SELECT "A\\" LIKE "A\\";
fail when using SET NAMES utf8;. (Bug#11754)
Corrected inaccurate error message when inserting out of range
data under TRADITIONAL SQL mode. (Bug#11546)
When used in a SELECT query against a view,
the GROUP_CONCAT() function returned only a
single row. (Bug#11412)
Calling the C API function
mysql_stmt_fetch() after all rows of a
result set were exhausted would return an error instead of
MYSQL_NO_DATA. (Bug#11037)
Information about a trigger was not displayed in the output of
SELECT ... FROM INFORMATION_SCHEMA.TRIGGERS
when the selected database was
INFORMATION_SCHEMA, prior to the trigger's
first invocation. (Bug#12127)
Issuing successive FLUSH TABLES WITH READ
LOCK would cause the mysql client
to hang. (Bug#11934)
In stored procedures, a cursor that fetched an empty string
into a variable would set the variable to
NULL instead. (Bug#8692)
A trigger dependent on a feature of one
SQL_MODE setting would cause an error when
invoked after the SQL_MODE was changed.
(Bug#5891)
A delayed insert that would duplicate an existing record crashed the server instead. (Bug#12226)
ALTER TABLE when SQL_MODE =
'TRADITIONAL' gave rise to an invalid error message.
(Bug#11964)
On AMD64, attempting to repair a MyISAM
table with a full-text index would crash the server. (Bug#11684)
The MySQL Cluster backup log was invalid where the number of Cluster nodes was not equal to a power of 2. (Bug#11675)
GROUP_CONCAT() sometimes returned a result
with a different collation that that of its arguments. (Bug#10201)
The LPAD() and RPAD()
functions returned the wrong length to
mysql_fetch_fields(). (Bug#11311)
A UNIQUE VARCHAR column would be
mis-identified as MUL in table
descriptions. (Bug#11227)
Incorrect error message displayed if user attempted to create
a table in a non-existing database using CREATE
syntax. (Bug#10407)
database_name.table_name
InnoDB: Do not flush after each write, not
even before setting up the doublewrite buffer. Flushing can be
extremely slow on some systems. (Bug#12125)
InnoDB: True VARCHAR:
Return NULL columns in the format expected
by MySQL. (Bug#12186)
Functionality added or changed:
Security improvement: Applied a patch that addresses a
zlib data vulnerability that could result
in a buffer overflow and code execution. (CVE-2005-2096) (Bug#11844)
The viewing of triggers and trigger metadata has been enhanced as follows:
An extension to the SHOW command has
been added: SHOW TRIGGERS can be used
to view a listing of triggers. See
Sección 13.5.4.20, “Sintaxis de SHOW TRIGGERS” for details.
The INFORMATION_SCHEMA database now
includes a TRIGGERS table. See
Sección 22.1.16, “La tabla INFORMATION_SCHEMA TRIGGERS” for details. (Bug#9586)
Triggers can now reference tables by name. See
Sección 20.1, “Sintaxis de CREATE TRIGGER” for more information.
The output of perror --help now displays
the --ndb option. (Bug#11999)
On Windows, the search path used by MySQL applications for
my.ini now includes
..\my.ini (that is, the application's
parent directory, and hence, the installation directory). (Bug#10419)
Added mysql_get_character_set_info() C API
function for obtaining information about the default character
set of the current connection.
The bundled version of the readline library
was upgraded to version 5.0.
It is no longer necessary to issue an explicit LOCK
TABLES for any tables accessed by a trigger prior to
executing any statements that might invoke the trigger. (Bug#9581, Bug#8406)
MySQL Cluster: A new -p
option is available for use with the
ndb_mgmd client. When called with this
option, ndb_mgmd prints all configuration
data to stdout, then exits.
The namespace for triggers has changed. Previously, trigger
names had to be unique per table. Now they must be unique
within the schema (database). An implication of this change is
that DROP TRIGGER syntax now uses a schema
name instead of a table name (schema name is optional and, if
omitted, the current schema will be used).
Note: When upgrading from a previous
version of MySQL 5 to MySQL 5.0.10 or newer, you must drop all
triggers before upgrading and re-create them after or
DROP TRIGGER will not work after the
upgrade. (Bug#5892)
Bugs fixed:
NDB: Attempting to create or drop tables
during a backup would cause the cluster to shut down. (Bug#11942)
When attempting to drop a table with a broken unique index,
NDB failed to drop the table and
erroneously report that the table was unknown. (Bug#11355)
SELECT ... NOT IN() gave unexpected results
when only static value present between the
(). (Bug#11885)
Fixed compile error when using GCC4 on AMD64. (Bug#12040)
NDB ignored the Hostname
option in the NDBD DEFAULT section of the
Cluster configuration file. (Bug#12028)
SHOW PROCEDURE/FUNCTION STATUS didn't work
for users with limited access. (Bug#11577)
MySQL server would crash is a fetch was performed after a
ROLLBACK when cursors were involved. (Bug#10760)
The temporary tables created by an ALTER
TABLE on a cluster table were visible to all MySQL
servers. (Bug#12055)
NDB_MGMD was leaking file descriptors. (Bug#11898)
IP addresses not shown in ndb_mgm SHOW
command on second ndb_mgmd (or on ndb_mgmd restart). (Bug#11596)
Functions that evaluate to constants (such as
NOW() and CURRENT_USER()
were being evaluated in the definition of a
VIEW rather than included verbatim. (Bug#4663)
Execution of SHOW TABLES failed to
increment the Com_show_tables status
variable. (Bug#11685)
For execution of a stored procedure that refers to a view, changes to the view definition were not seen. The procedure continued to see the old contents of the view. (Bug#6120)
For prepared statements, the SQL parser did not disallow
‘?’ parameter markers
immediately adjacent to other tokens, which could result in
malformed statements in the binary log. (For example,
SELECT * FROM t WHERE? = 1 could become
SELECT * FROM t WHERE0 = 1.) (Bug#11299)
When two threads compete for the same table, a deadlock could
occur if one thread has also a lock on another table through
LOCK TABLES and the thread is attempting to
remove the table in some manner and the other thread want
locks on both tables. (Bug#10600)
Aliasing the column names in a VIEW did not
work when executing a SELECT query on the
VIEW. (Bug#11399)
Performing an ORDER BY on a
SELECT from a VIEW
produced unexpected results when VIEW and
underlying table had the same column name on different
columns. Bug#11709)
The C API function mysql_statement_reset()
did not clear error information. (Bug#11183)
When used within a subquery, SUBSTRING()
returned an empty string. (Bug#10269)
Multiple-table UPDATE queries using
CONVERT_TZ() would fail with an error. (Bug#9979)
mysql_fetch_fields() returned incorrect
length information for MEDIUM and
LONG TEXT and
BLOB columns. (Bug#9735)
mysqlbinlog was failing the test suite on
Windows due to BOOL being incorrectly cast
to INT. (Bug#11567)
NDBCLuster: Server left core files
following shutdown if data nodes had failed. (Bug#11516)
Creating a trigger in one database that references a table in another database was being allowed without generating errors. (Bug#8751)
Duplicate trigger names were allowed within a single schema. (Bug#6182)
Server did not accept some fully-qualified trigger names. (Bug#8758)
The traditional SQL mode accepted invalid
dates if the date value provided was the result of an implicit
type conversion. (Bug#5906)
The MySQL server had issues with certain combinations of basedir and datadir. (Bug#7249)
INFORMATION_SCHEMA.COLUMNS had some
inaccurate values for some data types. (Bug#11057)
LIKE pattern matching using prefix index didn't return correct result. (Bug#11650)
For several character sets, MySQL incorrectly converted the
character code for the division sign to the
eucjpms character set. (Bug#11717)
When invoked within a view, SUBTIME()
returned incorrect values. (Bug#11760)
SHOW BINARY LOGS displayed a file size of 0
for all log files but the current one if the files were not
located in the data directory. (Bug#12004)
Server-side prepared statements failed for columns with a
character set of ucs2. (Bug#9442)
References to system variables in an SQL statement prepared
with PREPARE were evaluated during
EXECUTE to their values at prepare time,
not to their values at execution time. (Bug#9359)
For server shutdown on Windows, error messages of the form
Forcing close of thread were being
written to the error log. Now connections are closed more
gracefully without generating error messages. (Bug#7403)
n
user: 'name'
Increased the version number of the
libmysqlclient shared library from 14 to 15
because it is binary incompatible with the MySQL 4.1 client
library. (Bug#11893)
A recent optimizer change caused DELETE …
WHERE … NOT LIKE and DELETE …
WHERE … NOT BETWEEN to not properly identify
the rows to be deleted. (Bug#11853)
Within a stored procedure that selects from a table, invoking another procedure that requires a write lock for the table caused that procedure to fail with a message that the table was read-locked. (Bug#9565)
Within a stored procedure, selecting from a table through a view caused subsequent updates to the table to fail with a message that the table was read-locked. (Bug#9597)
For a stored procedure defined with SQL SECURITY
DEFINER characteristic,
CURRENT_USER() incorrectly reported the use
invoking the procedure, not the user who defined it. (Bug#7291)
Creating a table with a SET or
ENUM column with the DEFAULT
0 clause caused a server crash if the table's
character set was utf8. (Bug#11819)
With strict SQL mode enabled, ALTER TABLE
reported spurious “Invalid default value”
messages for columns that had no DEFAULT
clause. (Bug#9881)
In SQL prepared statements, comparisons could fail for values
not equally space-padded. For example, SELECT 'a' =
'a '; returns 1, but PREPARE s FROM
'SELECT ?=?'; SET @a = 'a', @b = 'a '; PREPARE s FROM
'SELECT ?=?'; EXECUTE s USING @a, @b; incorrectly
returned 0. (Bug#9379)
Labels in stored routines did not work if the character set
was not latin1. (Bug#7088)
Invoking the DES_ENCRYPT() function could
cause a server crash if the server was started without the
--des-key-file option. (Bug#11643)
The server crashed upon execution of a statement that used a
stored function indirectly (via a view) if the function was
not yet in the connection-specific stored routine cache and
the statement would update a
Handler_
status variable. This fix allows the use of stored routines
under xxxLOCK TABLES without explicitly
locking the mysql.lock table. However, you
cannot use mysql.proc in statements that
will combine locking of it with modifications for other
tables. (Bug#11554)
The server crashed when dropping a trigger that invoked a stored procedure, if the procedure was not yet in the connection-specific stored routine cache. (Bug#11889)
Selecting the result of an aggregate function for an
ENUM or SET column
within a subquery could result in a server crash. (Bug#11821)
Incorrect column values could be retrieved from views defined
using statements of the form SELECT * FROM
. (Bug#11771)
tbl_name
The mysql.proc table was not being created
properly with the proper utf8 character set
and collation, causing server crashes for stored procedure
operations if the server was using a multi-byte character set.
To take advantage of the bug fix,
mysql_fix_privileges_tables should be run
to correct the structure of the mysql.proc
table. (Bug#11365)
Execution of a prepared statement that invoked a non-existent or dropped stored routine would crash the server. (Bug#11834)
Executing a statement that invoked a trigger would cause
problems unless a LOCK TABLES was first
issued for any tables accessed by the trigger.
Note: The exact nature of the
problem depended upon the MySQL 5.0 release being used: prior
to 5.0.3, this resulted in a crash; from 5.0.3 to 5.0.7, MySQL
would issue a warning; in 5.0.9, the server would issue an
error. (Bug#8406)
The same issue caused LOCK TABLES to fail
following UNLOCK TABLES if triggers were
involved. (Bug#9581)
In a shared Windows environment, MySQL could not find its
configuration file unless the file was in the
C:\ directory. (Bug#5354)
Functionality added or changed:
An attempt to create a TIMESTAMP column
with a display width (for example,
TIMESTAMP(6)) now results in a warning.
Display widths have not been supported for
TIMESTAMP since MySQL 4.1. (Bug#10466)
InnoDB: When creating or extending an
InnoDB data file, at most one megabyte at a time is allocated
for initializing the file. Previously, InnoDB allocated and
initialized 1 or 8 megabytes of memory, even if only a few
16-kilobyte pages were to be written. This improves the
performance of CREATE TABLE in
innodb_file_per_table mode.
InnoDB: Various optimizations. Removed
unreachable debug code from non-debug builds. Added hints for
the branch predictor in gcc. Made
assertions occupy less space.
InnoDB: Make
innodb_thread_concurrency=20 by default.
Bypass the concurrency checking if the setting is greater than
or equal to 20.
InnoDB: Make CHECK TABLE
killable. (Bug#9730)
Recursion in stored routines is now disabled because it was crashing the server. We plan to modify stored routines to allow this to operate safely in a future release. (Bug#11394)
The handling of BIT columns has been
improved, and should now be much more reliable in a number of
cases. (Bug#10617, Bug#11091, Bug#11572)
Bugs fixed:
SHOW CREATE VIEW did not take the
ANSI MODE into account when quoting
identifiers. (Bug#6903)
The mysql_config script did not handle
symbolic linking properly. (Bug#10986)
Incorrect results when using GROUP BY ... WITH
ROLLUP on a VIEW. (Bug#11639)
Instances of the VAR_SAMP() function in
view definitions were converted to
VARIANCE(). This is incorrect because
VARIANCE() is the same as
VAR_POP(), not
VAR_SAMP(). (Bug#10651)
mysqldump failed when reloading a view if the view was defined in terms of a different view that had not yet been reloaded. mysqldump now creates a dummy table to handle this case. (Bug#10927)
mysqldump could crash for illegal or nonexistent table names. (Bug#9358)
The --no-data option for
mysqldump was being ignored if table names
were given after the database name. (Bug#9558)
The --master-data option for
mysqldump resulted in no error if the
binary log was not enabled. Now an error occurs unless the
--force option is given. (Bug#11678)
DES_ENCRYPT() and
DES_DECRYPT() require SSL support to be
enabled, but were not checking for it. Checking for incorrect
arguments or resource exhaustion was also improved for these
functions. (Bug#10589)
When used in joins, SUBSTRING() failed to
truncate to zero any string values that could not be converted
to numbers. (Bug#10124)
mysqldump --xml did not format
NULL column values correctly. (Bug#9657)
There was a compression algorithm issue with
myisampack for very large datasets (where
the total size of of all records in a single column was on the
order of 3 GB or more) on 64-bit platforms. (A fix for other
platforms was made in MySQL 5.0.6.) (Bug#8321)
Temporary tables were created in the data directory instead of
tmpdir. (Bug#11440)
MySQL would not compile correctly on QNX due to missing
rint() function. (Bug#11544)
A SELECT DISTINCT
would work
correctly with a col_nameMyISAM table only when
there was an index on col_name.
(Bug#11484)
The server would lose table-level CREATE
VIEW and SHOW VIEW privileges
following a FLUSH PRIVILEGES or server
restart. (Bug#9795)
In strict mode, an INSERT into a view that
did not include a value for a NOT NULL
column but that did include a WHERE test on
the same column would succeed, This happened even though the
INSERT should have been prevented due to
the failure to supply a value for the NOT
NULL column. (Bug#6443)
Running a CHECK TABLES on multiple views
crashed the server. (Bug#11337)
When a table had a primary key containing a
BLOB column, creation of another index
failed with the error BLOB/TEXT column used in key
specification without keylength, even when the new
index did not contain a BLOB column. (Bug#11657)
NDB Cluster: When trying to open a table that could not be discovered or unpacked, cluster would return error codes which the MySQL server falsely interpreted as operating system errors. (Bug#103651)
Manually inserting a row with host='' into
mysql.tables_priv and performing a
FLUSH PRIVILEGES would cause the server to
crash. (Bug#11330)
A cursor using a query with a filter on a
DATE or DATETIME column
would cause the server to crash server after the data was
fetched. (Bug#11172)
Closing a cursor that was already closed would cause MySQL to hang. (Bug#9814)
Using CONCAT_WS on a column set
NOT NULL caused incorrect results when used
in a LEFT JOIN. (Bug#11469)
Signed BIGINT would not accept
-9223372036854775808 as a
DEFAULT value. (Bug#11215)
Views did not use indexes on all appropriate queries. (Bug#10031)
For MEMORY tables, it was possible for for
updates to be performed using outdated key statistics when the
updates involved only very small changes in a very few rows.
This resulted in the random failures of queries such as
UPDATE t SET col = col + 1 WHERE col_key =
2; where the same query with no
WHERE clause would succeed. (Bug#10178)
Optimizer performed range check when comparing unsigned integers to negative constants, could cause errors. (Bug#11185)
Wrong comparison method used in VIEW when
relaxed date syntax used (i.e. 2005.06.10).
(Bug#11325)
The ENCRYPT() and
SUBSTRING_INDEX() functions would cause
errors when used with a VIEW. (Bug#7024)
Clients would hang following some errors with stored procedures. (Bug#9503)
Combining cursors and subselects could cause server crash or memory leaks. (Bug#10736)
If a prepared statement cursor is opened but not completely fetched, attempting to open a cursor for a second prepared statement will fail. (Bug#10794)
Note: Starting with version 5.0.8, changes for MySQL Cluster can be found in the combined Change History.
Functionality added or changed:
MEMORY tables now support indexes of up to
500 bytes. See Sección 14.3, “El motor de almacenamiento MEMORY (HEAP)”. (Bug#10566)
New SQL_MODE -
NO_ENGINE_SUBSTITUTION Prevents automatic
substitution of storage engine when the requested storage
engine is disabled or not compiled in. (Bug#6877)
The statements CREATE TABLE,
TRUNCATE TABLE, DROP
DATABASE, and CREATE DATABASE
cause an implicit commit. (Bug#6883)
Expanded on information provided in general log and slow query log for prepared statements. (Bug#8367, Bug#9334)
Where a GROUP BY query uses a grouping
column from the query's SELECT clause,
MySQL now issues a warning. This is because the SQL standard
states that any grouping column must unambiguously reference a
column of the table resulting from the query's
FROM clause, and allowing columns from the
SELECT clause to be used as grouping
columns is a MySQL extension to the standard.
By way of example, consider the following table:
CREATE TABLE users ( userid INT NOT NULL PRIMARY KEY, username VARCHAR(25), usergroupid INT NOT NULL );
MySQL allows you to use the alias in this query:
SELECT usergroupid AS id, COUNT(userid) AS number_of_users FROM users GROUP BY id;
However, the SQL standard requires that the column name be used, as shown here:
SELECT usergroupid AS id, COUNT(userid) AS number_of_users FROM users GROUP BY usergroupid;
Queries such as the first of the two shown above will continue
to be supported in MySQL; however, beginning with MySQL 5.0.8,
using a column alias in this fashion will generate a warning.
Note that in the event of a collision between column names
and/or aliases used in joins, MySQL attempts to resolve the
conflict by giving preference to columns arising from tables
named in the query's FROM clause. (Bug#11211)
The granting or revocation of privileges on a stored routine
is no longer performed when running the server with
--skip-grant-tables even after the statement
SET @@global.automatic_sp_privileges=1; has
been executed. (Bug#9993)
Added support for B'10' syntax for bit
literal. (Bug#10650)
Bugs fixed:
Security fix: On Windows systems, a user with any of the following privileges
REFERENCES
CREATE TEMPORARY TABLES
GRANT OPTION
CREATE
SELECT
on *.* could crash
mysqld by issuing a USE
LPT1; or USE PRN; command. In
addition, any of the commands USE NUL;,
USE CON;, USE COM1;, or
USE AUX; would report success even though
the database was not in fact changed.
Note: Although this bug was
thought to be fixed previously, it was later discovered to be
present in the MySQL 5.0.7-beta release for Windows. (Bug#9148, CVE-2005-0799)
A CREATE TABLE
statement would crash the server when no
database was selected. (Bug#11028)
db_name.tbl_name
LIKE ...
SELECT DISTINCT queries or GROUP
BY queries without MIN() or
MAX() could return inconsistent results for
indexed columns. (Bug#11044)
The SHOW INSTANCE OPTIONS command in MySQL
Instance Manager displayed option values incorrectly for
options for which no value had been given. (Bug#11200)
An outer join with an empty derived table (a result from a subquery) returned no result. (Bug#11284)
An outer join with an ON condition that
evaluated to false could return an incorrect result. (Bug#11285)
mysqld_safe would sometimes fail to remove
the pid file for the old mysql process
after a crash. As a result, the server would fail to start due
to a false A mysqld process already
exists... error. (Bug#11122)
CAST( ... AS DECIMAL) didn't work for strings. (Bug#11283)
NULLIF() function could produce incorrect
results if first argument is NULL. (Bug#11142)
Setting @@SQL_MODE = NULL caused an
erroneous error message. (Bug#10732)
Converting a VARCHAR column having an index
to a different type (such as TINYTEXT) gave
rise to an incorrect error message. (Bug#10543)
Note that this bugfix induces a slight change in the behaviour
of indexes: If an index is defined to be the same length as a
field (or is left to default to that field's length), and the
length of the field is later changed, then the index will
adopt the new length of the field. Previously, the size of the
index did not change for some field types (such as
VARCHAR) when the field type was changed.
sql_data_access column of
routines table of
INFORMATION_SCHEMA was empty. (Bug#11055)
A CAST() value could not be included in a
VIEW. (Bug#11387)
Server crashed when using GROUP BY on the
result of a DIV operation on a
DATETIME value. (Bug#11385)
Possible NULL values in
BLOB columns could crash the server when a
BLOB was used in a GROUP
BY query. (Bug#11295)
Fixed 64 bit compiler warning for packet length in replication. (Bug#11064)
Multiple range accesses in a subquery cause server crash. (Bug#11487)
An issue with index merging could cause suboptimal index merge
plans to be chosen when searching by indexes created on
DATE columns. The same issue caused the
InnoDB storage engine to issue the warning using a
partial-field key prefix in search. (Bug#8441)
The mysqlhotcopy script was not parsing the
output of SHOW SLAVE STATUS correctly when
called with the --record_log_pos option. (Bug#7967)
SELECT * FROM
returned incorrect
results when called from a stored procedure, where
tabletable had a primary key. (Bug#10136)
When used in defining a view, the
TIME_FORMAT() function failed with
calculated values, for example, when passed the value returned
by SEC_TO_TIME(). (Bug#7521)
SELECT DISTINCT ... GROUP BY
returned
multiple rows (it should return a single row). (Bug#8614)
constant
INSERT INTO SELECT FROM
produced incorrect
result when using viewORDER BY. (Bug#11298)
Fixed hang/crash with Boolean full-text search where a query contained more query terms that one-third of the query length (it could be achieved with truncation operator: 'a*b*c*d*'). (Bug#7858)
Fixed column name generation in VIEW
creation to ensure there are no duplicate column names. (Bug#7448)
An ORDER BY clause sometimes had no effect
on the ordering of a result when selecting specific columns
(as opposed to using SELECT *) from a view.
(Bug#7422)
Some data definition statements (CREATE
TABLE where the table was not a temporary table,
TRUNCATE TABLE, DROP
DATABASE, and CREATE DATABASE)
were not being written to the binary log after a
ROLLBACK. This also caused problems with
replication. (Bug#6883)
Calling a stored procedure that made use of an INSERT
... SELECT ... UNION SELECT ... query caused a
server crash. (Bug#11060)
Selecting from a view defined using SELECT
SUM(DISTINCT ...) caused an error; attempting to
execute a SELECT * FROM
INFORMATION_SCHEMA.TABLES query after defining such
a view crashed the server. (Bug#7015)
The mysql client would output a prompt twice following input of very long strings, because it incorrectly assumed that a call to the _cgets() function would clear the input buffer. (Bug#10840)
A three byte buffer overflow in the client functions caused improper exiting of the client when reading a command from the user. (Bug#10841)
Fixed a problem where a stored procedure caused a server crash if the query cache was enabled. (Bug#9715)
SHOW CREATE DATABASE INFORMATION_SCHEMA
returned an “unknown database” error. (Bug#9434)
Corrected a problem with IFNULL() returning
an incorrect result on 64-bit systems. (Bug#11235)
Fixed a problem resolving table names with
lower_case_table_names=2 when the table
name lettercase differed in the FROM and
WHERE clauses. (Bug#9500)
Fixed server crash due to some internal functions not taking
into account that for multi-byte character sets,
CHAR columns could exceed 255 bytes and
VARCHAR columns could exceed 65,535 bytes.
(Bug#11167)
Fixed locking problems for multiple-statement
DELETE statements performed within a stored
routine, such as incorrectly locking a to-be-modified table
with a read lock rather than a write lock. (Bug#11158)
Fixed a portability problem testing for
crypt() support that caused compilation
problems when using OpenSSL/yaSSL on HP-UX and Mac OS X. (Bug#10675, Bug#11150)
The hostname cache was not working. (Bug#10931)
On Windows, mysqlshow did not interpret
wildcard characters properly if they were given in the table
name argument. (Bug#10947)
Using PREPARE to prepare a statement that
invoked a stored routine that deallocated the prepared
statement caused a server crash. This is prevented by
disabling dynamic SQL within stored routines. (Bug#10975)
Default hostname for MySQL server was always
mysql. (Bug#11174)
Using PREPARE to prepare a statement that
invoked a stored routine that executed the prepared statement
caused a Packets out of order error the
second time the routine was invoked. This is prevented by
disabling dynamic SQL within stored routines. (Bug#7115)
Using prepared statements within a stored routine
(PREPARE, EXECUTE,
DEALLOCATE) could cause the client
connection to be dropped after the routine returned. This is
prevented by disabling dynamic SQL within stored routines.
(Bug#10605)
When using a cursor with a prepared statement, the first execution returned the correct result but was not cleaned up properly, causing subsequent executions to return incorrect results. (Bug#10729)
MySQL Cluster: Connections between data nodes and management
nodes were not being closed following shutdown of
ndb_mgmd. (Bug#11132)
MySQL Cluster: mysqld processes would not
reconnect to cluster following restart of
ndb_mgmd. (Bug#11221)
MySQL Cluster: Fixed problem whereby data nodes would fail to restart on 64-bit Solaris (Bug#9025)
MySQL Cluster: Calling ndb_select_count()
crashed the cluster when running on Red Hat Enterprise
4/64-bit/Opteron. (Bug#10058)
MySQL Cluster: Insert records were incorrectly applied by
ndb_restore, thus making restoration from
backup inconsistent if the binlog contained inserts. (Bug#11166)
MySQL Cluster: Cluster would time out and crash after first query on 64-bit Solaris 9. (Bug#8918)
MySQL Cluster: ndb_mgm client
show command displayed incorrect output
after master data node failure. (Bug#11050)
MySQL Cluster: A delete performed as part of a transaction caused an erroneous result. (Bug#11133)
MySQL Cluster: Not allowing sufficient parallelism in cluster
configuration (e.g. NoOfTransactions too
small) caused ndb_restore to fail without
providing any error messages. (Bug#10294)
MySQL Cluster: When using dynamically allocated ports on Linux, cluster would hang on initial startup. (Bug#10893)
MySQL Cluster: Setting TransactionInactiveTimeout= 0 did not result in an infinite timeout. (Bug#11290)
InnoDB: Enforce maximum
CHAR_LENGTH() of UTF-8 data in ON
UPDATE CASCADE. (Bug#10409)
InnoDB: Pad UTF-8 variable-length
CHAR columns with 0x20.
Pad UCS2 CHAR columns with
0x0020. (Bug#10511)
Functionality added or changed:
Added mysql_set_character_set() C API
function for setting the default character set of the current
connection. This allows clients to affect the character set
used by mysql_real_escape_string(). (Bug#8317)
The behaviour of the Last_query_cost system
variable has been changed. The default value is now 0 (rather
than -1) and it now has session-level scope (rather than being
global). See Sección 5.3.4, “Variables de estado del servidor” for
additional information.
All characters occuring on the same line following the
DELIMITER keyword will be set as delimiter.
For example, DELIMITER :; will set
:; as the delimiter. This behavior is now
consistent between MySQL 5.1 and MySQL 5.0. (Bug#9879)
The table, type, and
rows columns of EXPLAIN
output can now be NULL. This is required
for using EXPLAIN on
SELECT queries that use no tables (i.e.
EXPLAIN SELECT 1). (Bug#9899)
Placeholders now can be used for LIMIT in
prepared statements. (Bug#7306)
SHOW BINARY LOGS now displays a
File_size column that indicates the size of
each file.
The --delayed-insert option for
mysqldump has been disabled to avoid
causing problems with storage engines that do not support
INSERT DELAYED. (Bug#7815)
Improved the optimizer to be able to use indexes for
expressions of the form
and
indexed_col NOT IN
(val1,
val2, ...).. (Bug#10561)
indexed_col NOT BETWEEN
val1 AND
val2
Removed mysqlshutdown.exe and
mysqlwatch.exe from the Windows “No
Installer” distribution (they had already been removed
from the “With Installer” distribution before).
Removed those programs from the source distribution.
Removed WinMySQLAdmin from the source
distribution and from the “No Installer” Windows
distribution (it had already been removed from the “With
Installer” distribution before).
InnoDB: In stored procedures and functions,
InnoDB no longer takes full explicit table
locks for every involved table. Only `intention' locks are
taken, similar to those in the execution of an ordinary SQL
statement. This greatly reduces the number of deadlocks.
Bugs fixed:
Security update: A user with
limited privileges could obtain information about the
privileges of other users by querying objects in the
INFORMATION_SCHEMA database for which that
user did not have the requisite privileges. (Bug#10964)
Triggers with dropped functions caused crashes. (Bug#5893)
Failure of a BEFORE trigger did not prevent
the triggering statement from performing its operation on the
row for which the trigger error occurred. Now the triggering
statement fails as described in
Sección 20.3, “Utilización de disparadores”. (Bug#10902)
Issuing a write lock for a table from one client prevented
other clients from accessing the table's metadata. For
example, if one client issued a LOCK TABLES
, then a second client attempting to execute a
mydb.mytable
WRITEUSE would
hang. (Bug#9998)
mydb;
The LAST_DAY() failed to return
NULL when supplied with an invalid
argument. See Sección 12.5, “Funciones de fecha y hora”. (Bug#10568)
The functions COALESCE(),
IF(), and IFNULL()
performed incorrect conversions of their arguments. (Bug#9939)
The TIME_FORMAT() function returned
incorrect results with some format specifiers. See
Sección 12.5, “Funciones de fecha y hora”. (Bug#10590)
Dropping stored routines when the MySQL server had been
started with --skip-grant-tables generated
extraneous warnings. (Bug#9993)
A problem with the my_global.h file
caused compilation of MySQL to fail on single-processor Linux
systems running 2.6 kernels. (Bug#10364)
The ucs2_turkish_ci collation failed with upper('i'). UPPER/LOWER now can return a string with different length. (Bug#8610)
OPTIMIZE of InnoDB table does not return 'Table is full' if out of tablespace. (Bug#8135)
GROUP BY queries with ROLLUP returned wrong results for expressions containing group by columns. (Bug#7894)
Fixed bug in FIELD() function where value
list contains NULL. (Bug#10944)
Corrected a problem where an incorrect column type was
returned in the result set metadata when using a prepared
SELECT DISTINCT statement to select from a
view. (Bug#11111)
Fixed bug in the MySQL Instance manager that caused the
version to always be unknown when
SHOW INSTANCE STATUS was issued. (Bug#10229)
Using ORDER BY to sort the results of an
IF() that contained a
FROM_UNIXTIME() expression returned
incorrect results due to integer overflow. (Bug#9669)
Fixed a server crash resulting from accessing
InnoDB tables within stored functions. This
is handled by prohibiting statements that do an explicit or
explicit commit or rollback within stored functions or
triggers. (Bug#10015)
Fixed a server crash resulting from the second invocation of a
stored procedure that selected from a view defined as a join
that used ON in the join conditions. (Bug#6866)
Using ALTER TABLE for a table that had a
trigger caused a crash when executing a statement that
activated the trigger, and also a crash later with
USE for
the database containing the table. (Bug#5894)
db_name
Fixed a server crash resulting from an attempt to allocate too
much memory when GROUP BY
and
blob_colCOUNT(DISTINCT) were used. (Bug#11088)
Fixed a portability problem for compiling on Windows with Visual Studio 6. (Bug#11153)
The incorrect sequence of statements HANDLER
without a
preceding tbl_name READ
index_name NEXTHANDLER for an
tbl_name
READ index_name =
(value_list)InnoDB table resulted in a server crash
rather than an error. (Bug#5373)
On Windows, with lower_case_table_names set
to 2, using ALTER TABLE to alter a
MEMORY or InnoDB table
that had a mixed-case name also improperly changed the name to
lowercase. (Bug#9660)
The server timed out SSL connections too quickly on Windows. (Bug#8572)
Executing LOAD INDEX INTO CACHE for a table
while other threads where selecting from the table caused a
deadlock. (Bug#10602)
Fixed a server crash resulting from CREATE TABLE ...
SELECT that selected from a table being altered by
ALTER TABLE. (Bug#10224)
The FEDERATED storage engine properly
handled outer joins, but not inner joins. (Bug#10848)
Consistently report INFORMATION_SCHEMA
table names in uppercase in SHOW TABLE
STATUS output. (Bug#10059)
Fixed a failure of WITH ROLLUP to sum
values properly. (Bug#10982)
Triggers were not being activated for multiple-table
UPDATE or DELETE
statements. (Bug#5860)
INSERT BEFORE triggers were not being
activated for INSERT ... SELECT statements.
(Bug#6812)
INSERT BEFORE triggers were not being
activated for implicit inserts (LOAD DATA).
(Bug#8755)
If a stored function contained a FLUSH
statement, the function crashed when invoked.
FLUSH now is disallowed within stored
functions. (Bug#8409)
Multiple-row REPLACE could fail on a
duplicate-key error when having one
AUTO_INCREMENT key and one unique key. (Bug#11080)
Fixed a server crash resulting from invalid string pointer
when inserting into the mysql.host table.
(Bug#10181)
Multiple-table DELETE did always delete on
the fly from the first table that was to be deleted from. In
some cases, when using many tables and it was necessary to
access the same row twice in the first table, we could miss
some rows-to-be-deleted from other tables. This is now fixed.
The mysql_next_result() function could hang
if you were executing many statements in a
mysql_real_query() call and one of those
statements raised an error. (Bug#9992)
The combination of COUNT(),
DISTINCT, and CONCAT()
sometimes triggered a memory deallocation bug on Windows
resulting in a server crash. (Bug#9593)
InnoDB: Do very fast shutdown only if
innodb_fast_shutdown=2, but wait for
threads to exit and release allocated memory if
innodb_fast_shutdown=1. Starting with
MySQL/InnoDB 5.0.5, InnoDB would do brutal shutdown also when
innodb_fast_shutdown=1. (Bug#9673)
InnoDB: Fixed InnoDB: Error:
stored_select_lock_type is 0 inside ::start_stmt()!
in a stored procedure call if
innodb_locks_unsafe_for_binlog was set in
my.cnf. (Bug#10746)
InnoDB: Fixed a duplicate key error that
occurred with REPLACE in a table with an
AUTO-INC column. (Bug#11005)
Fixed that MySQL would pass a wrong key length to storage
engines in MIN(). This could cause warnings
InnoDB: Warning: using a partial-field key prefix in
search. in the .err log. (Bug#11039)
Fixed a server crash for INSERT or
UPDATE when the WHERE
clause contained a correlated subquery that referred to a
column of the table being modified. (Bug#6384)
Fixed a problem causing an incorrect result for columns that
include an aggregate function as part of an expression when
WITH ROLLUP is added to GROUP
BY. (Bug#7914)
Fixed a problem with returning an incorrect result from a view
that selected a COALESCE() expression from
the result of an outer join. (Bug#9938)
MySQL was adding a DEFAULT clause to
ENUM columns that included no explicit
DEFAULT and were defined as NOT
NULL. (This is supposed to happen only for columns
that are NULL.) (Bug#6267)
Corrected inappropriate error messages that were displayed
when attempting to set the read-only
warning_count and
error_count system variables. (Bug#10339)
Functionality added or changed:
Incompatible change:
MyISAM and InnoDB tables
created with DECIMAL columns in MySQL 5.0.3
to 5.0.5 will appear corrupt after an upgrade to MySQL 5.0.6.
Dump such tables with mysqldump before
upgrading, and then reload them after upgrading. (The same
incompatibility will occur for these tables created in MySQL
5.0.6 after a downgrade to MySQL 5.0.3 to 5.0.5.) (Bug#10465,
Bug#10625)
Added the div_precision_increment system
variable, which indicates the number of digits of precision by
which to increase the result of division operations performed
with the / operator.
Added the log_bin_trust_routine_creators
system variable, which applies when binary logging is enabled.
It controls whether stored routine creators can be trusted not
to create stored routines that will cause unsafe events to be
written to the binary log.
Added the --log-bin-trust-routine-creators
server option for setting the
log_bin_trust_routine_creators system
variable from the command line.
Implemented the STMT_ATTR_PREFETCH_ROWS
option for the mysql_stmt_attr_set() C API
function. This sets how many rows to fetch at a time when
using cursors with prepared statements.
The GRANT and REVOKE
statements now support an
object_type clause to be used for
disambiguating whether the grant object is a table, a stored
function, or a stored procedure. Use of this clause requires
that you upgrade your grant tables. See
Sección 2.10.2, “Aumentar la versión de las tablas de privilegios”. (Bug#10246)
Added REFERENCED_TABLE_SCHEMA,
REFERENCED_TABLE_NAME, and
REFERENCED_COLUMN_NAME columns to the
KEY_COLUMN_USAGE table of
INFORMATION_SCHEMA. (Bug#9587)
Added a --show-warnings option to
mysql to cause warnings to be shown after
each statement if there are any. This option applies to
interactive and batch mode. In interactive mode,
\w and \W may be used to
enable and disable warning display. (Bug#8684)
Removed a limitation that prevented use of FIFOs as logging targets (such as for the general query log). This modification does not apply to the binary log and the relay log. (Bug#8271)
Added a --debug option to
my_print_defaults.
When the server cannot read a table because it cannot read the
.frm file, print a message that the table
was created with a different version of MySQL. (This can
happen if you create tables that use new features and then
downgrade to an older version of MySQL.) (Bug#10435)
SHOW VARIABLES now shows the
slave_compressed_protocol,
slave_load_tmpdir and
slave_skip_errors system variables. (Bug#7800)
Removed unused system variable
myisam_max_extra_sort_file_size.
Changed default value of
myisam_data_pointer_size from 4 to 6. This
allows us to avoid table is full errors for
most cases.
The variable concurrent_insert now takes 3
values. Setting this to 2 changes MyISAM to do concurrent
inserts to end of table if table is in use by another thread.
New /*> prompt for
mysql. This prompt indicates that a
/* ... */ comment was begun on an earlier
line and the closing */ sequence has not
yet been seen. (Bug#9186)
If strict SQL mode is enabled, VARCHAR and
VARBINARY columns with a length greater
than 65,535 no longer are silently converted to
TEXT or BLOB columns.
Instead, an error occurs. (Bug#8295, Bug#8296)
The INFORMATION_SCHEMA.SCHEMATA table now
has a DEFAULT_COLLATION_NAME column. (Bug#8998)
InnoDB: When the maximum length of
SHOW INNODB STATUS output would be
exceeded, truncate the beginning of the list of active
transactions, instead of truncating the end of the output.
(Bug#5436)
InnoDB: If
innodb_locks_unsafe_for_binlog option is
set and the isolation level of the transaction is not set to
serializable then InnoDB uses a consistent
read for select in clauses like INSERT INTO ...
SELECT and UPDATE ... (SELECT)
that do not specify FOR UPDATE or
IN SHARE MODE. Thus no locks are set to
rows read from selected table.
Updated version of libedit to 2.9. (Bug#2596)
Removed mysqlshutdown.exe and
mysqlwatch.exe from the Windows “With
Installer” distribution.
Bugs fixed:
An error in the implementation of the
MyISAM compression algorithm caused
myisampack to fail with very large sets of
data (total size of all the records in a single column needed
to be >= 3 GB in order to trigger this issue). (Bug#8321)
Statements that create and use stored routines were not being written to the binary log, which affects replication and data recovery options. (Bug#2610) Stored routine-related statements now are logged, subject to the issues and limitations discussed in Sección 19.3, “Registro binario de procedimientos almacenados y disparadores”
Disabled binary logging within stored routines to avoid
writing spurious extra statements to the binary log. For
example, if a routine p() executes an
INSERT statement, then for CALL
p(), the CALL statement appears
in the binary log, but not the INSERT
statement. (Bug#9100)
Statements that create and drop triggers were not being written to the binary log, which affects replication and data recovery options. (Bug#10417) Trigger-related statements now are logged, subject to the issues and limitations discussed in Sección 19.3, “Registro binario de procedimientos almacenados y disparadores”
The mysql_stmt_execute() and
mysql_stmt_reset() C API functions now
close any cursor that is open for the statement, which
prevents a server crash. (Bug#9478)
The mysql_stmt_attr_set() C API function
now returns an error for option values that are defined in
mysql.h but not yet implemented, such as
CURSOR_TYPE_SCROLLABLE. (Bug#9643)
MERGE tables could fail on Windows due to
incorrect interpretation of pathname separator characters for
filenames in the .MRG file. (Bug#10687)
Fixed a server crash for INSERT ... ON DUPLICATE KEY
UPDATE with MERGE tables, which
do not have unique indexes. (Bug#10400)
Fix FORMAT() to do better rounding for
double values (for example, FORMAT(4.55,1)
returns 4.6, not 4.5).
(Bug#9060)
Disallow use of SESSION or
GLOBAL for user variables or local
variables in stored routines. (Bug#9286)
Fixed a server crash when using GROUP BY ... WITH
ROLLUP on an indexed column in an
InnoDB table. (Bug#9798)
In strict SQL mode, some assignments to numeric columns that
should have been rejected were not (such as the result of an
arithmetic expression or an explicit CAST()
operation). (Bug#6961)
CREATE TABLE t AS SELECT UUID() created a
VARCHAR(12) column, which is too small to
hold the 36-character result from UUID().
(Bug#9535)
Fixed a server crash in the BLACKHOLE
storage engine. (Bug#10175)
Fixed a server crash resulting from repeated calls to
ABS() when the argument evaluated to
NULL. (Bug#10599)
For a user-defined function invoked from within a prepared
statement, the UDF's initialization routine was invoked for
each execution of the statement, but the deinitialization
routine was not. (It was invoked only when the statement was
closed.) Similarly, when invoking a UDF from within a trigger,
the initialization routine was invoked but the
deinitialization routine was not. For UDFs that have an
expensive deinit function (such as myperl,
this bugfix will have negative performance consequences. (Bug#9913)
Portability fix for Cygwin: Don't use #pragma
interface in source files. (Bug#10241)
Fix CREATE TABLE ... LIKE to work when
lower_case_table_names is set on a
case-sensitive filesystem and the source table name is not
given in lowercase. (Bug#9761)
Fixed a server crash resulting from a CHECK
TABLE statement where the arguments were a view name
followed by a table name. (Bug#9897)
Within a stored procedure, attempting to update a view defined
as an inner join failed with a Table
' error. (Bug#9481)
tbl_name' was locked with a READ
lock and can't be updated
Fixed a problem with INFORMATION_SCHEMA
tables being inaccessible depending on lettercase used to
refer to them. (Bug#10018)
my_print_defaults was ignoring the
--defaults-extra-file option or crashing when
the option was given. (Bug#9136, Bug#9851)
The INFORMATION_SCHEMA.COLUMNS table was
missing columns of views for which the user has access. (Bug#9838)
Fixed a mysqldump crash that occurred with
the --complete-insert option when dumping
tables with a large number of long column names. (Bug#10286)
Corrected a problem where DEFAULT values
where not assigned properly to BIT(1) or
CHAR(1) columns if certain other columns
preceded them in the table definition. (Bug#10179)
For MERGE tables, avoid writing absolute
pathnames in the .MRG file for the names
of the constituent MyISAM tables so that if
the data directory is moved, MERGE tables
will not break. For mysqld, write just the
MyISAM table name if it is in the same
database as the MERGE table, and a path
relative to the data directory otherwise. For the embedded
servers, absolute pathnames may still be used. (Bug#5964)
Corrected a problem resolving outer column references in correlated subqueries when using the prepared statements. (Bug#10041)
Corrected the error message for exceeding the
MAX_CONNECTIONS_PER_HOUR limit to say
max_connections_per_hour instead of
max_connections. (Bug#9947)
Fixed incorrect memory block allocation for the query cache in the embedded server. (Bug#9549)
Corrected an inability to select from a view within a stored procedure. (Bug#9758)
Fixed a server crash resulting from use of
AVG(DISTINCT) with GROUP BY ...
WITH ROLLUP. (Bug#9799)
Fixed a server crash resulting from use of DISTINCT
AVG() with GROUP BY ... WITH
ROLLUP. (Bug#9800)
Fixed a server crash resulting from use of a
CHAR or VARCHAR column
with MIN() or MAX() and
GROUP BY ... WITH ROLLUP. (Bug#9820)
Fixed a server crash resulting from use of SELECT
DISTINCT with a prepared statement that uses a
cursor. (Bug#9520)
Fixed server crash resulting from multiple calls to a stored
procedure that assigned the result of a subquery to a variable
or compared it to a value with IN. (Bug#5963)
Selecting from a single-table view defined on multiple-table views caused a server crash. (Bug#8528)
If the file named by a --defaults-extra-file
option does not exist or is otherwise inaccessible, an error
now occurs. (Bug#5056)
net_read_timeout and
net_write_timeout were not being respected
on Windows. (Bug#9721)
SELECT from
INFORMATION_SCHEMA tables failed if the
statement has a GROUP BY clause and an
aggregate function in the select list. (Bug#9404)
Corrected some failures of prepared statements for SQL
(PREPARE plus EXECUTE)
to return all rows for some SELECT
statements. (Bug#9096, Bug#9777)
Remove extra slashes in --tmpdir value (for
example, convert /var//tmp to
/var/tmp, because they caused various
errors. (Bug#8497)
Added Create_routine_priv,
Alter_routine_priv, and
Execute_priv privileges to the
mysql.host privilege table. (They had been
added to mysql.db in MySQL 5.0.3 but not to
the host table.) (Bug#8166)
Fixed configure to properly recognize whether NTPL is available on Linux. (Bug#2173)
Incomplete results were returned from
INFORMATION_SCHEMA.COLUMNS for
INFORMATION_SCHEMA tables for
non-root users. (Bug#10261)
Fixed a portability problem in compiling
mysql.cc with VC++ on
Windows. (Bug#10245)
SELECT 0/0 returned 0
rather than NULL. (Bug#10404)
MAX() for an INT
UNSIGNED (unsigned 4-byte integer) column could
return negative values if the column contained values larger
than 2^31. (Bug#9298)
SHOW CREATE VIEW got confused and could not
find the view if there was a temporary table with the same
name as the view. (Bug#8921)
Fixed a deadlock resulting from use of FLUSH TABLES
WITH READ LOCK while an INSERT
DELAYED statement is in progress. (Bug#7823)
The optimizer was choosing suboptimal execution plans for
certain outer joins where the right table of a left join (or
left table of a right join) had both ON and
WHERE conditions. (Bug#10162)
RENAME TABLE for an
ARCHIVE table failed if the
.arn file was not present. (Bug#9911)
Invoking a stored function that executed a
SHOW statement resulted in a server crash.
(Bug#8408)
Fixed problems with static variables and do not link with
libsupc++ to allow building on FreeBSD 5.3.
(Bug#9714)
Fixed some awk script portability problems in cmd-line-utils/libedit/makelist.sh. (Bug#9954)
Fixed a problem with mishandling of NULL
key parts in hash indexes on VARCHAR
columns, resulting in incorrect query results. (Bug#9489, Bug#10176)
InnoDB: Fixed a critical bug in InnoDB
AUTO_INCREMENT: it could assign the same
value for several ro