This is a Monthly Rapid Update release of the MySQL Enterprise Server 5.0.
This section documents all changes and bug fixes that have been applied since the last MySQL Enterprise Server release (5.0.42).
Functionality added or changed:
MySQL Cluster: The server source tree now includes scripts to simplify building MySQL with SCI support. For more information about SCI interconnects and these build scripts, see Section 17.3.5.1, “Configuring MySQL Cluster to use SCI Sockets”. (Bug#25470)
        Enterprise builds did not include the CSV
        storage engine. CSV is now included in
        Enterprise builds for all platforms except Windows, QNX, and
        NetWare.
       (Bug#28844)
        INSERT DELAYED statements on
        BLACKHOLE tables are now rejected, due to the
        fact that the BLACKHOLE storage engine does
        not support them.
       (Bug#27998)
        A new status variable, Com_call_procedure,
        indicates the number of calls to stored procedures.
       (Bug#27994)
Bugs fixed:
Security Fix: A malformed password packet in the connection protocol could cause the server to crash. Thanks for Dormando for reporting this bug, and for providing details and a proof of concept. (Bug#28984, CVE-2007-3780)
Security Fix: 
        CREATE TABLE LIKE did not require any
        privileges on the source table. Now it requires the
        SELECT privilege.
      
        In addition, CREATE TABLE LIKE was not
        isolated from alteration by other connections, which resulted in
        various errors and incorrect binary log order when trying to
        execute concurrently a CREATE TABLE LIKE
        statement and either DDL statements on the source table or DML
        or DDL statements on the target table.
       (Bug#23667, Bug#25578, CVE-2007-3781)
Incompatible Change: 
        The names of stored functions referenced by views were not
        properly displayed by SHOW CREATE
        VIEW.
      
The fix corrects a problem introduced by Bug#23491. There is an incompatibility when upgrading from versions affected by that bug fix (MySQL 5.0.40 through 5.0.43, MySQL 5.1.18 through 5.1.19): If you use mysqldump before upgrading from an affected version and reload the data after upgrading to a higher version, you must drop and recreate your views. (Bug#28605)
Incompatible Change: 
        When mysqldump was run with the
        --delete-master-logs option,
        binary log files were deleted before it was known that the dump
        had succeeded, not after. (The method for removing log files
        used RESET MASTER prior to the
        dump. This also reset the binary log sequence numbering to
        .000001.) Now mysqldump
        flushes the logs (which creates a new binary log number with the
        next sequence number), performs the dump, and then uses
        PURGE BINARY LOGS to remove the
        log files older than the new one. This also preserves log
        numbering because the new log with the next number is generated
        and only the preceding logs are removed. However, this may
        affect applications if they rely on the log numbering sequence
        being reset.
       (Bug#24733)
Incompatible Change: 
        The use of an ORDER BY or
        DISTINCT clause with a query containing a
        call to the GROUP_CONCAT()
        function caused results from previous queries to be redisplayed
        in the current result. The fix for this includes replacing a
        BLOB value used internally for
        sorting with a VARCHAR. This
        means that for long results (more than 65,535 bytes), it is
        possible for truncation to occur; if so, an appropriate warning
        is issued.
       (Bug#23856, Bug#28273)
MySQL Cluster: A corrupt schema file could cause a File already open error. (Bug#28770)
MySQL Cluster: 
        UPDATE IGNORE statements involving the
        primary keys of multiple tables could result in data corruption.
       (Bug#28719)
MySQL Cluster: 
        A race condition could result when nonmaster nodes (in addition
        to the master node) tried to update active status due to a local
        checkpoint (that is, between NODE_FAILREP and
        COPY_GCIREQ events). Now only the master
        updates the active status.
       (Bug#28717)
MySQL Cluster: A fast global checkpoint under high load with high usage of the redo buffer caused data nodes to fail. (Bug#28653)
MySQL Cluster: 
        When an API node sent more than 1024 signals in a single batch,
        NDB would process only the first
        1024 of these, and then hang.
       (Bug#28443)
MySQL Cluster: 
        A delay in obtaining AUTO_INCREMENT IDs could
        lead to excess temporary errors.
       (Bug#28410)
MySQL Cluster: A failure to release internal resources following an error could lead to problems with single user mode. (Bug#25818)
Replication: 
        The result of executing of a prepared statement created with
        PREPARE s FROM "SELECT 1 LIMIT ?" was not
        replicated correctly.
       (Bug#28464)
Replication: Recreating a view that already exists on the master would cause a replicating slave to terminate replication with a 'different error message on slave and master' error. (Bug#28244)
Replication: Binary logging of prepared statements could produce syntactically incorrect queries in the binary log, replacing some parameters with variable names rather than variable values. This could lead to incorrect results on replication slaves. (Bug#26842, Bug#12826)
Replication: 
        Connections from one mysqld server to another
        failed on Mac OS X, affecting replication and
        FEDERATED tables.
       (Bug#26664)
See also Bug#29083.
Replication: When using transactions and replication, shutting down the master in the middle of a transaction would cause all slaves to stop replicating. (Bug#22725)
Replication: 
        Using CREATE TABLE LIKE ... would raise an
        assertion when replicated to a slave.
       (Bug#18950)
        On the IBM i5 platform, the installation script in the
        .savf binaries unconditionally executed the
        mysql_install_db script. This problem was
        fixed in a repackaged distribution numbered 5.0.44b.
       (Bug#30084)
Long path names for internal temporary tables could cause stack overflows. (Bug#29015)
        Using an INTEGER column from a
        table to ROUND() a number
        produced different results than using a constant with the same
        value as the INTEGER column.
       (Bug#28980)
        If a program binds a given number of parameters to a prepared
        statement handle and then somehow changes
        stmt->param_count to a different number,
        mysql_stmt_execute() could crash
        the client or server.
       (Bug#28934)
        INSERT .. ON DUPLICATE KEY UPDATE could under
        some circumstances silently update rows when it should not have.
       (Bug#28904)
        Queries that used UUID() were
        incorrectly allowed into the query cache. (This should not
        happen because UUID() is
        nondeterministic.)
       (Bug#28897)
        Using a VIEW created with a nonexisting
        DEFINER could lead to incorrect results under
        some circumstances.
       (Bug#28895)
        For InnoDB tables that use the
        utf8 character set, incorrect results could
        occur for DML statements such as
        DELETE or
        UPDATE that use an index on
        character-based columns.
       (Bug#28878)
See also Bug#29449, Bug#30485, Bug#31395.
This regression was introduced by Bug#13195.
        On Windows, USE_TLS was not defined for
        mysqlclient.lib.
       (Bug#28860)
        A subquery with ORDER BY and LIMIT
        1 could cause a server crash.
       (Bug#28811)
        Using BETWEEN with nonindexed date
        columns and short formats of the date string could return
        incorrect results.
       (Bug#28778)
        Selecting GEOMETRY columns in a
        UNION caused a server crash.
       (Bug#28763)
        When constructing the path to the original
        .frm file, ALTER ..
        RENAME was unnecessarily (and incorrectly) lowercasing
        the entire path when not on a case-insensitive file system,
        causing the statement to fail.
       (Bug#28754)
        Searches on indexed and nonindexed
        ENUM columns could return
        different results for empty strings.
       (Bug#28729)
        Executing EXPLAIN
        EXTENDED on a query using a derived table over a
        grouping subselect could lead to a server crash. This occurred
        only when materialization of the derived tables required
        creation of an auxiliary temporary table, an example being when
        a grouping operation was carried out with usage of a temporary
        table.
       (Bug#28728)
        The result of evaluation for a view's CHECK
        OPTION option over an updated record and records of
        merged tables was arbitrary and dependant on the order of
        records in the merged tables during the execution of the
        SELECT statement.
       (Bug#28716)
The “manager thread” of the LinuxThreads implementation was unintentionally started before mysqld had dropped privileges (to run as an unprivileged user). This caused signaling between threads in mysqld to fail when the privileges were finally dropped. (Bug#28690)
        For debug builds, ALTER TABLE
        could trigger an assertion failure due to occurrence of a
        deadlock when committing changes.
       (Bug#28652)
        Killing from one connection a long-running EXPLAIN
        QUERY started from another connection caused
        mysqld to crash.
       (Bug#28598)
        Outer join queries with ON conditions over
        constant outer tables did not return
        NULL-complemented rows when conditions were
        evaluated to FALSE.
       (Bug#28571)
        An update on a multiple-table view with the CHECK
        OPTION clause and a subquery in the
        WHERE condition could cause an assertion
        failure.
       (Bug#28561)
        PURGE MASTER LOGS BEFORE
        ( caused a server
        crash. Subqueries are forbidden in the subquery)BEFORE
        clause now.
       (Bug#28553)
mysqldump calculated the required memory for a hex-blob string incorrectly causing a buffer overrun. This in turn caused mysqldump to crash silently and produce incomplete output. (Bug#28522)
        Passing a DECIMAL value as a
        parameter of a statement prepared with
        PREPARE resulted in an error.
       (Bug#28509)
        mysql_affected_rows() could
        return an incorrect result for
        INSERT ...
        ON DUPLICATE KEY UPDATE if the
        CLIENT_FOUND_ROWS flag was set.
       (Bug#28505)
A query that grouped by the result of an expression returned a different result when the expression was assigned to a user variable. (Bug#28494)
        Subselects returning LONG values in MySQL
        versions later than 5.0.24a returned LONGLONG
        prior to this. The previous behavior was restored.
       (Bug#28492)
This regression was introduced by Bug#19714.
        Forcing the use of an index on a
        SELECT query when the index had
        been disabled would raise an error without running the query.
        The query now executes, with a warning generated noting that the
        use of a disabled index has been ignored.
       (Bug#28476)
        The query SELECT '2007-01-01' + INTERVAL
         caused
        mysqld to fail.
       (Bug#28450)column_name DAY FROM
        table_name
        A server crash could happen under rare conditions such that a
        temporary table outgrew heap memory reserved for it and the
        remaining disk space was not big enough to store the table as a
        MyISAM table.
       (Bug#28449)
mysql_upgrade failed if certain SQL modes were set. Now it sets the mode itself to avoid this problem. (Bug#28401)
        The test case for mysqldump failed with
        bin-log disabled.
       (Bug#28372)
        Attempting to LOAD_FILE from an empty floppy
        drive under Windows, caused the server to hang. For example, if
        you opened a connection to the server and then issued the
        command SELECT LOAD_FILE('a:test');, with no
        floppy in the drive, the server was inaccessible until the modal
        pop-up dialog box was dismissed.
       (Bug#28366)
        A buffer overflow could occur when using
        DECIMAL columns on Windows
        operating systems.
       (Bug#28361)
        libmysql.dll could not be dynamically loaded
        on Windows.
       (Bug#28358)
        Grouping queries with correlated subqueries in
        WHERE conditions could produce incorrect
        results.
       (Bug#28337)
mysqltest used a too-large stack size on PPC/Debian Linux, causing thread-creation failure for tests that use many threads. (Bug#28333)
        EXPLAIN for a query on an empty
        table immediately after its creation could result in a server
        crash.
       (Bug#28272)
        The IS_UPDATABLE column in the
        INFORMATION_SCHEMA.VIEWS table was
        not always set correctly.
       (Bug#28266)
        Comparing a DATETIME column value
        with a user variable yielded incorrect results.
       (Bug#28261)
        For CAST() of a
        NULL value with type
        DECIMAL, the return value was
        incorrectly initialized, producing a runtime error for binaries
        built using Visual C++ 2005.
       (Bug#28250)
        Portability problems caused by use of isinf()
        were corrected.
       (Bug#28240)
        When dumping procedures, mysqldump
        --compact  generated
        output that restored the session variable
        sql_mode without first
        capturing it. When dumping routines, mysqldump
        --compact  neither
        set nor retrieved the value of
        sql_mode.
       (Bug#28223)
        Comparison of the string value of a date showed as unequal to
        CURTIME(). Similar behavior was
        exhibited for DATETIME values.
       (Bug#28208)
        The Bytes_received and
        Bytes_sent status variables
        could hold only 32-bit values (not 64-bit values) on some
        platforms.
       (Bug#28149)
        Storing a large number into a
        FLOAT or
        DOUBLE column with a fixed length
        could result in incorrect truncation of the number if the
        column's length was greater than 31.
       (Bug#28121)
        DECIMAL values beginning with
        nine 9 digits could be incorrectly rounded.
       (Bug#27984)
        The second execution of a prepared statement from a
        UNION query with ORDER
        BY RAND() caused the server to crash. This problem
        could also occur when invoking a stored procedure containing
        such a query.
       (Bug#27937)
        For attempts to open a nonexistent table, the server should
        report ER_NO_SUCH_TABLE but
        sometimes reported
        ER_TABLE_NOT_LOCKED.
       (Bug#27907)
A stored program that uses a variable name containing multibyte characters could fail to execute. (Bug#27876)
        ON conditions from JOIN
        expressions were ignored when checking the CHECK
        OPTION clause while updating a multiple-table view
        that included such a clause.
       (Bug#27827)
        On some systems, udf_example.c returned an
        incorrect result length. Also on some systems,
        mysql-test-run.pl could not find the shared
        object built from udf_example.c.
       (Bug#27741)
        HASH indexes on
        VARCHAR columns with binary
        collations did not ignore trailing spaces from strings before
        comparisons. This could result in duplicate records being
        successfully inserted into a MEMORY table
        with unique key constraints. A consequence was that internal
        MEMORY tables used for GROUP
        BY calculation contained duplicate rows that resulted
        in duplicate-key errors when converting those temporary tables
        to MyISAM, and that error was incorrectly
        reported as a table is full error.
       (Bug#27643)
An error occurred trying to connect to mysqld-debug.exe. (Bug#27597)
        Selecting MIN() on an indexed
        column that contained only NULL values caused
        NULL to be returned for other result columns.
       (Bug#27573)
If a stored function or trigger was killed, it aborted but no error was thrown, allowing the calling statement to continue without noticing the problem. This could lead to incorrect results. (Bug#27563)
        When ALTER TABLE was used to add
        a new DATE column with no
        explicit default value, '0000-00-00' was used
        as the default even if the SQL mode included the
        NO_ZERO_DATE mode to prohibit
        that value. A similar problem occurred for
        DATETIME columns.
       (Bug#27507)
        Using a TEXT local variable in a
        stored routine in an expression such as SET
         produced
        an incorrect result.
       (Bug#27415)var =
        SUBSTRING(var, 3)
        The error message for error number 137 did
        not report which database/table combination reported the
        problem.
       (Bug#27173)
A large filesort could result in a division by zero error and a server crash. (Bug#27119)
Some test suite files were missing from some MySQL-test packages. (Bug#26609)
        Statements within triggers ignored the value of the
        low_priority_updates system
        variable.
       (Bug#26162)
See also Bug#29963.
        Running CHECK TABLE concurrently
        with a SELECT,
        INSERT or other statement on
        Windows could corrupt a MyISAM table.
       (Bug#25712)
On Windows, connection handlers did not properly decrement the server's thread count when exiting. (Bug#25621)
        Due to a race condition, executing
        FLUSH
        PRIVILEGES in one thread could cause brief table
        unavailability in other threads.
       (Bug#24988)
When mysqld was run as a Windows service, shared memory objects were not created in the global namespace and could not be used by clients to connect. (Bug#24731)
        On some Linux distributions where LinuxThreads and NPTL
        glibc versions both are available, statically
        built binaries can crash because the linker defaults to
        LinuxThreads when linking statically, but calls to external
        libraries (such as libnss) are resolved to
        NPTL versions. This cannot be worked around in the code, so
        instead if a crash occurs on such a binary/OS combination, print
        an error message that provides advice about how to fix the
        problem.
       (Bug#24611)
        Implicit conversion of 9912101 to
        DATE did not match
        CAST(9912101 AS DATE).
       (Bug#23093)
        Conversion errors could occur when constructing the condition
        for an IN predicate. The predicate was
        treated as if the affected column contains
        NULL, but if the IN
        predicate is inside NOT, incorrect results
        could be returned.
       (Bug#22855)
        Linux binaries were unable to dump core after executing a
        setuid() call.
       (Bug#21723)
Stack overflow caused server crashes. (Bug#21476)
        CURDATE() is less than
        NOW(), either when comparing
        CURDATE() directly
        (CURDATE() < NOW() is true) or when
        casting CURDATE() to
        DATE (CAST(CURDATE() AS
        DATE) < NOW() is true). However, storing
        CURDATE() in a
        DATE column and comparing
          incorrectly yielded false. This is fixed by
        comparing a col_name <
        NOW()DATE column as
        DATETIME for comparisons to a
        DATETIME constant.
       (Bug#21103)
        For dates with 4-digit year parts less than 200, an incorrect
        implicit conversion to add a century was applied for date
        arithmetic performed with
        DATE_ADD(),
        DATE_SUB(), +
        INTERVAL, and - INTERVAL. (For
        example, DATE_ADD('0050-01-01 00:00:00',
        INTERVAL 0 SECOND) became '2050-01-01
        00:00:00'.)
       (Bug#18997)
Granting access privileges to an individual table where the database or table name contained an underscore would fail. (Bug#18660)
        The -lmtmalloc library was removed from the
        output of mysql_config on Solaris, as it
        caused problems when building DBD::mysql (and
        possibly other applications) on that platform that tried to use
        dlopen() to access the client library.
       (Bug#18322)
The check-cpu script failed to detect AMD64 Turion processors correctly. (Bug#17707)
        Trying to shut down the server following a failed
        LOAD DATA
        INFILE caused mysqld to crash.
       (Bug#17233)
Using up-arrow for command-line recall in mysql could cause a segmentation fault. (Bug#10218)
        The result for CAST() when
        casting a value to UNSIGNED was limited to
        the maximum signed BIGINT value
        (9223372036854775808), rather than the maximum unsigned value
        (18446744073709551615).
       (Bug#8663)

User Comments
Add your own comment.