2007.03.01

MySQL

MySQL 5.1.16ベータ版がリリースされました。

オリジナル版:http://dev.mysql.com/doc/refman/5.1/en/news-5-1-16.html

最も普及しているオープンソースデータベースの新ベータバージョンであるMySQL 5.1.16ベータ版がリリースされました。

これはベータ版であり、他の多くの試作商品リリースと同様、商品レベルのシステムまたは、重要なデータを含むシステムに対してインストールしないように注意してください。5.0使用の商品レベルのシステムについては、以下のMySQL Enterpriseの商品説明のページをご覧ください。

http://mysql.com/products/enterprise/

MySQL 5.1.16ベータ版は、http://dev.mysql.com/downloads/とミラーサイトのダウンロード・ページから、ソースコード及び多くのプラットフォームのためのバイナリで現在利用可能です。

すべてのミラーサイトが現在、最新であるとは限らないことに注意してください。
あるミラーサイトでこのバージョンを見つけることができない場合は、再度確認を行うか、あるいは別のダウンロード・サイトを選択してください。

バグレポート、バグ修正、パッチ等の情報をお待ちしておりますので、以下のページをご利用ください。

http://forge.mysql.com/wiki/Contributing

以下のセクションはMySQL5.1の最も最近にリリースされたバージョンであるMySQL5.1.15ベータ版と比較してのMySQLソースコードにおけるバージョン間の変更を記載しています。

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)