Download MySQL 4.1.12

Spread the love

MySQL AB has released a new version of MySQL 4.1, a popular open source SQL database, and bumped the version number to 4.1.12. The changelog is packed with changes and improvements as usual. It therefore looks like this:

Functionality added or changed:

  • Added –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)
  • New /*> prompt for mysql. This prompt indicates that a /* … */ comment was started on an earlier line and the closing */ sequence has not yet been seen. (Bug #9186)
  • Added cp1250_croatian_ci collation. (Bug #6505)
  • Updated version of libedit to 2.9. (Bug #2596)
  • 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: When FOREIGN_KEY_CHECKS=0, ALTER TABLE and RENAME TABLE will ignore any type incompatibilities between referencing and referenced columns. Thus, it will be possible to convert the character sets of columns that participate in a foreign key. Be sure to convert all tables before modifying any data! (Bug #9802)
  • InnoDB: Setting the initial AUTO_INCREMENT value for an InnoDB table using CREATE TABLE … AUTO_INCREMENT = n now works, and ALTER TABLE … AUTO_INCREMENT = n resets the current value. (Bug #7061)
  • InnoDB: If innodb_locks_unsafe_for_binlog option set and 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.
  • Previously in MySQL 4.1, an Illegal mix of collations error occurred when mixing strings from same character set when one had a non-binary collation and the other a binary collation. Now the binary collation takes precedence, so that both strings are treated as having the binary collation. This restores compatibility with MySQL 4.0 behavior.
  • Added the cp932 Japanese character set.

Bug fixed:

  • Security fix: If mysqld was started with –user=non_existent_user, it would run using the privileges of the account it was invoked from, even if that was root. (Bug #9833)
  • 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.) (Bug #9913)
  • 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)
  • my_print_defaults was ignoring the –defaults-extra-file option or crashing when the option was given. (Bug #9136, Bug #9851)
  • 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 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)
  • Fixed a configure problem in checking for capability of performing atomic operations. (Bug #7970)
  • net_read_timeout and net_write_timeout were not being respected on Windows. (Bug #9721)
  • An error occurred if you specified a default value of TRUE or FALSE for a BOOL column. (Bug #9666)
  • 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)
  • Fixed a sort order problem with the latin2_croatian_ci collation. All tables that have indexes that use this collation will be treated as crashed. After upgrading, for each such table, you must use CHECK TABLE and possibly repair the table. (Bug #6505)
  • mysqld was not checking whether the PID file was successfully created. (Bug #5843)
  • With DISTINCT CONCAT(col,…) returned incorrect results when the arguments to CONCAT() were columns with an integer data type declared with a display width narrower than the values ​​in the column. (For example, if an INT(1) column contain 1111.) (Bug #4082)
  • Fixed configure to properly recognize whether NTPL is available on Linux. (Bug #2173)
  • Fixed a portability problem in compiling mysql.cc with VC++ on Windows. (Bug #10245)
  • CAST(string_argument AS UNSIGNED) didn’t work for big integers above the signed range. Now this function and CAST(string_argument AS SIGNED) also produces warnings for wrong string arguments. (Bug #7036)
  • Fixed compile problem with MinGW. Thanks to Nils Durner for patch! (Bug #8872)
  • MySQL doesn’t anymore automatically block IP’s for which gethostbyname_r() fails when the reason is that the DNS server is down. Thanks to Jeremy Cole for patch. (Bug #8467)
  • Fixed bug in keycache that caused core dump. (Bug #10167)
  • The –delimiter option for the nds_select program was non-functional. (Bug #10287)
  • 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)
  • Fixed a deadlock resulting from use of FLUSH TABLES WITH READ LOCK while an INSERT DELAYED statement is in progress. (Bug #7823)
  • Multiple-table updates could produce spurious data-truncation warnings if they used a join across columns that are indexed using a column prefix. (Bug #9103)
  • Use of a subquery that used WITH ROLLUP in the FROM clause of the main query sometimes resulted in a Column cannot be null error. (Bug #9681)
  • RENAME TABLE for an ARCHIVE table failed if the .arn file was not present. (Bug #9911)
  • Fixed an optimizer problem where extraneous comparisons between NULL values ​​in indexed columns were being done for operators such as = that are never true for NULL. (Bug #8877)
  • SELECT ROUND(expr) produced a different result than CREATE TABLE … SELECT ROUND(expr). (Bug #9837)
  • Fixed some awk script portability problems in cmd-line-utils/libedit/makelist.sh. (Bug #9954)
  • Changed metadata for result of SHOW KEYS: Data type for Sub_part column now is SMALLINT rather than TINYINT because key part length can be longer than 255. (Bug #9439)
  • Fixed some problems with myisampack on 64-bit systems that resulted in segmentation violations. (Bug #9487)
  • Fixed an optimizer bug in computing the union of two ranges for the OR operator. (Bug #9348)
  • Fixed an index corruption problem for MyISAM tables that resulted from the 4.1 behavior of padding values ​​with blanks for comparison: Dumping a table with mysqldump, reloading it, and then re-running the binary log against it crashed the index and necessitated a repair. (Bug #9188)
  • Fixed a segmentation fault in mysqlcheck that occurred when the last table checked in –auto-repair mode returned an error (such as the table being a MERGE table). (Bug #9492)
  • Fixed the client/server protocol for prepared statements so that reconnection works properly when the connection is killed while reconnect is enabled. (Bug #8866)
  • INSERT … ON DUPLICATE KEY UPDATE incorrectly updated a TIMESTAMP column to the current timestamp, even if the update list included col_name = col_name for that column to prevent the update. (Bug #7806)
  • Starting mysqld with the –skip-innodb and –default-storage-engine=innodb (or –default-table-type=innodb caused a server crash. (Bug #9815)
  • Queries containing CURRENT_USER() incorrectly were registered in the query cache. (Bug #9796)
  • A server installed as a Windows service and started with –shared-memory could not be stopped. (Bug #9665)
  • mysqldump dumped core when invoked with –tmp and –single-transaction options and a non-existent table name. (Bug #9175)
  • Additional fix for mysql_server_init() and mysql_server_end() C API functions so that stopping and restarting the embedded server will not cause a crash. (Bug #7344)
  • mysql.server no longer uses non-portable alias command or LSB functions. (Bug #9852)
  • Fixed a readline-related crash in mysql when the user pressed Control-R. (Bug #9568)
  • TIMEDIFF() with a negative time first argument and postive time second argument produced incorrect results. (Bug #8068)
  • Fixed a bug that caused concurrent inserts to be allowed into the tables in the SELECT … UNION … part of INSERT … SELECT … UNION …. This could result in the incorrect order of queries in the binary log. (Bug #9922)
  • Warning message from GROUP_CONCAT() did not always indicate correct number of lines. (Bug #8681)
  • InnoDB: ENUM and SET columns 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 internally stored as unsigned integers. (Bug #9526)
  • InnoDB: Avoid test suite failures caused by a locking conflict between two server instances at server shutdown/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)
  • InnoDB: Prevent ALTER TABLE from changing the storage engine if there are foreign key constraints on the table. (Bug #5574, Bug #5670)
  • InnoDB: Fixed a deadlock without any locking, simple select and update. (Bug #7975) InnoDB now takes an exclusive lock when INSERT ON DUPLICATE KEY UPDATE is checking duplicate keys.
  • Fix for auto-increment not working with INSERT..SELECT and NDB storage engine. (Bug #9675)

Version number 4.1.12
Operating systems Windows 9x, Windows NT, Windows 2000, Linux, BSD, Windows XP, macOS, Solaris, UNIX, Windows Server 2003
Website MySQL
Download
License type GPL
You might also like