Dear MySQL users, We are proud to present to you the MySQL Server 5.1.16 Beta release, a new Beta version of the popular open source database.
Bear in mind that this is a beta release, and as any other pre-production release, caution should be taken when installing on production level systems or systems with critical data. For production level systems using 5.0, pay attention to the product description of MySQL Enterprise at: http://mysql.com/products/enterprise/ The MySQL 5.1.16 Beta release is now available in source and binary form for a number of platforms from our download pages at http://dev.mysql.com/downloads/ and mirror sites. Note that not all mirror sites may be up to date at this point in time, so if you can't find this version on some mirror, please try again later or choose another download site. We welcome and appreciate your feedback, bug reports, bug fixes, patches etc.: http://forge.mysql.com/wiki/Contributing The following section lists the changes from version to version in the MySQL source code through the latest released version of MySQL 5.1, the MySQL 5.1.15-beta. It can also be viewed online at http://dev.mysql.com/doc/refman/5.1/en/news-5-1-16.html Functionality added or changed: * Incompatible change: TRUNCATE TABLE now requires the DROP privilege rather than the DELETE privilege. (Bug#23556: http://bugs.mysql.com/23556). * NDB Cluster (Cluster APIs) / Incompatible change: The AbortOption type is now a member of the NdbOperation class; its values and behavior have also changed. NdbTransaction::AbortOption can no longer be used, and applications written against the NDB API may need to be rewritten and recompiled to accomodate these changes. See The NdbOperation::AbortOption Type (http://dev.mysql.com/doc/ndbapi/en/class-ndboperation-abortop tion.html), for more information. * NDB Cluster (Cluster APIs): A new ndb_mgm_get_clusterlog_loglevel() function was added to the MGM API. For more information, see ndb_mgm_get_clusterlog_loglevel() (http://dev.mysql.com/doc/ndbapi/en/ndb-mgm-get-clusterlog-log level.html). * NDB Cluster: Previously, when a data node failed more than 8 times in succession to start, this caused a forced shutdown of the cluster. Now, when a data node fails to start 7 consecutive times, the node will not start again until it is started with the --initial option, and a warning to this effect is written to the error log. (Bug#25984: http://bugs.mysql.com/25984) * NDB Cluster: A number of new and more descriptive error messages covering transporter errors were added. (Bug#22025: http://bugs.mysql.com/22025) * NDB Cluster: In the event that all cluster management and API nodes are configured with ArbitrationRank=0, ndb_mgmd now issues the following warning when starting: Cluster configuration warning: Neither MGM nor API nodes are configured with arbitrator, may cause complete cluster shutdown in case of host failure. (Bug#23546: http://bugs.mysql.com/23546) * The localhost anonymous user account created during MySQL installation on Windows now has no global privileges. Formerly this account had all global privileges. For operations that require global privileges, the root account can be used instead. (Bug#24496: http://bugs.mysql.com/24496) * In the INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS table, the UNIQUE_CONSTRAINT_NAME column incorrectly named the referenced table. Now it names the referenced constraint, and a new column, REFERENCED_TABLE_NAME, names the referenced table. (Bug#21713: http://bugs.mysql.com/21713) * RAND() now allows non-constant initializers (such as a column name) as its argument. In this case, the seed is initialized with the value for each invocation of RAND(). (One implication of this is that for equal argument values, RAND() will return the same value each time.) (Bug#6172: http://bugs.mysql.com/6172) * The bundled yaSSL library was upgraded to version 1.5.8. * CONNECTION is no longer treated as a reserved word. (Bug#12204: http://bugs.mysql.com/12204) Bugs fixed: * NDB Cluster: The InvalidUndoBufferSize error used the same error code (763) as the IncompatibleVersions error. InvalidUndoBufferSize now uses its own error code (779). (Bug#26490: http://bugs.mysql.com/26490) * NDB Cluster: Takeover for local checkpointing due to multiple failures of master nodes was sometimes incorrect handled. (Bug#26457: http://bugs.mysql.com/26457) * NDB Cluster: The LockPagesInMemory parameter was not read until after distributed communication had already started between cluster nodes. When the value of this parameter was 1, this could sometimes result in data node failure due to missed heartbeats. (Bug#26454: http://bugs.mysql.com/26454) * NDB Cluster: Under some circumstances, following the restart of a management, all cluster data nodes would connect to it normally, but some of them subsequently failed to log any events to the management node. (Bug#26293: http://bugs.mysql.com/26293) * NDB Cluster: An error was produced when SHOW TABLE STATUS was used on an NDB table that had no AUTO_INCREMENT column. (Bug#21033: http://bugs.mysql.com/21033) Note this improves on and supersedes an earlier fix that was made for this issue in MySQL 5.1.12. * NDB Cluster: When a node failed due to there being insufficient disk space to perform a local checkpoint, there was no indication that this was the source of the problem. Such a condition now produces an appropriate error message. (Bug#20121: http://bugs.mysql.com/20121) * NDB Cluster (Cluster APIs): libndbclient.so was not versioned. (Bug#13522: http://bugs.mysql.com/13522) * NDB Cluster: The ndb_size.tmpl file (necessary for using the ndb_size.pl script) was missing from binary distributions. (Bug#24191: http://bugs.mysql.com/24191) * NDB Cluster (Cluster APIs / Disk Data): A delete and a read peformed in the same operation could cause one or more of the cluster's data nodes to crash. This could occur when the operation affected more than 5 columns concurrently, or when one or more of the columns was of the VARCHAR type and was stored on disk. (Bug#25794: http://bugs.mysql.com/25794) * NDB Cluster (Replication): The error message Last_Errno: 4294967295, Error in Write_rows event now supplies a valid error code. (Bug#19896: http://bugs.mysql.com/19896) * NDB Cluster (Replication): Under some circumstances, the binlog thread could shut down while the slave SQL thread was still using it. (Bug#26015: http://bugs.mysql.com/26015, Bug#26019: http://bugs.mysql.com/26019) * NDB Cluster: A query with an IN clause against an NDB table employing explicit user-defined partitioning did not always return all matching rows. (Bug#25821: http://bugs.mysql.com/25821) * A memory leak could cause problems during a node or cluster shutdown or failure. (Bug#25997: http://bugs.mysql.com/25997) * NDB Cluster: An appropriate error message was not provided when there was insufficient REDO log file space for the cluster to start. (Bug#25801: http://bugs.mysql.com/25801) * NDB Cluster: An UPDATE using an IN clause on an NDB table on which there was a trigger caused mysqld to crash. (Bug#25522: http://bugs.mysql.com/25522) * NDB Cluster: A memory allocation failure in the cluster Subscription Manager could cause the cluster to crash. (Bug#25239: http://bugs.mysql.com/25239) * NDB Cluster: In the event that cluster backup parameters such as BackupWriteSize were incorrectly set, no appropriate error was issued to indicate that this was the case. (Bug#19146: http://bugs.mysql.com/19146) * If the duplicate key value was present in the table, INSERT ... ON DUPLICATE KEY UPDATE reported a row count indicating that a record was updated, even when no record actually changed due to the old and new values being the same. Now it reports a row count of zero. (Bug#19978: http://bugs.mysql.com/19978) * Some UPDATE statements were slower than in previous versions when the search key could not be converted to a valid value for the type of the search column. (Bug#24035: http://bugs.mysql.com/24035) * The WITH CHECK OPTION clause for views was ignored for updates of multiple-table views when the updates could not be performed on fly and the rows to update had to be put into temporary tables first. (Bug#25931: http://bugs.mysql.com/25931) * Using ORDER BY or GROUP BY could yield different results when selecting from a view and selecting from the underlying table. (Bug#26209: http://bugs.mysql.com/26209) * Storing values specified as hexadecimal values 64 or more bits long into BIT(64), BIGINT, or BIGINT UNSIGNED columns did not raise any warning or error if the value was out of range. (Bug#22533: http://bugs.mysql.com/22533) * Inserting DEFAULT into a column with no default value could result in garbage in the column. Now the same result occurs as when inserting NULL into a NOT NULL column. (Bug#20691: http://bugs.mysql.com/20691) * The presence of ORDER BY in a view definition prevented the MERGE algorithm from being used to resolve the view even if nothing else in the definition required the TEMPTABLE algorithm. (Bug#12122: http://bugs.mysql.com/12122) * ISNULL(DATE(NULL)) and ISNULL(CAST(NULL AS DATE)) erroneously returned false. (Bug#23938: http://bugs.mysql.com/23938) * If a slave server closed its relay log (for example, due to an error during log rotation), the I/O thread did not recognize this and still tried to write to the log, causing a server crash. (Bug#10798: http://bugs.mysql.com/10798) * Using an INFORMATION_SCHEMA table with ORDER BY in a subquery could cause a server crash. (Bug#24630: http://bugs.mysql.com/24630) * Collation for LEFT JOIN comparisons could be evaluated incorrectly, leading to improper query results. (Bug#26017: http://bugs.mysql.com/26017) * For the IF() and COALESCE() function and CASE expressions, large unsigned integer values could be mishandled and result in warnings. (Bug#22026: http://bugs.mysql.com/22026) * The number of setsockopt() calls performed for reads and writes to the network socket was reduced to decrease system call overhead. (Bug#22943: http://bugs.mysql.com/22943) * A WHERE clause that used BETWEEN for DATETIME values could be treated differently for a SELECT and a view defined as that SELECT. (Bug#26124: http://bugs.mysql.com/26124) * ORDER BY on DOUBLE values could change the set of rows returned by a query. (Bug#19690: http://bugs.mysql.com/19690) * LOAD DATA INFILE did not work with pipes. (Bug#25807: http://bugs.mysql.com/25807) * DISTINCT queries that were executed using a loose scan for an InnoDB table that had been emptied caused a server crash. (Bug#26159: http://bugs.mysql.com/26159) * ALTER TABLE caused loss of CASCADE clauses for InnoDB tables. (Bug#24741: http://bugs.mysql.com/24741) * Type conversion errors during formation of index search conditions were not correctly checked, leading to incorrect query results. (Bug#22344: http://bugs.mysql.com/22344) * Within a stored routine, accessing a declared routine variable with PROCEDURE ANALYSE() caused a server crash. (Bug#23782: http://bugs.mysql.com/23782) * Use of already freed memory caused SSL connections to hang forever. (Bug#19209: http://bugs.mysql.com/19209) * mysql.server stop timed out too quickly (35 seconds) waiting for the server to exit. Now it waits up to 15 minutes, to ensure that the server exits. (Bug#25341: http://bugs.mysql.com/25341) * A yaSSL program named test was installed, causing conflicts with the test system utility. It is no longer installed. (Bug#25417: http://bugs.mysql.com/25417) * perror crashed on some platforms due to failure to handle a NULL pointer. (Bug#25344: http://bugs.mysql.com/25344) * mysql_stmt_fetch() did an invalid memory deallocation when used with the embedded server. (Bug#25492: http://bugs.mysql.com/25492) * mysql_kill() caused a server crash when used on an SSL connection. (Bug#25203: http://bugs.mysql.com/25203) * The readline library wrote to uninitialized memory, causing mysql to crash. (Bug#19474: http://bugs.mysql.com/19474) * yaSSL was sensitive to the presence of whitespace at the ends of lines in PEM-encoded certificates, causing a server crash. (Bug#25189: http://bugs.mysql.com/25189) * The SEC_TO_TIME() and QUARTER() functions sometimes did not handle NULL values correctly. (Bug#25643: http://bugs.mysql.com/25643) * The optimizer used a filesort rather than a const table read in some cases when the latter was possible. (Bug#16590: http://bugs.mysql.com/16590) * With ONLY_FULL_GROUP_BY enables, the server was too strict: Some expressions involving only aggregate values were rejected as non-aggregate (for example, MAX(a) - MIN(a)). (Bug#23417: http://bugs.mysql.com/23417) * Indexes disabled with ALTER TABLE ... DISABLE KEYS could in some cases be used by specifying FORCE INDEX. (Bug#20604: http://bugs.mysql.com/20604) * The arguments of the ENCODE() and the DECODE() functions were not printed correctly, causing problems in the output of EXPLAIN EXTENDED and in view definitions. (Bug#23409: http://bugs.mysql.com/23409) * An error in the name resolution of nested JOIN ... USING constructs was corrected. (Bug#25575: http://bugs.mysql.com/25575) * A return value of -1 from user-defined handlers was not handled well and could result in conflicts with server code. (Bug#24987: http://bugs.mysql.com/24987) * The server might fail to use an appropriate index for DELETE when ORDER BY, LIMIT, and a non-restricting WHERE are present. (Bug#17711: http://bugs.mysql.com/17711) * Use of ON DUPLICATE KEY UPDATE defeated the usual restriction against inserting into a join-based view unless only one of the underlying tables is used. (Bug#25123: http://bugs.mysql.com/25123) * View definitions that used the ! operator were treated as containing the NOT operator, which has a different precedence and can produce different results. (Bug#25580: http://bugs.mysql.com/25580). * Some queries against INFORMATION_SCHEMA that used subqueries failed. (Bug#23299: http://bugs.mysql.com/23299). * For a UNIQUE index containing many NULL values, the optimizer would prefer the index for col IS NULL conditions over other more selective indexes. (Bug#25407: http://bugs.mysql.com/25407). * GROUP BY and DISTINCT did not group NULL values for columns that have a UNIQUE index. (Bug#25551: http://bugs.mysql.com/25551). * ALTER TABLE ... ENABLE KEYS acquired a global lock, preventing concurrent execution of other statements that use tables. (Bug#25044: http://bugs.mysql.com/25044). * For an InnoDB table with any ON DELETE trigger, TRUNCATE TABLE mapped to DELETE and activated triggers. Now a fast truncation occurs and triggers are not activated. (Bug#23556: http://bugs.mysql.com/23556). * For ALTER TABLE, using ORDER BY expression could cause a server crash. Now the ORDER BY clause allows only column names to be specified as sort criteria (which was the only documented syntax, anyway). (Bug#24562: http://bugs.mysql.com/24562) * readline detection did not work correctly on NetBSD. (Bug#23293: http://bugs.mysql.com/23293) * The --with-readline option for configure does not work for commercial source packages, but no error message was printed to that effect. Now a message is printed. (Bug#25530: http://bugs.mysql.com/25530) * If an ORDER BY or GROUP BY list included a constant expression being optimized away and, at the same time, containing single-row subselects that return more that one row, no error was reported. If a query requires sorting by expressions containing single-row subselects that return more than one row, execution of the query may cause a server crash. (Bug#24653: http://bugs.mysql.com/24653) * To enable installation of MySQL RPMs on Linux systems running RHEL 4 (which includes SE-Linux) additional information was provided to specify some actions that are allowed to the MySQL binaries. (Bug#12676: http://bugs.mysql.com/12676) * Queries that evaluate NULL IN (SELECT ... UNION SELECT ...) could produce an incorrect result (FALSE instead of NULL). (Bug#24085: http://bugs.mysql.com/24085) * Within stored routines or prepared statements, inconsistent results occurred with multiple use of INSERT ... SELECT ... ON DUPLICATE KEY UPDATE when the ON DUPLICATE KEY UPDATE clause erroneously tried to assign a value to a column mentioned only in its SELECT part. (Bug#24491: http://bugs.mysql.com/24491) * Expressions of the form (a, b) IN (SELECT a, MIN(b) FROM t GROUP BY a) could produce incorrect results when column a of table t contained NULL values while column b did not. (Bug#24420: http://bugs.mysql.com/24420) * Expressions of the form (a, b) IN (SELECT c, d ...) could produce incorrect results if a, b, or both were NULL. (Bug#24127: http://bugs.mysql.com/24127) * An AFTER UPDATE trigger on an InnoDB table with a composite primary key caused the server to crash. (Bug#25398: http://bugs.mysql.com/25398) * A query that contained an EXIST subquery with a UNION over correlated and uncorrelated SELECT queries could cause the server to crash. (Bug#25219: http://bugs.mysql.com/25219) * A query with ORDER BY and GROUP BY clauses where the ORDER BY clause had more elements than the GROUP BY clause caused a memory overrun leading to a crash of the server. (Bug#25172: http://bugs.mysql.com/25172) * Certain joins using Range checked for each record in the query execution plan could cause the server to crash. (Bug#24776: http://bugs.mysql.com/24776) * If a prepared statement accessed a view, access to the tables listed in the query after that view was checked in the security context of the view. (Bug#24404: http://bugs.mysql.com/24404) * A nested query on a partitioned table returned fewer records than on the corresponding non-partitioned table, when the subquery affected more than one partition. (Bug#24186: http://bugs.mysql.com/24186) * Passing a NULL value to a user-defined function from within a stored procedure crashes the server. (Bug#25382: http://bugs.mysql.com/25382) Enjoy! Sincerely, Mads Martin -- Mads Martin Joergensen, Release Manager MySQL AB, Odense, Denmark -- www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]