MySQL 4.1.13 リリース

投稿日時 2005-7-22 2:59:07 | トピック: MySQL

MySQL 4.1.13 がリリースされました。
かなり多くの問題が修正されています。


以下チェンジログ
-----------------------
■機能の追加と変更:

- Security improvement: Applied a patch that addresses a zlib data vulnerability that could result in a buffer overflow and code execution. (CAN-2005-2096 (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0711)) (Bug #11844 (http://bugs.mysql.com/11844))

- MEMORY tables now support indexes of up to 500 bytes. See Section 14.3, "The MEMORY (HEAP) Storage Engine." (Bug #10566 (http://bugs.mysql.com/10566))

- System variables are now treated as having SYSVAR (system constant) coercibility. For example, @@version is now treated like VERSION() and @@character_set_client is now treated like CHARSET( USER() ). See Section 10.3.11, "Some Special Cases Where the Collation Determination Is Tricky." (Bug #10904 (http://bugs.mysql.com/10904))

- The statements CREATE TABLE, TRUNCATE TABLE, DROP DATABASE, and CREATE DATABASE cause an implicit commit. (Bug #6883 (http://bugs.mysql.com/6883))

- Added the --log-slow-admin-statements server option to request logging of slow administrative statements such as OPTIMIZE TABLE, ANALYZE TABLE, and ALTER TABLE to the slow query log. These statements were logged in MySQL 4.0, but not in 4.1. (Bug #9141 (http://bugs.mysql.com/9141))

- SHOW BINARY LOGS now displays a File_size column that indicates the size of each file.

- You can again refer to other tables in the ON DUPLICATE KEY UPDATE part of an INSERT ... SELECT statement as long as there is no GROUP BY in the SELECT part. One side effect of this is that you may have to qualify non-unique column names in the values part of ON DUPLICATE KEY UPDATE. (Bug #9728 (http://bugs.mysql.com/9728), Bug #8147 (http://bugs.mysql.com/8147))

- 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, such as EXPLAIN SELECT 1). (Bug #9899 (http://bugs.mysql.com/9899))

- Expanded on information provided in general log and slow query log for prepared statements. (Bug #8367 (http://bugs.mysql.com/8367), Bug #9334 (http://bugs.mysql.com/9334))

- InnoDB: When creating or extending an InnoDB data file, allocate at most one megabyte at a time for initializing the file. Previously, InnoDB used to allocate and initialize 1 or 8 megabytes of memory, even if a few 16-kilobyte pages were to be written. This fix improves the performance of CREATE TABLE in innodb_file_per_table mode.


■バグ修正:

- Added a missing mutex when rotating the relay logs. Also, the server now logs an error message if the size of a relay log cannot be read. (Bug #6987 (http://bugs.mysql.com/6987))

- mysqldump could crash for illegal or nonexistent table names. (Bug #9358 (http://bugs.mysql.com/9358))

- The --no-data option for mysqldump was being ignored if table names were given after the database name. (Bug #9558 (http://bugs.mysql.com/9558))

- mysqldump now exports HASH index definitions using USING rather than TYPE when the index name is optional. This corrects a problem when reloading the output for PRIMARY KEY definition, because TYPE must be preceded an index name, which is not given for a PRIMARY KEY. (Bug #11635 (http://bugs.mysql.com/11635))

- 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 (http://bugs.mysql.com/11678))

- Corrected an optimization failure where a query returned an incorrect result for use of a newly populated table until the table was flushed. (Bug #11700 (http://bugs.mysql.com/11700))

- Modifying a CHAR column with the utf8 character set to a shorter length did not properly truncate values due to not computing their length in utf8 character units. (Bug #11591 (http://bugs.mysql.com/11591))

- 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 (http://bugs.mysql.com/10589))

- Invoking the DES_ENCRYPT() function could cause a server crash if the server was started without the --des-key-file option. (Bug #11643 (http://bugs.mysql.com/11643))

- Selecting the result of an aggregate function for an ENUM or SET column within a subquery could result in a server crash. (Bug #11821 (http://bugs.mysql.com/11821))

- When used in joins, SUBSTRING() failed to truncate to zero those string values that could not be converted to numbers. (Bug #10124 (http://bugs.mysql.com/10124))

- Error when performing GROUP BY on calculated values of a single row table. (Bug #11414 (http://bugs.mysql.com/11414))

- mysqldump --xml did not format NULL column values correctly. (Bug #9657 (http://bugs.mysql.com/9657))

- SHOW WARNINGS did not properly display warnings generated by executing a cached query. (Bug #9414 (http://bugs.mysql.com/9414))

- Temporary tables were created in the data directory instead of tmpdir. (Bug #11440 (http://bugs.mysql.com/11440))

- LOAD DATA ... REPLACE INTO ... on a replication slave failed for an InnoDB table having a unique index in addition to the primary key. (Bug #11401 (http://bugs.mysql.com/11401))

- MySQL would not compile correctly on QNX due to missing rint() function. (Bug #11544 (http://bugs.mysql.com/11544))

- Incorrect results when searching using IN() where search items included NULL and 0. (Bug #9393 (http://bugs.mysql.com/9393))

- 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 (http://bugs.mysql.com/103651))

- Manually inserting a row with host='' into mysql.tables_priv and performing a FLUSH PRIVILEGES would cause the server to crash. (Bug #11330 (http://bugs.mysql.com/11330))

- MySQL sometimes reported erroneously that certain character values had crashed a table when trying to convert other character sets to UTF-8. (Bug #9557 (http://bugs.mysql.com/9557))

- Using CONCAT_WS() on a column set NOT NULL caused incorrect results when used in a LEFT JOIN. (Bug #11469 (http://bugs.mysql.com/11469))

- 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 (http://bugs.mysql.com/11122))

- 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 (http://bugs.mysql.com/10178))

- The NULLIF() function could produce incorrect results if the first argument was NULL. (Bug #11142 (http://bugs.mysql.com/11142))

- Optimizer performed range check when comparing unsigned integers to negative constants, could cause errors. (Bug #11185 (http://bugs.mysql.com/11185))

- Cluster failed to build with gcc 4.0. (Bug #11377 (http://bugs.mysql.com/11377))

- The LAST_DAY() failed to return NULL when supplied with an invalid argument. See Section 12.5, "Date and Time Functions." (Bug #10568 (http://bugs.mysql.com/10568))

- Setting @@SQL_MODE = NULL caused an erroneous error message. (Bug #10732 (http://bugs.mysql.com/10732))

- Server crashed when using GROUP BY on the result of a DIV operation on a DATETIME value. (Bug #11385 (http://bugs.mysql.com/11385))

- Possible NULL values in BLOB columns could crash server when BLOB used in GROUP BY. (Bug #11295 (http://bugs.mysql.com/11295))

- Fixed 64 bit compiler warning for packet length in replication. (Bug #11064 (http://bugs.mysql.com/11064))

- 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. (Bug #9148 (http://bugs.mysql.com/9148), CAN-2005-0799 (http://cve.mitre.org/cvename.cgi?name=CAN-2005-0799)

- CASE function returns incorrect result when its arguments are not constants and its return value is put into a regular or temporary table (temporary == created by SQL engine for UNION/non-indexed GROUP BY and such operations). (Bug #10151 (http://bugs.mysql.com/10151))

- 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 (http://bugs.mysql.com/10364))

- Queries against a table using a compound index based on the length of a UTF-8 text column produced incorrect results. For example, given a table with an index defined as shown:
CREATE TABLE t (
id INT NOT NULL,
city VARCHAR(20) NOT NULL,
KEY (city(7),id) ) TYPE=MYISAM CHARACTER SET=utf8;
Assuming that suitable data has been inserted into the table, then a query such as SELECT * FROM t WHERE city = 'Durban'; would fail. (Bug #10253 (http://bugs.mysql.com/10253))

- The mysqlhotcopy script was not parsing the output of SHOW SLAVE STATUS correctly when called with the --record_log_pos option. (Bug #7967 (http://bugs.mysql.com/7967))

- An UPDATE query containing a subselect caused replication to fail. (Bug #9361 (http://bugs.mysql.com/9361))

- Last insert expected from a query of the form INSERT ... SELECT ... ON DUPLICATE KEY UPDATE would fail. (Bug #9728 (http://bugs.mysql.com/9728))

- INSERT ... SELECT ... ON DUPLICATE KEY UPDATE produced inaccurate results. (Bug #10886 (http://bugs.mysql.com/10886))

- SELECT DISTINCT ... GROUP BY constant returned multiple rows (it should return a single row). (Bug #8614 (http://bugs.mysql.com/8614))

- Queries of the form UPDATE ... (SELECT ... ) SET ... run on a replication master would crash all the slaves. (Bug #10442 (http://bugs.mysql.com/10442))

- OPTIMIZE of InnoDB table did not return 'Table is full' if out of tablespace. (Bug #8135 (http://bugs.mysql.com/8135))

- Queries with ROLLUP returned wrong results for expressions containingGROUP BY columns. (Bug #7894 (http://bugs.mysql.com/7894))

- 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 (http://bugs.mysql.com/7858))

- 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 (http://bugs.mysql.com/10840))

- A bug in FIELD() function caused the value list to contain NULL. (Bug #10944 (http://bugs.mysql.com/10944))

- A three byte buffer overflow in the client functions could cause improper exiting of the client when reading a command from the user. (Bug #10841 (http://bugs.mysql.com/10841))

- Fixed a problem with the cp1250_czech_cs collation that caused some LIKE comparisons to fail. (Bug #9759 (http://bugs.mysql.com/9759))

- 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 (http://bugs.mysql.com/9500))

- Fixed server crash due to some internal functions not taking into account that for multi-byte character sets, CHAR and VARCHAR columns could exceed 255 bytes. (Bug #11167 (http://bugs.mysql.com/11167))

- 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 (http://bugs.mysql.com/10675), Bug #11150 (http://bugs.mysql.com/11150))

- The hostname cache was not working. (Bug #10931 (http://bugs.mysql.com/10931))

- For a MERGE table with MyISAM tables in other, symlinked, databases, SHOW CREATE TABLE reported the MyISAM tables using the name of the symlinked directory rather than the database name. (Bug #8183 (http://bugs.mysql.com/8183))

- 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 (http://bugs.mysql.com/11088))

- 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 (http://bugs.mysql.com/5373))

- SHOW WARNINGS with a LIMIT 0 clause returned all messages rather than an empty result set. (Bug #11095 (http://bugs.mysql.com/11095))

- 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 (http://bugs.mysql.com/9660))

- The server timed out SSL connections too quickly on Windows. (Bug #8572 (http://bugs.mysql.com/8572))

- Inserting a DOUBLE value into a utf8 string column crashed the server on Windows. (Bug #10714 (http://bugs.mysql.com/10714))

- Executing LOAD INDEX INTO CACHE for a table while other threads where selecting from the table caused a deadlock. (Bug #10602 (http://bugs.mysql.com/10602))

- Fixed a server crash resulting from CREATE TABLE ... SELECT that selected from a table being altered by ALTER TABLE. (Bug #10224 (http://bugs.mysql.com/10224))

- Fixed a server crash resulting from invalid string pointer when inserting into the mysql.host table. (Bug #10181 (http://bugs.mysql.com/10181))

- GROUP_CONCAT() with DISTINCT and WITH ROLLUP ignored DISTINCT for some rows. (Bug #7405 (http://bugs.mysql.com/7405))

- Fixed a problem creating the result set for a UNION that involved long string values. Values were not being converted correctly to TEXT values. (Bug #10025 (http://bugs.mysql.com/10025))

- Locking for CREATE TABLE ... SELECT for InnoDB tables was too weak. It allowed INSERT statements issued for the created table while the CREATE TABLE statement was still running to appear in the binary log before the CREATE TABLE statement. (Bug #6678 (http://bugs.mysql.com/6678))

- InnoDB: In DROP DATABASE, check for all referencing tables from other databases before dropping any tables. (Bug #10335 (http://bugs.mysql.com/10335))

- InnoDB: Fix bug: InnoDB wrongly complained in the .err log that MySQL is trying to drop a non-existent table, if tablespace ran out. (Bug #10607 (http://bugs.mysql.com/10607))

- Fixed an overly strict debugging assertion that caused debug server builds to fail for some col_name = const_expr, where const_expr was a constant expression such as a subquery. (Bug #10020 (http://bugs.mysql.com/10020))

- SUBSTR() did not work properly for input in the ucs2 character set. (Bug #10344 (http://bugs.mysql.com/10344))

- 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 (http://bugs.mysql.com/7914))

- Fixed a server crash for INSERT ... ON DUPLICATE KEY UPDATE with MERGE tables, which do not have unique indexes. (Bug #10400 (http://bugs.mysql.com/10400))

- 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 (http://bugs.mysql.com/9535))

- Portability fix for Cygwin: Don't use #pragma interface or #pragma implementation in source files. (Bug #10241 (http://bugs.mysql.com/10241))

- Fixed a mysqldump crash that occurred with the --complete-insert option when dumping tables with a large number of long column names. (Bug #10286 (http://bugs.mysql.com/10286))

- ALTER TABLE ... ENABLE INDEXES treated NULL values as equal when collecting index statistics for MyISAM tables, resulting in different statistics than generated by ANALYZE TABLE and causing the optimizer to make poor index choices later. The same problem occurred for bulk insert statistics collection. Now NULL values are treated as unequal, just as for ANALYZE TABLE. (Bug #9622 (http://bugs.mysql.com/9622))


■追加情報:

- The Novell Netware binaries are work in progress and will be published as soon as they have been finished.

- The Linux/s390 binaries could not be built due to temporary technical problems. They will be provided as soon as these have been resolved.





MyNA Web Siteにて更に多くのニュース記事をよむことができます
http://www.mysql.gr.jp/frame

このニュース記事が掲載されているURL:
http://www.mysql.gr.jp/frame/article.php?storyid=47