This is a Monthly Rapid Update release of the MySQL Enterprise Server 5.0.
This section documents all changes and bugfixes that have been applied since the last MySQL Enterprise Server release (5.0.50). If you would like to receive more fine-grained and personalized update alerts about fixes that are relevant to the version and features you use, please consider subscribing to MySQL Enterprise (a commercial MySQL offering). For more details please see http://www.mysql.com/products/enterprise/advisors.html.
Functionality added or changed:
        mysqldump produces a -- Dump
        completed on  comment
        at the end of the dump if
        DATE--comments is given. The date
        causes dump files for identical data take at different times to
        appear to be different. The new options
        --dump-date and
        --skip-dump-date
        control whether the date is added to the comment.
        --skip-dump-date
        suppresses date printing. The default is
        --dump-date (include the date
        in the comment).
       (Bug#31077)
        The default value of the
        connect_timeout system variable
        was increased from 5 to 10 seconds. This might help in cases
        where clients frequently encounter errors of the form
        Lost connection to MySQL server at
        '.
       (Bug#28359)XXX', system error:
        errno
        The use of InnoDB hash indexes now can be
        controlled by setting the new
        innodb_adaptive_hash_index
        system variable at server startup. By default, this variable is
        enabled. See Section 13.2.10.4, “Adaptive Hash Indexes”.
      
Bugs fixed:
Security Fix: 
        Using RENAME TABLE against a
        table with explicit DATA DIRECTORY and
        INDEX DIRECTORY options can be used to
        overwrite system table information by replacing the symbolic
        link points. the file to which the symlink points.
      
MySQL will now return an error when the file to which the symlink points already exists. (Bug#32111, CVE-2007-5969)
Security Fix: 
        ALTER VIEW retained the original
        DEFINER value, even when altered by another
        user, which could allow that user to gain the access rights of
        the view. Now ALTER VIEW is
        allowed only to the original definer or users with the
        SUPER privilege.
       (Bug#29908)
Security Fix: 
        When using a FEDERATED table, the local
        server could be forced to crash if the remote server returned a
        result with fewer columns than expected.
       (Bug#29801)
Incompatible Change: 
        With ONLY_FULL_GROUP_BY SQL
        mode enabled, queries such as SELECT a FROM t1 HAVING
        COUNT(*)>2 were not being rejected as they should
        have been.
      
This fix results in the following behavior:
            There is a check against mixing group and nongroup columns
            only when
            ONLY_FULL_GROUP_BY is
            enabled.
          
            This check is done both for the select list and for the
            HAVING clause if there is one.
          
This behavior differs from previous versions as follows:
            Previously, the HAVING clause was not
            checked when
            ONLY_FULL_GROUP_BY was
            enabled; now it is checked.
          
            Previously, the select list was checked even when
            ONLY_FULL_GROUP_BY was not
            enabled; now it is checked only when
            ONLY_FULL_GROUP_BY is
            enabled.
          
Incompatible Change: It was possible to create a view having a column whose name consisted of an empty string or space characters only.
        One result of this bug fix is that aliases for columns in the
        view SELECT statement are checked to ensure
        that they are legal column names. In particular, the length must
        be within the maximum column length of 64 characters, not the
        maximum alias length of 256 characters. This can cause problems
        for replication or loading dump files. For additional
        information and workarounds, see
        Section D.4, “Restrictions on Views”.
       (Bug#27695)
See also Bug#31202.
Incompatible Change: 
        Several type-preserving functions and operators returned an
        incorrect result type that does not match their argument types:
        COALESCE(),
        IF(),
        IFNULL(),
        LEAST(),
        GREATEST(),
        CASE. These now aggregate using the
        precise SQL types of their arguments rather than the internal
        type. In addition, the result type of the
        STR_TO_DATE() function is now
        DATETIME by default.
       (Bug#27216)
MySQL Cluster: 
        An uninitialized variable in the
        NDB storage engine code led to
        AUTO_INCREMENT failures when the server was
        compiled with gcc 4.2.1.
       (Bug#31848)
This regression was introduced by Bug#27437.
MySQL Cluster: 
        An error with an if statement in
        sql/ha_ndbcluster.cc could potentially lead
        to an infinite loop in case of failure when working with
        AUTO_INCREMENT columns in
        NDB tables.
       (Bug#31810)
MySQL Cluster: 
        The NDB storage engine code was not
        safe for strict-alias optimization in gcc
        4.2.1.
       (Bug#31761)
MySQL Cluster: Transaction timeouts were not handled well in some circumstances, leading to excessive number of transactions being aborted unnecessarily. (Bug#30379)
MySQL Cluster: In some cases, the cluster managment server logged entries multiple times following a restart of mgmd. (Bug#29565)
MySQL Cluster: An interpreted program of sufficient size and complexity could cause all cluster data nodes to shut down due to buffer overruns. (Bug#29390)
MySQL Cluster: 
        UPDATE IGNORE could sometimes fail on
        NDB tables due to the use of
        unitialized data when checking for duplicate keys to be ignored.
       (Bug#25817)
Replication: 
        Use of the @@hostname system variable in
        inserts in mysql_system_tables_data.sql did
        not replicate. The workaround is to select its value into a user
        variable (which does replicate) and insert that.
       (Bug#31167)
A build problem introduced in MySQL 5.0.52 was resolved: The x86 32-bit Intel icc-compiled server binary had unwanted dependences on Intel icc runtime libraries. (Bug#32514)
The rules for valid column names were being applied differently for base tables and views. (Bug#32496)
        The default grant tables on Windows contained information for
        host production.mysql.com, which should not
        be there.
       (Bug#32219)
        Under certain conditions, the presence of a GROUP
        BY clause could cause an ORDER BY
        clause to be ignored.
       (Bug#32202)
        The server crashed on optimizations involving a join of
        INT and
        MEDIUMINT columns and a system
        variable in the WHERE clause.
       (Bug#32103)
        User-defined functions are not loaded if the server is started
        with the --skip-grant-tables
        option, but the server did not properly handle this case and
        issued an Out of memory error message
        instead.
       (Bug#32020)
A column with malformed multi-byte characters could cause the full-text parser to go into an infinite loop. (Bug#31950)
        In debug builds, testing the result of an IN
        subquery against NULL caused an assertion
        failure.
       (Bug#31884)
        Comparison results for BETWEEN were
        different from those for operators like
        < and
        > for
        DATETIME-like values with
        trailing extra characters such as '2007-10-01 00:00:00
        GMT-6'. BETWEEN treated
        the values as DATETIME, whereas
        the other operators performed a binary-string comparison. Now
        they all uniformly use a DATETIME
        comparison, but generate warnings for values with trailing
        garbage.
       (Bug#31800)
        The server could crash during filesort for
        ORDER BY based on expressions with
        INET_NTOA() or
        OCT() if those functions returned
        NULL.
       (Bug#31758)
        For a fatal error during a filesort in
        find_all_keys(), the error was returned
        without the necessary handler uninitialization, causing an
        assertion failure.
       (Bug#31742)
        The examined-rows count was not incremented for
        const queries.
       (Bug#31700)
        The mysql_change_user() C API
        function was subject to buffer overflow.
       (Bug#31669)
        For SELECT ... INTO
        OUTFILE, if the ENCLOSED BY string
        is empty and the FIELDS TERMINATED BY string
        started with a special character (one of n,
        t, r,
        b, 0,
        Z, or N), every occurrence
        of the character within field values would be duplicated.
       (Bug#31663)
        SHOW COLUMNS and
        DESCRIBE displayed
        null as the column type for a view with no
        valid definer. This caused mysqldump to
        produce a nonreloadable dump file for the view.
       (Bug#31662)
        The mysqlbug script did not include the
        correct values of CFLAGS and
        CXXFLAGS that were used to configure the
        distribution.
       (Bug#31644)
        A buffer used when setting variables was not dimensioned to
        accommodate the trailing '\0' byte, so a
        single-byte buffer overrun was possible.
       (Bug#31588)
        HAVING could treat lettercase of table
        aliases incorrectly if
        lower_case_table_names was
        enabled.
       (Bug#31562)
        The fix for Bug#24989 introduced a problem such that a
        NULL thread handler could be used during a
        rollback operation. This problem is unlikely to be seen in
        practice.
       (Bug#31517)
        The length of the result from
        IFNULL() could be calculated
        incorrectly because the sign of the result was not taken into
        account.
       (Bug#31471)
        Queries that used the ref
        access method or index-based subquery execution over indexes
        that have DECIMAL columns could
        fail with an error Column
        .
       (Bug#31450)col_name cannot be null
        SELECT 1 REGEX NULL caused an assertion
        failure for debug servers.
       (Bug#31440)
        Executing RENAME while tables were open for
        use with HANDLER statements could
        cause a server crash.
       (Bug#31409)
        mysql-test-run.pl tried to create files in a
        directory where it could not be expected to have write
        permission. mysqltest created
        .reject files in a directory other than the
        one where test results go.
       (Bug#31398)
        For an almost-full MyISAM table, an insert
        that failed could leave the table in a corrupt state.
       (Bug#31305)
        CONVERT( would fail on invalid input, but processing
        was not aborted for the val,
        DATETIME)WHERE clause, leading
        to a server crash.
       (Bug#31253)
Allocation of an insufficiently large group-by buffer following creation of a temporary table could lead to a server crash. (Bug#31249)
        Use of DECIMAL( in
        n,
        n) ZEROFILLGROUP_CONCAT() could cause a
        server crash.
       (Bug#31227)
        WIth small values of
        myisam_sort_buffer_size,
        REPAIR TABLE for
        MyISAM tables could cause a server crash.
       (Bug#31174)
        If MAKETIME() returned
        NULL when used in an ORDER
        BY that was evaluated using
        filesort, a server crash could result.
       (Bug#31160)
        Full-text searches on ucs2 columns caused a
        server crash. (FULLTEXT indexes on
        ucs2 columns cannot be used, but it should be
        possible to perform IN BOOLEAN MODE searches
        on ucs2 columns without a crash.)
       (Bug#31159)
        An assertion designed to detect a bug in the
        ROLLUP implementation would incorrectly be
        triggered when used in a subquery context with noncacheable
        statements.
       (Bug#31156)
        Selecting spatial types in a
        UNION could cause a server crash.
       (Bug#31155)
        Use of GROUP_CONCAT(DISTINCT
         caused an
        assertion failure.
       (Bug#31154)bit_column)
        GROUP BY NULL WITH ROLLUP could cause a
        server crash.
       (Bug#31095)
See also Bug#32558.
        Internal conversion routines could fail for several multi-byte
        character sets (big5,
        cp932, euckr,
        gb2312, sjis) for empty
        strings or during evaluation of SOUNDS
        LIKE.
       (Bug#31069, Bug#31070)
        The MOD() function and the
        % operator crashed the server for a divisor
        less than 1 with a very long fractional part.
       (Bug#31019)
        On Windows, the pthread_mutex_trylock()
        implementation was incorrect.
       (Bug#30992)
A character set introducer followed by a hexadecimal or bit-value literal did not check its argument and could return an ill-formed result for invalid input. (Bug#30986)
        CHAR( did not check its
        argument and could return an ill-formed result for invalid
        input.
       (Bug#30982)str USING
        charset)
        The result from
        CHAR() did not add a leading 0x00 byte for input
        strings with an odd number of bytes.
       (Bug#30981)str USING
        ucs2
        The GeomFromText() function could
        cause a server crash if the first argument was
        NULL or the empty string.
       (Bug#30955)
        MAKEDATE() incorrectly moved year
        values in the 100–200 range into the 1970–2069
        range. (This is legitimate for 00–99, but three-digit
        years should be used unchanged.)
       (Bug#30951)
        When invoked with constant arguments,
        STR_TO_DATE() could use a cached
        value for the format string and return incorrect results.
       (Bug#30942)
        GROUP_CONCAT() returned
        ',' rather than an empty string when the
        argument column contained only empty strings.
       (Bug#30897)
        For MEMORY tables, lookups for
        NULL values in BTREE
        indexes could return incorrect results.
       (Bug#30885)
        Calling NAME_CONST() with
        nonconstant arguments triggered an assertion failure.
        Nonconstant arguments are now disallowed.
       (Bug#30832)
        For a spatial column with a regular
        (non-SPATIAL) index, queries failed if the
        optimizer tried to use the index.
       (Bug#30825)
        Values for the --tc-heuristic-recover option
        incorrectly were treated as values for the
        --myisam-stats-method option.
       (Bug#30821)
        On Windows, the pthread_mutex_trylock()
        implementation was incorrect. One symptom was that invalidating
        the query cache could cause a server crash.
       (Bug#30768)
        Under some circumstances,
        CREATE TABLE ...
        SELECT could crash the server or incorrectly report
        that the table row size was too large.
       (Bug#30736)
        Using the MIN() or
        MAX() function to select one part
        of a multi-part key could cause a crash when the function result
        was NULL.
       (Bug#30715)
        The optimizer could ignore ORDER BY in cases
        when the result set is ordered by filesort,
        resulting in rows being returned in incorrect order.
       (Bug#30666)
        MyISAM tables could not exceed 4294967295
        (232 – 1) rows on Windows.
       (Bug#30638)
        For MEMORY tables,
        DELETE statements that remove
        rows based on an index read could fail to remove all matching
        rows.
       (Bug#30590)
        Using GROUP BY on an expression of the form
        timestamp_col DIV
        number
        When expanding a * in a
        USING or NATURAL join, the
        check for table access for both tables in the join was done
        using only the grant information of the first table.
       (Bug#30468)
        Versions of mysqldump from MySQL 4.1 or
        higher tried to use START TRANSACTION WITH CONSISTENT
        SNAPSHOT if the
        --single-transaction and
        --master-data options were
        given, even with servers older than 4.1 that do not support
        consistent snapshots.
       (Bug#30444)
Setting certain values on a table using a spatial index could cause the server to crash. (Bug#30286)
        Some INFORMATION_SCHEMA tables are intended
        for internal use, but could be accessed by using
        SHOW statements.
       (Bug#30079)
        Specifying the --without-geometry option for
        configure caused server compilation to fail.
       (Bug#29972)
Under some circumstances, a UDF initialization function could be passed incorrect argument lengths. (Bug#29804)
        configure did not find nss
        on some Linux platforms.
       (Bug#29658)
        The log and
        log_slow_queries system
        variables were displayed by SHOW
        VARIABLES but could not be accessed in expressions as
        @@log and
        @@log_slow_queries. Also, attempting to set
        them with SET produced an incorrect
        Unknown system variable message. Now these
        variables can be accessed in expressions and attempting to set
        their values produces an error message that the variable is read
        only.
       (Bug#29131)
        SHOW VARIABLES did not display
        the relay_log,
        relay_log_index, or
        relay_log_info_file system variables.
       (Bug#28893)
        On Windows, mysql_upgrade created temporary
        files in C:\ and did not clean them up.
       (Bug#28774)
Index hints specified in view definitions were ignored when using the view to select from the base table. (Bug#28702)
Views do not have indexes, so index hints do not apply. Use of index hints when selecting from a view is now disallowed. (Bug#28701)
After changing the SQL mode to a restrictive value that would make already-inserted dates in a column be considered invalid, searches returned different results depending on whether the column was indexed. (Bug#28687)
        The result from CHAR() was
        incorrectly assumed in some contexts to return a single-byte
        result.
       (Bug#28550)
        The parser confused user-defined function (UDF) and stored
        function creation for CREATE
        FUNCTION and required that there be a default database
        when creating UDFs, although there is no such requirement.
       (Bug#28318, Bug#29816)
        The result of a comparison between
        VARBINARY and
        BINARY columns differed depending
        on whether the VARBINARY column
        was indexed.
       (Bug#28076)
        The metadata in some MYSQL_FIELD members
        could be incorrect when a temporary table was used to evaluate a
        query.
       (Bug#27990)
comp_err created files with permissions such that they might be inaccessible during make install operations. (Bug#27789)
The anonymous accounts were not being created during MySQL installation. (Bug#27692)
        Host names sometimes were treated as case sensitive in
        account-management statements (CREATE
        USER, GRANT,
        REVOKE, and so forth).
       (Bug#19828)
        The readline library has been updated to
        version 5.2. This addresses issues in the
        mysql client where history and editing within
        the client would fail to work as expected.
       (Bug#18431)
        The Aborted_clients status
        variable was incremented twice if a client exited without
        calling mysql_close().
       (Bug#16918)
Clients were ignoring the TCP/IP port number specified as the default port via the --with-tcp-port configuration option. (Bug#15327)
        Values of types REAL ZEROFILL,
        DOUBLE ZEROFILL, FLOAT
        ZEROFILL, were not zero-filled when converted to a
        character representation in the C prepared statement API.
       (Bug#11589)
        mysql stripped comments from statements sent
        to the server. Now the
        --comments or
        --skip-comments option can be
        used to control whether to retain or strip comments. The default
        is --skip-comments.
       (Bug#11230, Bug#26215)
Several buffer-size system variables were either being handled incorrectly for large values (for settings larger than 4GB, they were truncated to values less than 4GB without a warning), or were limited unnecessarily to 4GB even on 64-bit systems. The following changes were made:
            For key_buffer_size, values
            larger than 4GB are allowed on 64-bit platforms (except
            Windows, for which large values are truncated to 4GB with a
            warning).
          
            For join_buffer_size,
            sort_buffer_size, and
            myisam_sort_buffer_size,
            values are limited to 4GB on all platforms. Larger values
            are truncated to 4GB with a warning.
          
        In addition, settings for
        read_buffer_size and
        read_rnd_buffer_size are
        limited to 2GB on all platforms. Larger values are truncated to
        2GB with a warning.
       (Bug#5731, Bug#29419, Bug#29446)
        Executing DISABLE KEYS and ENABLE
        KEYS on a nonempty table would cause the size of the
        index file for the table to grow considerable. This was because
        the DISABLE KEYS operation would only mark
        the existing index, without deleting the index blocks. The
        ENABLE KEYS operation would re-create the
        index, adding new blocks, while the previous index blocks would
        remain. Existing indexes are now dropped and recreated when the
        ENABLE KEYS statement is executed.
       (Bug#4692)


User Comments
Add your own comment.