List:Packagers« Previous MessageNext Message »
From:Karen Langford Date:April 23 2010 8:03pm
Subject:MySQL Community Server 5.1.46 has been released
View as plain text  
Dear MySQL users,

MySQL Community Server 5.1.46, a new version of the popular Open
Source Database Management System, has been released.  MySQL 5.1.46 is
recommended for use on production systems.

For an overview of what's new in MySQL 5.1, please see

For information on installing MySQL 5.1.46 on new servers or upgrading
to MySQL 5.1.46 from previous MySQL releases, please see

MySQL Server is available in source and binary form for a number of
platforms from our download pages at

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

For information on open issues in MySQL 5.1, please see the errata
list at

The following section lists the changes in the MySQL source code since
the previous released version of MySQL 5.1.  It may also be viewed
online at


C.1.2. Changes in MySQL 5.1.46

    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
        ml) 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.

    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.

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

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

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

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

      * Replication: When run with the --database option, mysqlbinlog
        printed ROLLBACK statements but did not print any
        corresponding SAVEPOINT statements.

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

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

      * 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

      * EXPLAIN EXTENDED crashed trying to resolve references to freed
        temporary table columns for GROUP_CONCAT() ORDER BY arguments.

      * For InnoDB Plugin, bit fields were causing problems with
        concurrency on SMP systems because of word-packing issues.

      * The optimizer could attempt to evaluate the WHERE clause
        before any rows had been read, resulting in a server crash.

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

      * After TRUNCATE TABLE of a MyISAM table, subsequent queries
        could crash the server if myisam_use_mmap was enabled.

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

      * 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.
        See also Bug#8115:,

      * The optimizer performed an incorrect join type when COALESCE()
        appeared within an IN() operation.

      * The server crashed when the optimizer attempted to determine
        constant tables but a table storage engine did not support
        exact record count.

      * The server could crash populating the
        INFORMATION_SCHEMA.PROCESSLIST table due to lack of mutex

      * Use of HANDLER statements with tables that had spatial indexes
        caused a server crash.

      * With an XA transaction active, SET autocommit = 1 could cause
        side effects such as memory corruption or a server crash.

      * Following a bulk insert into a MyISAM table, if MyISAM failed
        to build indexes using repair by sort, data file corruption
        could occur.

      * CHECKSUM TABLE could compute the checksum for BIT columns

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

      * The YEAR values 2000 and 0000 could be treated as equal.

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

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

      * If a stored function contained a RETURN statement with an ENUM
        value in the ucs2 character set, SHOW CREATE FUNCTION and
        returned incorrect values.

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

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

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

      * Killing a query during the optimization phase of a subquery
        could cause a server crash.

      * The query shown by EXPLAIN EXTENDED plus SHOW WARNINGS could
        produce results different from the original query.

      * Renaming a column of an InnoDB table caused the server to go
        out of sync with the InnoDB data dictionary.

      * MyISAM could write uninitialized data to new index pages. Now
        zeros are written to unused bytes in the pages.

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

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

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

      * mysql_upgrade did not create temporary files properly.

      * It was possible for DROP TABLE of one MyISAM table to remove
        the data and index files of a different MyISAM table.

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

      * 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
        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
        As part of this fix, aliases are now generated only for
        top-level statements.

      * While looking for the shortest index for a covering index
        scan, the optimizer ignored that a clustered primary key read
        the entire table.

      * mysqlbinlog had a memory leak in its option-processing code.

      * The test for readline during configuration failed when trying
        to build MySQL in a directory other than the source tree root.


Hery Ramilison, Karen Langford, MySQL Release Engineers
Database Group, Oracle.

MySQL Community Server 5.1.46 has been releasedKaren Langford23 Apr