This is a new Beta development release, fixing recently discovered bugs.
This Beta release, as any other pre-production release, should not be installed on production level systems or systems with critical data. It is good practice to back up your data before installing any new version of software. Although MySQL has worked very hard to ensure a high level of quality, protect your data by making a backup as you would for any software beta release. Please refer to our bug database at http://bugs.mysql.com/ for more details about the individual bugs fixed in this version.
This section documents all changes and bug fixes that have been applied since the last official MySQL release. 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.
Functionality added or changed:
Incompatible Change: 
        INSERT DELAYED is now downgraded
        to a normal INSERT if the
        statement uses functions that access tables or triggers, or that
        is called from a function or a trigger.
      
This was done to resolve the following interrelated issues:
            The server could abort or deadlock for
            INSERT DELAYED statements for
            which another insert was performed implicitly (for example,
            via a stored function that inserted a row).
          
            A trigger using an INSERT
            DELAYED caused the error INSERT DELAYED
            can't be used with table ... because it is locked with LOCK
            TABLES although the target table was not
            actually locked.
          
            INSERT DELAYED into a table
            with a BEFORE INSERT or AFTER
            INSERT trigger gave an incorrect
            NEW pseudocolumn value and caused the
            server to deadlock or abort.
          
MySQL Cluster: 
        Formerly, restoring a cluster backup made on a MySQL 5.0 Cluster
        to a 5.1 cluster using a 5.1 version of
        ndb_restore did not resize
        VARCHAR columns as might be
        expected; now, the default behavior of
        ndb_restore in such cases is to resize the
        VARCHAR columns. This changed
        default behavior can be overridden using the
        --no-upgrade (or -u) option
        when invoking ndb_restore.
       (Bug#22240)
        The BLACKHOLE storage engine now supports
        INSERT DELAYED. Previously,
        INSERT DELAYED statements for
        BLACKHOLE tables were not supported, and
        caused the server to crash.
       (Bug#27998)
        A new status variable, Com_call_procedure,
        indicates the number of calls to stored procedures.
       (Bug#27994)
        The BLACKHOLE storage engine now supports
        LOCK TABLES and
        UNLOCK
        TABLES.
       (Bug#26241)
        The data type used for the VARIABLE_VALUE
        column of the following INFORMATION_SCHEMA
        tables has been changed to
        VARCHAR:
        
        For more information, see Section 20.24, “The INFORMATION_SCHEMA GLOBAL_STATUS and
      SESSION_STATUS
      Tables”, and
        Section 20.25, “The INFORMATION_SCHEMA GLOBAL_VARIABLES and
      SESSION_VARIABLES
      Tables”.
      
See also Bug#26994.
Bugs fixed:
Security Fix: UDFs are supposed to be loadable only from the plugin directory, but this restriction was not being enforced. (Bug#28341)
Security Fix: Use of a view could allow a user to gain update privileges for tables in other databases. (Bug#27878, CVE-2007-3782)
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: 
        Local checkpoint files relating to dropped
        NDB tables were not removed.
       (Bug#28348)
MySQL Cluster: Multiple operations involving deletes followed by reads were not handled correctly.
This issue could also affect MySQL Cluster Replication.
MySQL Cluster: 
        Repeated insertion of data generated by
        mysqldump into
        NDB tables could eventually lead to
        failure of the cluster.
       (Bug#27437)
MySQL Cluster: Restarting a data node caused SQL nodes to log repeatedly and unnecessarily the status of the event buffer, causing a memory leak of approximately 4 MB for each mysqld process each time this occurred.
(This issue was known to occur in MySQL 5.1.16 and later only.) (Bug#27292)
MySQL Cluster: 
        ndb_mgmd failed silently when the cluster
        configuration file contained invalid [tcp]
        entries.
       (Bug#27207)
MySQL Cluster: 
        ndb_connectstring did not appear in the
        output of SHOW VARIABLES.
       (Bug#26675)
MySQL Cluster: A failure to release internal resources following an error could lead to problems with single user mode. (Bug#25818)
MySQL Cluster: DDL operations were not supported on a partially started cluster. (Bug#24631)
Disk Data: Extremely large inserts into Disk Data tables could lead to data node failure in some circumstances. (Bug#27942)
Cluster API: 
        In a multi-operation transaction, a delete operation followed by
        the insertion of an implicit NULL failed to
        overwrite an existing value.
       (Bug#20535)
        Some ALTER TABLE statements that
        worked in MySQL 5.0 did not work in 5.1.
       (Bug#28415)
mysql_upgrade failed if certain SQL modes were set. Now it sets the mode itself to avoid this problem. (Bug#28401)
        A query with a NOT IN subquery predicate
        could cause a crash when the left operand of the predicate
        evaluated to NULL.
       (Bug#28375)
        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)
        EXPLAIN for a query on an empty
        table immediately after its creation could result in a server
        crash.
       (Bug#28272)
        Comparing a DATETIME column value
        with a user variable yielded incorrect results.
       (Bug#28261)
        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)
        For InnoDB, in some rare cases the optimizer
        preferred a more expensive
        ref access to a less
        expensive range access.
       (Bug#28189)
        Comparisons of DATE or
        DATETIME values for the
        IN() function could yield
        incorrect results.
       (Bug#28133)
        It was not possible to use the value
        –9223372036854775808 (that is,
        –MAXVALUE + 1) when specifying a
        LIST partition.
       (Bug#28005)
        The server could hang for INSERT IGNORE ... ON
        DUPLICATE KEY UPDATE if an update failed.
       (Bug#28000)
        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)
Changes to some system variables should invalidate statements in the query cache, but invalidation did not happen. (Bug#27792)
        LOAD DATA did not use
        CURRENT_TIMESTAMP as the default value for a
        TIMESTAMP column for which no
        value was provided.
       (Bug#27670)
        Selecting MIN() on an indexed
        column that contained only NULL values caused
        NULL to be returned for other result columns.
       (Bug#27573)
        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 InnoDB variables were missing from the
        output of mysqld --verbose --help.
       (Bug#26987)
Flow control optimization in stored routines could cause exception handlers to never return or execute incorrect logic. (Bug#26977)
Some test suite files were missing from some MySQL-test packages. (Bug#26609)
        Running CHECK TABLE concurrently
        with a SELECT,
        INSERT or other statement on
        Windows could corrupt a MyISAM table.
       (Bug#25712)
        Concurrent execution of
        CREATE TABLE ...
        SELECT and other statements involving the target table
        suffered from various race conditions, some of which might have
        led to deadlocks.
       (Bug#24738)
        An attempt to execute
        CREATE TABLE ...
        SELECT when a temporary table with the same name
        already existed led to the insertion of data into the temporary
        table and creation of an empty nontemporary table.
       (Bug#24508)
        A statement of the form CREATE TABLE IF NOT EXISTS t1
        SELECT f1() AS i failed with a deadlock error if the
        stored function f1() referred to a table with
        the same name as the to-be-created table. Now it correctly
        produces a message that the table already exists.
       (Bug#22427)
Quoted labels in stored routines were mishandled, rendering the routines unusable. (Bug#21513)
        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)
        CREATE TABLE IF NOT EXISTS ... SELECT caused
        a server crash if the target table already existed and had a
        BEFORE INSERT trigger.
       (Bug#20903)
        Deadlock occurred for attempts to execute CREATE TABLE
        IF NOT EXISTS ... SELECT when
        LOCK TABLES had been used to
        acquire a read lock on the target table.
       (Bug#20662, Bug#15522)
        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)
        Changing the size of a key buffer that is under heavy use could
        cause a server crash. The fix partially removes the limitation
        that LOAD INDEX INTO
        CACHE fails unless all indexes in a table have the
        same block size. Now the statement fails only if IGNORE
        LEAVES is specified.
       (Bug#17332)

User Comments
Add your own comment.