Support Ending for AIX 5.2: Per the MySQL Support Lifecycle policy regarding ending support for OS versions that have reached vendor end of life, we plan to discontinue building or supporting MySQL binaries for AIX 5.2 as of April 30, 2009. The next release of MySQL 5.1 (5.1.34) will be the last MySQL 5.1 release with support for AIX 5.2. For more information, see the March 24, 2009 note at MySQL Product Support EOL Announcements.
Functionality added or changed:
Performance: 
        The query cache now checks whether a
        SELECT statement begins with
        SQL_NO_CACHE to determine whether it can skip
        checking for the query result in the query cache. This is not
        supported when SQL_NO_CACHE occurs within a
        comment.
       (Bug#37416)
        mysql-test-run.pl now supports an
        --experimental=
        option. It enables you to specify a file that contains a list of
        test cases that should be displayed with the file_name[ exp-fail
        ] code rather than [ fail ] if they
        fail.
       (Bug#42888)
The MD5 algorithm now uses the Xfree implementation. (Bug#42434)
Bugs fixed:
Partitioning: A duplicate key error raised when inserting into a partitioned table used a different error code from that returned by such an error raised when inserting into a table that was not partitioned. (Bug#38719)
See also Bug#28842.
Partitioning: Several error messages relating to partitioned tables were incorrect or missing. (Bug#36001)
Replication: 
        When --binlog_format was set to
        STATEMENT, a statement unsafe for
        statement-based logging caused an error or warning to be issued
        even if sql_log_bin was set to
        0.
       (Bug#41980)
Replication: 
        When using MIXED replication format and
        temporary tables were created in statement-based mode, but a
        later operation in the same session caused a switch to row-based
        mode, the temporary tables were not dropped on the slave at the
        end of the session.
       (Bug#40013)
See also Bug#43046.
This regression was introduced by Bug#20499.
Replication: 
        When using the MIXED replication format,
        UPDATE and
        DELETE statements that searched
        for rows where part of the key had nullable
        BIT columns failed. This occurred
        because operations that inserted the data were replicated as
        statements, but UPDATE and
        DELETE statements affecting the
        same data were replicated using row-based format.
      
This issue did not occur when using statement-based replication (only) or row-based replication (only). (Bug#39753)
See also Bug#39648.
Replication: 
        The server SQL mode in effect when a stored procedure was
        created was not retained in the binary log. This could cause a
        CREATE PROCEDURE statement that
        succeeded on the master to fail on the slave.
      
        This issue was first noticed when a stored procedure was created
        when ANSI_QUOTES was in effect
        on the master, but could possibly cause failed
        CREATE PROCEDURE statements and
        other problems on the slave when using other server SQL modes as
        well.
       (Bug#39526)
Replication: 
        If --secure-file-priv was set on
        the slave, it was unable to execute
        LOAD DATA
        INFILE statements sent from the master when using
        mixed-format or statement-based replication.
      
        As a result of this fix, this security restriction is now
        ignored on the slave in such cases; instead the slave checks
        whether the files were created and should be read by the slave
        in its --slave-load-tmpdir.
       (Bug#38174)
Replication: Server IDs greater than 2147483647 (232 – 1) were represented by negative numbers in the binary log. (Bug#37313)
Replication: 
        When its disk becomes full, a replication slave may wait while
        writing the binary log, relay log or
        MyISAM tables, continuing after
        space has been made available. The error message provided in
        such cases was not clear about the frequency with which checking
        for free space is done (once every 60 seconds), and how long the
        server waits after space has been freed before continuing (also
        60 seconds); this caused users to think that the server had
        hung.
      
These issues have been addressed by making the error message clearer, and dividing it into two separate messages:
            The error message Disk is full writing
            'filename' (Errcode:
            error_code). Waiting for someone
            to free space... (Expect up to 60 secs delay for server to
            continue after freeing disk space) is printed
            only once.
          
The warning Retry in 60 secs, Message reprinted in 600 secs is printed once every for every 10 times that the check for free space is made; that is, the check is performed once each 60 seconds, but the reminder that space needs to be freed is printed only once every 10 minutes (600 seconds).
Replication: 
        The statements
        DROP PROCEDURE
        IF EXISTS and
        DROP FUNCTION IF
        EXISTS were not written to the binary log if the
        procedure or function to be dropped did not exist.
       (Bug#13684)
See also Bug#25705.
        The IBM DB2i storage engine has been added to this release for
        the IBM i Series platform. For more information, see
        The IBMDB2I Storage Engine.
       (Bug#44217)
        On 64-bit debug builds, code in safemalloc
        resulted in errors due to use of a 32-bit value for 64-bit
        allocations.
       (Bug#43885)
        make distcheck failed to properly handle
        subdirectories of storage/ndb.
       (Bug#43614)
        Use of USE INDEX hints could cause
        EXPLAIN
        EXTENDED to crash.
       (Bug#43354)
        For InnoDB tables, overflow in an
        AUTO_INCREMENT column could cause a server
        crash.
       (Bug#43203)
On 32-bit Windows, mysqld could not use large buffers due to a 2GB user mode address limit. (Bug#43082)
        stderr should be unbuffered, but when the
        server redirected stderr to a file, it became
        buffered.
       (Bug#42790)
        The DATA_TYPE column of the
        INFORMATION_SCHEMA.COLUMNS table
        displayed the UNSIGNED attribute for
        floating-point data types. (The column should contain only the
        data type name.)
       (Bug#42758)
        For InnoDB tables, spurious duplicate-key
        errors could occur when inserting into an
        AUTO_INCREMENT column.
       (Bug#42714)
        mysqldump included views that were excluded
        with the --ignore-table
        option.
       (Bug#42635)
        An earlier bug fix resulted in the problem that the
        InnoDB plugin could not be used with a server
        that was compiled with the built-in InnoDB.
        To handle this two changes were made:
      
            The server now supports an
            --ignore-builtin-innodb
            option that causes the server to behave as if the built-in
            InnoDB is not present. This option causes
            other InnoDB options not to be
            recognized.
          
            For the INSTALL PLUGIN
            statement, the server reads option
            (my.cnf) files just as during server
            startup. This enables the plugin to pick up any relevant
            options from those files. Consequently, a plugin no longer
            is started with each option set to its default value.
          
            Because of this change, it is possible to add plugin options
            to an option file even before loading a plugin (if the
            loose prefix is used). It is also
            possible to uninstall a plugin, edit
            my.cnf, and install the plugin again.
            Restarting the plugin this way enables it to the new option
            values without a server restart.
          
          InnoDB Plugin versions 1.0.4 and higher
          will take advantage of this bug fix. Although the
          InnoDB Plugin is source code compatible
          with multiple MySQL releases, a given binary
          InnoDB Plugin can be used only with a
          specific MySQL release. When InnoDB Plugin
          1.0.4 is released, it is expected to be compiled for MySQL
          5.1.34. For 5.1.33, you can use InnoDB
          Plugin 1.0.3, but you must build from source.
        
This regression was introduced by Bug#29263.
        With the ONLY_FULL_GROUP_BY
        SQL mode enabled, some legal queries failed.
       (Bug#42567)
Tables could enter open table cache for a thread without being properly cleaned up, leading to a server crash. (Bug#42419)
        For InnoDB tables, inserting into
        floating-point AUTO_INCREMENT columns failed.
       (Bug#42400)
        The InnoDB
        btr_search_drop_page_hash_when_freed()
        function had a race condition.
       (Bug#42279)
        For InnoDB tables, there was a race condition
        for ALTER TABLE,
        OPTIMIZE TABLE,
        CREATE INDEX, and
        DROP INDEX operations when
        periodically checking whether table copying can be committed.
       (Bug#42152)
        Parsing of the optional microsecond component of
        DATETIME values did not fail
        gracefully when that component width was larger than the allowed
        six places.
       (Bug#42146)
        In InnoDB recovery after a server crash,
        table lookup could fail and corrupt the data dictionary cache.
       (Bug#42075)
        mysqldumpslow parsed the
        --debug and
        --verbose options
        incorrectly.
       (Bug#42027)
Queries that used the loose index scan access method could return no rows. (Bug#41610)
        In InnoDB recovery after a server crash,
        rollback of a transaction that updated a column from
        NULL to NULL could cause
        another crash.
       (Bug#41571)
        The error message for a too-long column comment was
        Unknown error rather than a more appropriate
        message.
       (Bug#41465)
        Use of SELECT * allowed users with rights to
        only some columns of a view to access all columns.
       (Bug#41354)
        If the tables underlying a MERGE table had a
        primary key but the MERGE table itself did
        not, inserting a duplicate row into the MERGE
        table caused a server crash.
       (Bug#41305)
        The server did not robustly handle problems hang if a table
        opened with HANDLER needed to be
        re-opened because it had been altered to use a different storage
        engine that does not support
        HANDLER. The server also failed
        to set an error if the re-open attempt failed. These problems
        could cause the server to crash or hang.
       (Bug#41110, Bug#41112)
        SELECT statements executed
        concurrently with INSERT
        statements for a MyISAM table could cause
        incorrect results to be returned from the query cache.
       (Bug#41098)
        For prepared statements, multibyte character sets were not
        taking into account when calculating
        max_length for string values and
        mysql_stmt_fetch() could return
        truncated strings.
       (Bug#41078)
Deprecation warnings that referred to MySQL 5.2 were changed to refer to MySQL 6.0. (Bug#41077)
For user-defined variables in a query result, incorrect length values were returned in the result metadata. (Bug#41030)
        On Windows, starting the server with an invalid value for
        innodb_flush_method caused a
        crash.
       (Bug#40757)
MySQL 5.1 crashed with index merge algorithm and merge tables.
A query in the MyISAM merge table caused a crash if the index merge algorithm was being used. (Bug#40675)
With strict SQL mode enabled, setting a system variable to an out-of-bounds value caused an assertion failure. (Bug#40657)
        Table temporary scans were slower than necessary due to use of
        mmap rather than caching, even with the
        myisam_use_mmap system variable
        disabled.
       (Bug#40634)
For a view that references a table in another database, mysqldump wrote the view name qualified with the current database name. This makes it impossible to reload the dump file into a different database. (Bug#40345)
        On platforms where long and pointer variables have different
        sizes, MyISAM could copy key statistics
        incorrectly, resulting in a server crash or incorrect
        cardinality values.
       (Bug#40321)
        DELETE tried to acquire write
        (not read) locks for tables accessed within a subquery of the
        WHERE clause.
       (Bug#39843)
perror did not produce correct output for error codes 153 to 163. (Bug#39370)
        Several functions in libmysqld called
        exit() when an error occurred rather than
        returning an error to the caller.
       (Bug#39289)
        The innodb_log_arch_dir system
        variable is no longer available but was present in some of the
        sample option files included with MySQL distributions (such as
        my-huge.cnf). The line was present as a
        comment but uncommenting it would cause server startup failure
        so the line has been removed.
       (Bug#38249)
        Setting a savepoint with the same name as an existing savepoint
        incorrectly deleted any other savepoints that had been set in
        the meantime. For example, setting savepoints named
        a, b,
        c, b resulted in
        savepoints a, b, rather
        than the correct savepoints a,
        c, b.
       (Bug#38187)
        --help output for
        myisamchk did not list the
        --HELP option.
       (Bug#38103)
        Comparisons between row constructors, such as (a, b) =
        (c, d) resulted in unnecessary Illegal mix of
        collations errors for string columns.
       (Bug#37601)
If a user created a view that referenced tables for which the user had disjoint privileges, an assertion failure occurred. (Bug#37191)
        An argument to the MATCH()
        function that was an alias for an expression other than a column
        name caused a server crash.
       (Bug#36737)
        The event, general_log,
        and slow_log tables in the
        mysql database store
        server_id values, but did not
        use an UNSIGNED column and thus were not able
        to store the full range of ID values.
       (Bug#36540)
        On Windows, the _PC macro in
        my_global.h was causing problems for modern
        compilers. It has been removed because it is no longer used.
       (Bug#34309)
        For DROP FUNCTION with names that
        were qualified with a database name, the database name was
        handled in case-sensitive fashion even with
        lower_case_table_names set to
        1.
       (Bug#33813)
        mysqldump --compatible=mysql40 emitted
        statements referring to the
        character_set_client system
        variable, which is unknown before MySQL 4.1. Now the statements
        are enclosed in version-specific comments.
       (Bug#33550)
        Detection by configure of several functions
        such as setsockopt(),
        bind(), sched_yield(), and
        gtty() could fail.
       (Bug#31506)
        Use of MBR spatial functions such as
        MBRTouches() with columns of
        InnoDB tables caused a server crash rather
        than an error.
       (Bug#31435)
        The mysql client mishandled input parsing if
        a delimiter command was not first on the
        line.
       (Bug#31060)
        SHOW PRIVILEGES listed the
        CREATE ROUTINE privilege as
        having a context of Functions,Procedures, but
        it is a database-level privilege.
       (Bug#30305)
        mysqld --help did not work as
        root.
       (Bug#30261)
        CHECK TABLE,
        REPAIR TABLE,
        ANALYZE TABLE, and
        OPTIMIZE TABLE erroneously
        reported a table to be corrupt if the table did not exist or the
        statement was terminated with
        KILL.
       (Bug#29458)
        SHOW TABLE STATUS could fail to
        produce output for tables with non-ASCII characters in their
        name.
       (Bug#25830)
Allocation of stack space for error messages could be too small on HP-UX, leading to stack overflow crashes. (Bug#21476)
Floating-point numbers could be handled with different numbers of digits depending on whether the text or prepared-statement protocol was used. (Bug#21205)
        Incorrect length metadata could be returned for LONG
        TEXT columns when a multibyte server character set was
        used.
       (Bug#19829)
        ROUND() sometimes returned
        different results on different platforms.
       (Bug#15936)


User Comments
Add your own comment.