2010-04-26

MySQL 5.1.46

MySQL 5.1.46MySQL Community Edition is a freely downloadable version of the world's most popular open source database that is supported by an active community of open source developers and enthusiasts.

MySQL delivers enterprise features, including:

* Partitioning to improve performance and management of very large database environments
* Row-based/Hybrid Replication for improved replication security
* Event Scheduler to create and schedule jobs that perform various database tasks
* XPath Support
* Dynamic General/Slow Query Log
* Performance/Load Testing Utility (mysqlslap)
* Improved! Full Text Search (faster, new dev templates)
* Improved! Archive engine (better compression, more features)
* Improved! User session and problem SQL identification
* Improved! MySQL embedded library (libmysqld)
* Additional INFORMATION_SCHEMA objects
* Faster data import operations (parallel file load)
* ACID Transactions to build reliable and secure business critical applications
* Stored Procedures to improve developer productivity
* Triggers to enforce complex business rules at the database level
* Views to ensure sensitive information is not compromised
* Information Schema to provide easy access to metadata
* Pluggable Storage Engine Architecture for maximum flexibility
* Archive Storage Engine for historical and audit data

Title: MySQL 5.1.46
Filename: mysql-essential-5.1.46-win32.msi
File size: 39.08MB (40,977,920 bytes)
Requirements: Windows 9x / 2000 / XP / 2003 / Vista / Windows7
Languages: en-US
License: Open Source
Date added: April 23, 2010
Author: MySQL AB
www.mysql.com


Change Log:

#InnoDB Plugin Notes:

* InnoDB Plugin has been upgraded to version 1.0.7. This version is considered of General Availability (GA) quality. The InnoDB Plugin Change History may contain information in addition to those changes reported here.

* In this release, the InnoDB Plugin is included in source and binary distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64, ia64), and generic Linux RPM packages. It also does not work for FreeBSD 6 and HP-UX or for Linux on generic ia64.

#Functionality added or changed:

* There is a new system variable, skip_name_resolve, that is set from the value of the --skip-name-resolve server option. This provides a way to determine at runtime whether the server uses name resolution for client connections. (Bug#37168)

# Bugs fixed:

* Security Fix: Privilege checking for UNINSTALL PLUGIN was incorrect. (Bug#51770)
* Partitioning: Partition pruning on RANGE partitioned tables did not always work correctly; the last partition was not excluded if the range was beyond it (when not using MAXVALUE). Now the last partition is not included if the partitioning function value is not within the range. (Bug#51830)
* Partitioning: The insert_id server system variable was not reset following an insert that failed on a partitioned MyISAM table having an AUTO_INCREMENT column. (Bug#50392)
* Partitioning: Foreign keys are not supported on partitioned tables. However, it was possible via an ALTER TABLE statement to set a foreign key on a partitioned table; it was also possible to partition a table with a single foreign key. (Bug#50104)
* Partitioning: GROUP BY queries performed poorly for some partitioned tables. This was due to the block size not being set for partitioned tables, thus the keys per block was not correct, which could cause such queries to be optimized incorrectly. (Bug#48229) See also Bug#37252.
* Partitioning: REPAIR TABLE failed for partitioned ARCHIVE tables. (Bug#46565)
* Replication: TRUNCATE TABLE performed on a temporary table using the InnoDB storage engine was logged even when using row-based mode. (Bug#51251)
* Replication: When using temporary tables the binary log needs to insert a pseudo-thread ID for threads that are using temporary tables, each time a switch happens between two threads, both of which are using temporary tables. However, if a thread issued a failing statement before exit, its ID was not recorded in the binary log, and this in turn caused the ID for the next thread that tried to do something with a temporary table not to be logged as well. Subsequent replays of the binary log failed with the error Table ... doesn't exist. (Bug#51226)
* Replication: If the master was using sql_mode='TRADITIONAL', duplicate key errors were not sent to the slave, which received 0 rather than the expected error code. This caused replication to fail even when such an error was expected. (Bug#51055)
* Replication: When run with the --database option, mysqlbinlog printed ROLLBACK statements but did not print any corresponding SAVEPOINT statements. (Bug#50407)
* Replication: CREATE EVENT statements were padded with “garbage” characters when written to the binary log, which caused a syntax error when trying to read back from the log. (Bug#50095)
* Replication: Column length information generated by InnoDB did not match that generated by MyISAM, which caused invalid metadata to be written to the binary log when trying to replicate BIT columns. (Bug#49618)
* Replication: The value of Slave_IO_running in the output of SHOW SLAVE STATUS did not distinguish between all 3 possible states of the slave I/O thread (not running; running but not connected; connected). Now the value Connecting (rather than No) is shown when the slave I/O thread is running but the slave is not connected to a replication master. The server system variable Slave_running also reflects this change, and is now consistent with what is shown for Slave_IO_running. (Bug#30703, Bug#41613, Bug#51089)
* EXPLAIN EXTENDED crashed trying to resolve references to freed temporary table columns for GROUP_CONCAT() ORDER BY arguments. (Bug#52397)
* For InnoDB Plugin, bit fields were causing problems with concurrency on SMP systems because of word-packing issues. (Bug#52360)
* The optimizer could attempt to evaluate the WHERE clause before any rows had been read, resulting in a server crash. (Bug#52177)
* For LDML-defined collations, some data structures were not initialized properly to enable UPPER() and LOWER() to work correctly. (Bug#51976)
* On Windows, LOAD_FILE() could cause a crash for some pathnames. (Bug#51893)
* Invalid memory reads occurred for HANDLER ... READ NEXT after a failed HANDLER ... READ FIRST. (Bug#51877)
* After TRUNCATE TABLE of a MyISAM table, subsequent queries could crash the server if myisam_use_mmap was enabled. (Bug#51868)
* If myisam_sort_buffer_size was set to a small value, table repair for MyISAM tables with FULLTEXT indexes could crash the server. (Bug#51866)
* In LOAD DATA INFILE, using a SET clause to set a column equal to itself caused a server crash. (Bug#51850)
* A problem with equality propagation optimization for prepared statements and stored procedures caused a server crash upon re-execution of the prepared statement or stored procedure. (Bug#51650) See also Bug#8115, Bug#8849.
* The optimizer performed an incorrect join type when COALESCE() appeared within an IN() operation. (Bug#51598)
* The server crashed when the optimizer attempted to determine constant tables but a table storage engine did not support exact record count. (Bug#51494)
* The server could crash populating the INFORMATION_SCHEMA.PROCESSLIST table due to lack of mutex protection. (Bug#51377)
* Use of HANDLER statements with tables that had spatial indexes caused a server crash. (Bug#51357)
* With an XA transaction active, SET autocommit = 1 could cause side effects such as memory corruption or a server crash. (Bug#51342)
* Following a bulk insert into a MyISAM table, if MyISAM failed to build indexes using repair by sort, data file corruption could occur. (Bug#51307)
* CHECKSUM TABLE could compute the checksum for BIT columns incorrectly. (Bug#51304)
* A HAVING clause on a joined table in some cases failed to eliminate rows which should have been excluded from the result set. (Bug#51242)
* The type inference used for view columns caused some columns in views to be handled as the wrong type, as compared to the same columns in base tables. DATE columns in base tables were treated as TIME columns in views, and base table TIME columns as view DATETIME columns. (Bug#50918)
* The YEAR values 2000 and 0000 could be treated as equal. (Bug#49910)
* Performing a single in-place ALTER TABLE containing ADD INDEX and DROP INDEX options that used the same index name could result in a corrupt table definition file. Now such ALTER TABLE statements are no longer performed in place. (Bug#49838)
* mysql_upgrade did not detect when CSV log tables incorrectly contained columns that could be NULL. Now these columns are altered to be NOT NULL. (Bug#49823)
* If a stored function contained a RETURN statement with an ENUM value in the ucs2 character set, SHOW CREATE FUNCTION and SELECT DTD_IDENTIFIER FROM INFORMATION_SCHEMA.ROUTINES returned incorrect values. (Bug#48766)
* The server crashed when it could not determine the best execution plan for queries involving outer joins with nondeterministic ON clauses such as the ones containing the RAND() function, a user-defined function, or a NOT DETERMINISTIC stored function. (Bug#48483)
* A query that read from a derived table (of the form SELECT ... FROM (SELECT ...)) produced incorrect results when the following conditions were present:
- The table subquery contained a derived query ((SELECT ... ) AS column).
- The derived query could potentially produce zero rows or a single NULL (that is, no rows matched, or the query used an aggregate function such as SUM() running over zero rows).
- The table subquery joined at least two tables.
- The join condition involved an index. (Bug#47904)
* The optimization to read MIN() or MAX() values from an index did not properly handle comparisons with NULL values. This could produce incorrect results for MIN() or MAX()when the WHERE clause tested a NOT NULL column for NULL. (Bug#47762)
* Killing a query during the optimization phase of a subquery could cause a server crash. (Bug#47761)
* The query shown by EXPLAIN EXTENDED plus SHOW WARNINGS could produce results different from the original query. (Bug#47669)
* Renaming a column of an InnoDB table caused the server to go out of sync with the InnoDB data dictionary. (Bug#47621)
* MyISAM could write uninitialized data to new index pages. Now zeros are written to unused bytes in the pages. (Bug#47598)
* Setting myisam_repair_threads larger than 1 could result in the cardinality for all indexes of a MyISAM table being set to 1 after parallel index repair. (Bug#47444)
* In debug builds, if the listed columns in the view definition of the table used in an INSERT ... SELECT statement mismatched, an assertion was raised in the query cache invalidation code following the failing statement. (Bug#46615)
* For a query that selected from a view and used an alias for the view, the metadata used the alias name rather than the view name in the MYSQL_FIELD.table member. (Bug#41788)
* mysql_upgrade did not create temporary files properly. (Bug#41057)
* It was possible for DROP TABLE of one MyISAM table to remove the data and index files of a different MyISAM table. (Bug#40980)
* If the arguments to a CONCAT() call included a local routine variable, selecting the return value into a user variable could produce an incorrect result. (Bug#40625)
* SHOW CREATE VIEW returned invalid SQL if the definition contained a SELECT 'string' statement where the string was longer than the maximum length of a column name, due to the fact that this text was also used as an alias (in the AS clause). Because not all names retrieved from arbitrary SELECT statements can be used as view column names due to length and format restrictions, the server now checks the conformity of automatically generated column names and rewrites according to a predefined format any names that are not acceptable as view column names before storing the final view definition on disk. In such cases, the name is now rewritten as Name_exp_pos, where pos is the position of the column. To avoid this conversion scheme, define explicit, valid names for view columns using the column_list clause of the CREATE VIEW statement. As part of this fix, aliases are now generated only for top-level statements. (Bug#40277)
* While looking for the shortest index for a covering index scan, the optimizer ignored that a clustered primary key read the entire table. (Bug#39653)
* mysqlbinlog had a memory leak in its option-processing code. (Bug#38468)
* The test for readline during configuration failed when trying to build MySQL in a directory other than the source tree root. (Bug#35250)

0 comments:

Post a Comment