MySQL 5.1.29rc版がリリースされました。


最も普及しているオープンソースデータベースの新たなリリース候補であるMySQL 5.1.29rc版がリリースされました。

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


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








Functionality added or changed:

  * Important Change: The --skip-thread-priority option is now
    deprecated in MySQL 5.1 and is removed in MySQL 6.0 such that
    the server won't change the thread priorities by default.

    Giving threads different priorities might yield marginal
    improvements in some platforms (where it actually works), but
    it might instead cause significant degradation depending on
    the thread count and number of processors. Meddling with the
    thread priorities is a not a safe bet as it is very dependent
    on the behavior of the CPU scheduler and system where MySQL is
    being run.

  * Important Change: The --log option now is deprecated and will
    be removed (along with the log system variable) in the future.
    Instead, use the --general_log option to enable the general
    query log and the --general_log_file=file_name option to set
    the general query log filename. The values of these options
    are available in the general_log and general_log_file system
    variables, which can be changed at runtime.

    Similar changes were made for the --log-slow-queries option
    and log_slow_queries system variable. You should use the
    --slow_query_log and --slow_query_log_file=file_name options
    instead (and the slow_query_log and slow_query_log_file system

  * The SHOW PROFILES and SHOW PROFILE statements were added to
    display statement profile data, and the accompanying
    "INFORMATION_SCHEMA.PROFILING" table. Profiling is controlled
    via the 'profiling' and 'profiling_history_size' session
    variables. (Community contribution by Jeremy Cole)

  * The BUILD/compile-solaris-* scripts now compile MySQL with the
    mtmalloc library rather than malloc.

Bugs fixed:

  * Incompatible Change: Replication: The default binary logging
    mode has been changed from MIXED to STATEMENT for
    compatibility with MySQL 5.0.

  * Incompatible Change: In connection with view creation, the
    server created arc directories inside database directories and
    maintained useless copies of .frm files there. Creation and
    renaming procedures of those copies as well as creation of arc
    directories has been discontinued.

    This change does cause a problem when downgrading to older
    server versions which manifests itself under these

      1. Create a view v_orig in MySQL 5.1.29 or higher.
      2. Rename the view to v_new and then back to v_orig.
      3. Downgrade to an older 5.1.x server and run mysql_upgrade.
      4. Try to rename v_orig to v_new again. This operation

    As a workaround to avoid this problem, use either of these
       + Dump your data using mysqldump before downgrading and
         reload the dump file after downgrading.
       + Instead of renaming a view after the downgrade, drop it
         and recreate it.
    See also Bug#40021:http://bugs.mysql.com/40021

  * Important Change: Replication: The SUPER privilege is now
    required to change the session value of binlog_format as well
    as its global value. For more information about binlog_format,
    see Section 15.1.2, "Replication Formats."

  * Partitioning: Replication: Replication to partitioned MyISAM
    tables could be slow with row-based binary logging.

  * Partitioning: If an error occurred when evaluating a column of
    a partitioned table for the partitioning function, the row
    could be inserted anyway.

  * Partitioning: Using INSERT ... SELECT to insert records into a
    partitioned MyISAM table could fail if some partitions were
    empty and others are not.

  * Partitioning: Ordered range scans on partitioned tables were
    not always handled correctly. In some cases this caused some
    rows to be returned twice. The same issue also caused GROUP BY
    query results to be aggregated incorrectly.

  * Replication: Server code used in binary logging could in some
    cases be invoked even though binary logging was not actually
    enabled, leading to asserts and other server errors.

  * Replication: Replication of BLACKHOLE tables did not work with
    row-based binary logging.

  * Replication: In some cases, a replication master sent a
    special event to a reconnecting slave to keep the slave's
    temporary tables, but they still had references to the "old"
    slave SQL thread and used them to access that thread's data.

  * Replication: Replication filtering rules were inappropiately
    applied when executing BINLOG pseudo-queries. One way in which
    this problem showed itself was that, when replaying a binary
    log with mysqlbinlog, RBR events were sometimes not executed
    if the --replicate-do-db option was specified. Now replication
    rules are applied only to those events executed by the slave
    SQL thread.

  * Replication: For a CREATE TABLE ... SELECT statement that
    creates a table in a database other than the current one, the
    table could be created in the wrong database on replication
    slaves if row-based binary logging is used.

  * Replication: A statement did not always commit or roll back
    correctly when the server was shut down; the error could be
    triggered by having a failing UPDATE or INSERT statement on a
    transactional table, causing an implicit rollback.
    See also Bug#38262:http://bugs.mysql.com/38262

  * CHECK TABLE ... FOR UPGRADE did not check for incompatible
    collation changes made in MySQL 5.0.48.

  * The Sun Studio compiler failed to build debug versions of the
    server due to use of features specific to gcc.

  * For a TIMESTAMP column in an InnoDB table, testing the column
    with multiple conditions in the WHERE clause caused a server crash.

  * References to local variables in stored procedures are
    replaced with NAME_CONST(name, value) when written to the
    binary log. However, an "illegal mix of collation" error might
    occur when executing the log contents if the value's collation
    differed from that of the variable. Now information about the
    variable collation is written as well.

  * Queries of the form SELECT ... REGEXP BINARY NULL could lead
    to a hung or crashed server.

  * Statements of the form INSERT ... SELECT .. ON DUPLICATE KEY
    UPDATE col_name = DEFAULT could result in a server crash.

  * Column names constructed due to wild-card expansion done
    inside a stored procedure could point to freed memory if the
    expansion was performed after the first call to the stored
    procedure. (Bug#38823:http://bugs.mysql.com/38823)

  * Repeated CREATE TABLE ... SELECT statements, where the created
    table contained an AUTO_INCREMENT column, could lead to an
    assertion failure. (Bug#38821:http://bugs.mysql.com/38821)

  * For deadlock between two transactions that required a timeout
    to resolve, all server tables became inaccessible for the
    duration of the deadlock.

  * When inserting a string into a duplicate-key error message,
    the server could improperly interpret the string, resulting in
    a crash. (Bug#38701:http://bugs.mysql.com/38701)

  * A race condition between threads sometimes caused unallocated
    memory to be addressed.

  * A server crash resulted from concurrent execution of a
    multiple-table UPDATE that used a NATURAL or USING join
    the table being updated.

  * On ActiveState Perl, mysql-test-run.pl --start-and-exit
    started but did not exit.

  * An uninitialized variable in the query profiling code was
    corrected (detected by Valgrind).

  * A server crash resulted from execution of an UPDATE that used
    a derived table together with FLUSH TABLES.

  * Stored procedures involving substrings could crash the server
    on certain platforms due to invalid memory reads.

  * The handlerton-to-plugin mapping implementation did not free
    handler plugin references when the plugin was uninstalled,
    resulting in a server crash after several install/uninstall
    cycles. Also, on Mac OS X, the server crashed when trying to
    access an EXAMPLE table after the EXAMPLE plugin was

  * The server crashed if an argument to a stored procedure was a
    subquery that returned more than one row.

  * When analyzing the possible index use cases, the server was
    incorrectly reusing an internal structure, leading to a server

  * Access checks were skipped for SHOW PROCEDURE STATUS and SHOW
    FUNCTION STATUS, which could lead to a server crash or
    insufficient access checks in subsequent statements.

  * The <=> operator could return incorrect results when comparing
    NULL to DATE, TIME, or DATETIME values.

  * The combination of a subquery with a GROUP BY, an aggregate
    function calculated outside the subquery, and a GROUP BY on
    the outer SELECT could cause the server to crash.

  * The NO_BACKSLASH_ESCAPES SQL mode was ignored for LOAD DATA
    INFILE and SELECT INTO ... OUTFILE. The setting is taken into
    account now.

  * In some cases, references to views were confused with
    references to anonymous tables and privilege checking was not

  * For crash reports on Windows, symbol names in stack traces
    were not correctly resolved.

  * ALTER EVENT changed the PRESERVE attribute of an event even
    when PRESERVE was not specified in the statement.

  * Hostname values in SQL statements were not being checked for
   '@', which is illegal according to RFC952.

  * mysql_install_db failed on machines that had the hostname set
    to localhost.

  * Dynamic plugins failed to load on i5/OS.

  * With the PAD_CHAR_TO_FULL_LENGTH SQL mode enabled, a ucs2 CHAR
    column returned additional garbage after trailing space

  * With binary logging enabled, CREATE TABLE ... SELECT failed if
    the source table was a log table.

  * A trigger for an InnoDB table activating multiple times could
    lead to AUTO_INCREMENT gaps.

  * mysqldump could fail to dump views containing a large number
    of columns.

  * The server could improperly type user-defined variables used
    in the select list of a query.

  * For access to the INFORMATION_SCHEMA.VIEWS table, the server
    did not check the SHOW VIEW and SELECT provileges, leading to
    inconsistency between output from that table and the SHOW
    CREATE VIEW statement.

  * 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.