hosting y dominios

Apéndice C. Historial de cambios de MySQL

Tabla de contenidos

C.1. Cambios en la entrega 5.0.x (Desarrollo)
C.1.1. Cambios en la entrega 5.0.11 (todavía no liberada)
C.1.2. Cambios en la entrega 5.0.10 (todavía no liberada)
C.1.3. Cambios en la entrega 5.0.9 (15 julio 2005)
C.1.4. Cambios en la entrega 5.0.8 (not released)
C.1.5. Cambios en la entrega 5.0.7 (10 June 2005)
C.1.6. Cambios en la entrega 5.0.6 (26 May 2005)
C.1.7. Cambios en la entrega 5.0.5 (not released)
C.1.8. Cambios en la entrega 5.0.4 (16 Apr 2005)
C.1.9. Cambios en la entrega 5.0.3 (23 Mar 2005: Beta)
C.1.10. Cambios en la entrega 5.0.2 (01 Dec 2004)
C.1.11. Cambios en la entrega 5.0.1 (27 Jul 2004)
C.1.12. Cambios en la entrega 5.0.0 (22 Dec 2003: Alpha)
C.2. Cambios en MySQL Connector/ODBC (MyODBC)
C.2.1. Changes in Connector/ODBC 5.0.10 (14 December 2006)
C.2.2. Changes in Connector/ODBC 5.0.9 (22 November 2006)
C.2.3. Changes in Connector/ODBC 5.0.8 (17 November 2006)
C.2.4. Changes in Connector/ODBC 5.0.7 (08 November 2006)
C.2.5. Changes in Connector/ODBC 5.0.6 (03 November 2006)
C.2.6. Changes in Connector/ODBC 5.0.5 (17 October 2006)
C.2.7. Changes in Connector/ODBC 5.0.3 (Connector/ODBC 5.0 Alpha 3) (20 June 2006)
C.2.8. Changes in Connector/ODBC 5.0.2 (Never released)
C.2.9. Changes in Connector/ODBC 5.0.1 (Connector/ODBC 5.0 Alpha 2) (05 June 2006)
C.2.10. Changes in Connector/ODBC 3.51.13 (Not yet released)
C.2.11. Cambios en MyODBC 3.51.12
C.2.12. Cambios en MyODBC 3.51.11
C.3. Connector/NET Change History
C.3.1. Changes in MySQL Connector/NET Version 5.0.4 (Not yet released)
C.3.2. Changes in MySQL Connector/NET Version 5.0.3 (05 January 2007)
C.3.3. Changes in MySQL Connector/NET Version 5.0.2 (06 November 2006)
C.3.4. Changes in MySQL Connector/NET Version 5.0.1 (01 October 2006)
C.3.5. Changes in MySQL Connector/NET Version 5.0.0 (08 August 2006)
C.3.6. Changes in MySQL Connector/NET Version 1.0.9 (Not yet released)
C.3.7. Changes in MySQL Connector/NET Version 1.0.8 (20 October 2006)
C.3.8. Changes in MySQL Connector/NET Version 1.0.7 (21 November 2005)
C.3.9. Changes in MySQL Connector/NET Version 1.0.6 (03 October 2005)
C.3.10. Changes in MySQL Connector/NET Version 1.0.5 (29 August 2005)
C.3.11. Changes in MySQL Connector/NET Version 1.0.4 (20 January 2005)
C.3.12. Changes in MySQL Connector/NET Version 1.0.3-gamma (12 October 2004)
C.3.13. Changes in MySQL Connector/NET Version 1.0.2-gamma (15 November 2004)
C.3.14. Changes in MySQL Connector/NET Version 1.0.1-beta2 (27 October 2004)
C.3.15. Changes in MySQL Connector/NET Version 1.0.0 (01 September 2004)
C.3.16. Changes in MySQL Connector/NET Version 0.9.0 (30 August 2004)
C.3.17. Changes in MySQL Connector/NET Version 0.76
C.3.18. Changes in MySQL Connector/NET Version 0.75
C.3.19. Changes in MySQL Connector/NET Version 0.74
C.3.20. Changes in MySQL Connector/NET Version 0.71
C.3.21. Changes in MySQL Connector/NET Version 0.70
C.3.22. Changes in MySQL Connector/NET Version 0.68
C.3.23. Changes in MySQL Connector/NET Version 0.65
C.3.24. Changes in MySQL Connector/NET Version 0.60
C.3.25. Changes in MySQL Connector/NET Version 0.50
C.4. MySQL Visual Studio Plugin Change History
C.4.1. Changes in MySQL Visual Studio Plugin 1.0.2 (Not yet released)
C.4.2. Changes in MySQL Visual Studio Plugin 1.0.1 (4 October 2006)
C.4.3. Changes in MySQL Visual Studio Plugin 1.0.0 (4 October 2006)
C.5. MySQL Connector/J Change History
C.5.1. Changes in MySQL Connector/J 5.1.x
C.5.2. Changes in MySQL Connector/J 5.0.x
C.5.3. Changes in MySQL Connector/J 3.1.x
C.5.4. Changes in MySQL Connector/J 3.0.x
C.5.5. Changes in MySQL Connector/J 2.0.x
C.5.6. Changes in MySQL Connector/J 1.2b (04 July 1999)
C.5.7. Changes in MySQL Connector/J 1.2.x and lower

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.

C.1. Cambios en la entrega 5.0.x (Desarrollo)

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 list_of_vars, which can be of mixed (that is, global and local) types. See Sección 19.2.9.3, “La sentencia SELECT ... 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_lengthColumn type
    = 0CHAR(0)
    < 512VARCHAR(max_length)
    >= 512TEXT

For a full list of changes, please refer to the changelog sections for each individual 5.0.x release.

C.1.1. Cambios en la entrega 5.0.11 (todavía no liberada)

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 database_name.table_name syntax. (Bug#10407)

  • 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)

C.1.2. Cambios en la entrega 5.0.10 (todavía no liberada)

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:

  • 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 n user: 'name' were being written to the error log. Now connections are closed more gracefully without generating error messages. (Bug#7403)

  • 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_xxx status variable. This fix allows the use of stored routines under LOCK 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 tbl_name. (Bug#11771)

  • 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)

C.1.3. Cambios en la entrega 5.0.9 (15 julio 2005)

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 col_name would work correctly with a MyISAM 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)

C.1.4. Cambios en la entrega 5.0.8 (not released)

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 db_name.tbl_name LIKE ... statement would crash the server when no database was selected. (Bug#11028)

  • 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 table returned incorrect results when called from a stored procedure, where table 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 constant returned multiple rows (it should return a single row). (Bug#8614)

  • INSERT INTO SELECT FROM view produced incorrect result when using ORDER 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)

C.1.5. Cambios en la entrega 5.0.7 (10 June 2005)

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 indexed_col NOT IN (val1, val2, ...) and indexed_col NOT BETWEEN val1 AND val2.. (Bug#10561)

  • 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 mydb.mytable WRITE, then a second client attempting to execute a USE mydb; would hang. (Bug#9998)

  • 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 db_name for the database containing the table. (Bug#5894)

  • Fixed a server crash resulting from an attempt to allocate too much memory when GROUP BY blob_col and COUNT(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 tbl_name READ index_name NEXT without a preceding HANDLER tbl_name READ index_name = (value_list) for an 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)

C.1.6. Cambios en la entrega 5.0.6 (26 May 2005)

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 'tbl_name' was locked with a READ lock and can't be updated error. (Bug#9481)

  • 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