Released on 16 Apr 2005
MySQL 5.0.4 Changelog
  • Functionality Added or Changed

  • Bugs Fixed

Functionality Added or Changed

  • Replication: The way the time zone information is stored in the binary log was changed, so that it is now possible to have a replication master and slave running with different global time zones. A disadvantage is that replication from 5.0.4 masters to pre-5.0.4 slaves is impossible.

  • Added ENGINE=MyISAM table option when creating mysql.proc table in mysql_create_system_tables script to make sure the table is created as a MyISAM table even if the default storage engine has been changed. (Bug #9496)

  • SHOW CREATE TABLE for an INFORMATION_SCHEMA table no longer prints a MAX_ROWS value because the value has no meaning. (Bug #8941)

  • Invalid DEFAULT values for CREATE TABLE now generate errors. (Bug #5903)

  • Added --show-table-type option to mysqlshow, to display a column indicating the table type, as in SHOW FULL TABLES. (Bug #5036)

  • Support for MIT-pthreads was removed.

  • Added --with-big-tables compilation option to configure. (Previously it was necessary to pass -DBIG_TABLES to the compiler manually to enable large table support.) See MySQL Source-Configuration Options, for details.

  • New configuration directives !include and !includedir implemented for including option files and searching directories for option files. See Using Option Files, for usage.

Bugs Fixed

  • Security Fix: Information in INFORMATION_SCHEMA could be exposed to a user with insufficient privileges. (Bug #7214)

  • MySQL Cluster: The commit count cache for NDB was not properly invalidated when deleting a record using a cursor. (Bug #8585)

  • Replication: If, on a replication master, a LOAD DATA INFILE operation was interrupted (by, for example, an integrity constraint violation or killed connection), the slave skipped the LOAD DATA INFILE entirely, thus missing changes if this command permanently inserted or updated table records before being interrupted. (Bug #3247)

  • mysql.server no longer uses nonportable alias command or LSB functions. (Bug #9852)

  • A server installed as a Windows service and started with --shared-memory could not be stopped. (Bug #9665)

  • Selecting a BIT column failed if the binary client/server protocol was used. (Bug #9608)

  • Creating a PRIMARY KEY on a table having a BIT column caused the server to crash. (Bug #9571)

  • ENUM and SET columns in InnoDB tables were treated incorrectly as character strings. This bug did not manifest itself with latin1 collations, but it caused malfunction with utf8. Old tables will continue to work. In new tables, ENUM and SET will be stored internally as unsigned integers. (Bug #9526)

  • An error in division of floating point numbers could cause nine zeros (000000000) to be inserted in the middle of the quotient. (Bug #9501)

  • Fixed option-parsing code for the embedded server to understand K, M, and G suffixes for the net_buffer_length and max_allowed_packet options. (Bug #9472)

  • Some user variables were not being handled with implicit coercibility. (Bug #9425)

  • Using CREATE TABLE ... SELECT or INSERT INTO ... SELECT to select from multiple-table view caused the server to crash. (Bug #9398, Bug #8703)

  • Multiple executions of a prepared statement involving a join of an INFORMATION_SCHEMA table with another table could lead to a crash of the server. (Bug #9383)

  • An InnoDB test suite failure was caused by a locking conflict between two server instances at server shutdown or startup. This conflict on advisory locks appears to be the result of a bug in the operating system; these locks should be released when the files are closed, but somehow that does not always happen immediately in Linux. (Bug #9381)

  • Permit extra HKSCS and cp950 characters (big5 extension characters) to be accepted in big5 columns. (Bug #9357)

  • The value of the CHARACTER_MAXIMUM_LENGTH and CHARACTER_OCTET_LENGTH columns of the INFORMATION_SCHEMA.COLUMNS table must be NULL for numeric columns, but were not. (Bug #9344)

  • INFORMATION_SCHEMA tables had an implicit upper limit for the number of rows. As a result, not all data could be returned for some queries. (Bug #9317)

  • InnoDB: True VARCHAR: InnoDB stored the 'position' of a row wrong in a column prefix primary key index; this could cause MySQL to complain ERROR 1032: Can't find record … in an update of the primary key, and also some ORDER BY or DISTINCT queries. (Bug #9314)

  • ORDER BY sometimes caused incorrect sorting of UTF8 data. (Bug #9309)

  • The utf8_spanish2_ci and ucs2_spanish2_ci collations no longer consider r equal to rr . If you upgrade to this version from an earlier version, you should rebuild the indexes of any affected tables. (Bug #9269)

  • CREATE OR REPLACE VIEW and ALTER VIEW now require the CREATE VIEW and DROP privileges, not CREATE VIEW and DELETE. (DELETE is a row-level privilege, not a table-level privilege.) (Bug #9260)

  • Using GROUP BY on a decimal expression caused the server to crash. (Bug #9210)

  • mysqldump dumped core when invoked with --tmp and --single-transaction options and a nonexistent table name. (Bug #9175)

  • Calling mysql_stmt_close() for a single-row result set could cause the server to crash. (Bug #9159)

  • Setting the max_error_count system variable to 0 resulted in a setting of 1. (Bug #9072)

  • The use of XOR together with NOT ISNULL() erroneously resulted in some outer joins being converted to inner joins by the optimizer. (Bug #9017)

  • Two prepared statements for single-row result sets being open simultaneously caused a Commands out of sync error error. (Bug #8880)

  • Extraneous comparisons between NULL values in indexed columns were performed by the optimzer for operators such as = that are never true for NULL. (Bug #8877)

  • In the client/server protocol for prepared statements, reconnection failed when the connection was killed with reconnection enabled. (Bug #8866)

  • In prepared statements, subqueries containing parameters were erroneously treated as const tables during preparation, resulting in a server crash. (Bug #8807)

  • Do not try to space-pad BLOB columns containing ucs2 characters. (Bug #8771)

    References: This bug was introduced by Bug #7350.

  • The warning message from GROUP_CONCAT() did not always indicate the correct number of lines. (Bug #8681)

  • InnoDB: SQL statements were not rolled back on error. (Bug #8650)

  • Too many rows were returned from queries that combined ROLLUP and LIMIT if SQL_CALC_FOUND_ROWS was given. (Bug #8617)

  • Incorrect results were returned from queries that combined SELECT DISTINCT, GROUP BY , and ROLLUP. (Bug #8616)

  • Queries that combined SELECT DISTINCT, SUM(), and ROLLUP could cause the MySQL server to crash. (Bug #8615)

  • The tee command could sometimes cause the mysql client to crash. (Bug #8499)

  • DROP TABLE did not drop triggers that were defined for the table. DROP DATABASE did not drop triggers in the database. (Bug #6559, Bug #5859)

  • Added linking with libsupc++ on Fedora Core 3 to get language support functions. (Bug #6554)

  • Unions between binary and nonbinary columns failed due to a collation coercibility problem. (Bug #6519)

  • Using CONVERT('0000-00-00',DATE) or CAST('0000-00-00' as DATE) with the NO_ZERO_DATE SQL mode enabled now produces a warning. (Bug #6145)

  • TRADITIONAL SQL mode should prevent inserts where a column with no default value is omitted or set to a value of DEFAULT; however, in some cases, this restriction was not enforced. (Bug #5986)

  • Inserting a zero date in a DATE, DATETIME or TIMESTAMP column during TRADITIONAL mode now produces an error. (Bug #5933)

  • CAST() now produces warnings when casting incorrect INTEGER and CHAR values. This also applies to implicit string to number casts. (Bug #5912)

  • An error now occurs if you try to insert an invalid value using a stored procedure in STRICT mode. (Bug #5907)

  • STR_TO_DATE() now produces errors in strict mode (and warnings otherwise) when given an illegal argument. (Bug #5902)

  • ALTER TABLE now fails in STRICT mode if the alteration generates warnings.

  • Inserting a zero date into a DATETIME column in TRADITIONAL mode now produces an error.