Functionality added or changed:
Replication: 
        Better detection of connection timeout for replication servers
        on Windows allows elimination of extraneous Lost
        connection errors in the error log.
       (Bug#5588)
        OPTIMIZE TABLE and
        HANDLER now are prohibited in
        stored procedures and functions and in triggers.
       (Bug#12953, Bug#12995)
        The LEAST() and
        GREATEST() functions used to
        return NULL only if all arguments were
        NULL. Now they return NULL
        if any argument is NULL, the same as Oracle.
       (Bug#12791)
        InnoDB: The TRUNCATE
        TABLE statement for InnoDB tables
        always resets the counter for an
        AUTO_INCREMENT column now, regardless of
        whether there is a foreign key constraint on the table.
        (Beginning with 5.0.3, TRUNCATE
        TABLE reset the counter, but only if there was no such
        constraint.)
       (Bug#11946)
Reorder network startup to come after all other initialization, particularly storage engine startup which can take a long time. This also prevents MySQL from being run on a privileged port (any port under 1024) unless run as the root user. (Bug#11707)
        The restriction on the use of
        PREPARE,
        EXECUTE, and
        DEALLOCATE PREPARE within stored
        procedures was lifted. The restriction still applies to stored
        functions and triggers.
       (Bug#10975, Bug#10605)
See also Bug#7115.
A new command line argument was added to mysqld to ignore client character set information sent during handshake, and use server side settings instead, to reproduce 4.0 behavior :
mysqld --skip-character-set-client-handshake
(Bug#9948)
        Added a --routines option for
        mysqldump that enables dumping of stored
        routines.
       (Bug#9056)
        RAND() no longer allows
        nonconstant initializers. (Prior to MySQL 5.0.13, the effect of
        nonconstant initializers is undefined.)
       (Bug#6172)
        The syntax for CREATE VIEW and
        ALTER VIEW statements now
        includes DEFINER and SQL
        SECURITY clauses for specifying the security context
        to be used when checking access privileges at view invocation
        time. (The syntax is present in 5.0.13, but these clauses have
        no effect until 5.0.16.) See Section 12.1.12, “CREATE VIEW Syntax”, for
        more information.
      
        The --hex-dump option for
        mysqldump now also applies to
        BIT columns.
      
        Two new collations have been added for Esperanto:
        utf8_esperanto_ci and
        ucs2_esperanto_ci.
      
The Windows binary packages are now compiled with the Microsoft Visual Studio 2003 compiler instead of Microsoft Visual C++ 6.0.
        The connection string for FEDERATED tables
        now is specified using a CONNECTION table
        option rather than a COMMENT table option.
      
The binaries compiled with the Intel icc compiler are now built using icc 9.0 instead of icc 8.1. You will have to install new versions of the Intel icc runtime libraries, which are available from here: http://dev.mysql.com/downloads/os-linux.html
Bugs fixed:
Incompatible Change: 
        A lock wait timeout caused InnoDB to roll
        back the entire current transaction. Now it rolls back only the
        most recent SQL statement.
       (Bug#12308)
MySQL Cluster: 
        The cluster management client START BACKUP
        command could be interrupted by a
        SHOW command.
       (Bug#13054)
MySQL Cluster: A cluster shutdown following the crash of a data node failed to terminate any remaining node processes, even though ndb_mgm showed the shutdown request as having been completed. (Bug#9996, Bug#10938, Bug#11623)
MySQL Cluster: 
        The average row size for Cluster tables was calculated
        incorrectly. This affected the values shown for the
        Data_length and
        Avg_row_length columns in the output
        generated by SHOW TABLE STATUS as
        well as the values for the data_length and
        data_length/table_rows columns shown in the
        TABLES table of the
        INFORMATION_SCHEMA database with respect to
        Cluster tables.
      
        Tables using storage engines other than
        NDB were not affected by this bug.
       (Bug#9896)
Replication: 
        Within a transaction, the following statements now cause an
        implicit commit: CREATE FUNCTION,
        DROP FUNCTION,
        DROP PROCEDURE (for stored
        functions, not UDFs), ALTER
        FUNCTION, ALTER
        PROCEDURE, CREATE
        PROCEDURE. This corrects a problem where these
        statements followed by
        ROLLBACK might
        not be replicated properly.
       (Bug#12870)
Replication: 
        Replication of LOAD
        DATA INFILE failed between systems using different
        path name syntax (such as delimiter characters).
       (Bug#11815)
Local variables in stored routines were not always initialized correctly. (Bug#13133)
        The FEDERATED storage engine does not support
        ALTER TABLE, but no appropriate
        error message was issued.
       (Bug#13108)
        Columns named in the USING() clause of
        JOIN ... USING() were incorrectly resolved in
        case-sensitive fashion.
       (Bug#13067)
For a server compiled with yaSSL, clients that used MySQL Connector/J were not able to establish SSH connections. (Bug#13029)
        When used in view definitions,
        DAYNAME(,
        expr)DAYOFWEEK(,
        expr)WEEKDAY(
        were incorrectly treated as though the expression was
        expr)TO_DAYS(
        or
        expr)TO_DAYS(TO_DAYS(.
       (Bug#13000)expr))
        Using AS to rename a column selected from a
        view in a subquery made it not possible to refer to that column
        in the outer query.
       (Bug#12993)
        Using an INOUT parameter with a
        DECIMAL data type in a stored
        procedure caused a server crash.
       (Bug#12979)
        SELECT ... JOIN ... ON ... JOIN ... USING
        caused a server crash.
       (Bug#12977)
        A bug introduced in MySQL 5.0.12 caused
        SHOW TABLE STATUS to display an
        Auto_increment value of 0 for
        InnoDB tables.
       (Bug#12973)
        On HP-UX 11.x (PA-RISC), the -L option caused
        mysqlimport to crash.
       (Bug#12958)
        InnoDB: A consistent read could return
        inconsistent results due to a bug introduced in MySQL 5.0.5.
       (Bug#12947)
        Incorrect implicit nesting of joins caused the parser to fail on
        queries of the form SELECT ... FROM t1 JOIN t2 JOIN t3
        ON t1.t1col = t3.t3col with an Unknown column
        't1.t1col' in 'on clause' error.
       (Bug#12943)
Incorrect results could be returned from a view processed using a temporary table. (Bug#12941)
        Multiplying a DECIMAL value
        within a loop in a stored routine could incorrectly result in a
        value of NULL.
       (Bug#12938)
        Using GROUP BY when selecting from a view in
        some cases could cause incorrect results to be returned.
       (Bug#12922)
        The counters for the
        Key_read_requests,
        Key_reads,
        Key_write_requests, and
        Key_writes status variables
        were changed from unsigned long to
        unsigned longlong to accommodate larger
        values before the variables roll over and restart from 0.
       (Bug#12920)
        mysql and mysqldump were
        ignoring the
        --defaults-extra-file option.
       (Bug#12917)
        SHOW FIELDS FROM
         caused error 1046 when no default schema was set.
       (Bug#12905)schemaname.viewname
        
        UNION [DISTINCT] was not removing all
        duplicates for multi-byte character values.
       (Bug#12891)
        A column that can be NULL was not handled
        properly for WITH ROLLUP in a subquery or
        view.
       (Bug#12885)
        GROUP_CONCAT() ignored an empty
        string if it was the first value to occur in the result.
       (Bug#12863)
        If a client has opened an InnoDB table for
        which the .ibd file is missing,
        InnoDB would not honor a
        DROP TABLE statement for the
        table.
       (Bug#12852)
        Within a stored procedure, a server crash was caused by
        assigning to a VARCHAR INOUT parameter the
        value of an expression that included the variable itself. (For
        example, SET c = c.)
       (Bug#12849)
The server crashed when one thread resized the query cache while another thread was using it. (Bug#12848)
        A concurrency problem for CREATE ... SELECT
        could cause a server crash.
       (Bug#12845)
        DO IFNULL(NULL, NULL) and SELECT
        CAST(IFNULL(NULL, NULL) AS DECIMAL) caused a server
        crash.
       (Bug#12841)
        After changing the character set with SET CHARACTER
        SET, the result of the
        GROUP_CONCAT() function was not
        converted to the proper character set.
       (Bug#12829)
        The Windows installer made a change to one of the
        mysql.proc table files, causing stored
        routine functionality to be compromised. The Windows installer
        now never overwrites files in the MySQL data directory. During
        an upgrade from one version to another, a file in the data
        directory will not be overwritten even if it has not been
        modified since it was put there by an older installer.
      
If you have already lost access to stored routines because of this problem, you can get them back using the following procedure:
Stop the server.
            In the mysql\data directory under your
            MySQL installation directory, and replace the
            proc.frm file with corresponding file
            from the version of MySQL that you were using before you
            upgraded.
          
Start the server.
            Start the mysql command-line client (use
            the root account or another account that
            has full database privileges) and execute the
            mysql_fix_privilege_tables.sql script
            that upgrades the grant tables to the current structure.
            Instructions for doing this are given in
            Section 4.4.5, “mysql_fix_privilege_tables — Upgrade MySQL System Tables”.
          
After this, all stored routine functionality should work. (Bug#12820)
        Queries with subqueries, where the inner subquery uses the
        range or
        index_merge access method,
        could return incorrect results.
       (Bug#12720)
        The server failed to disallow
        SET autocommit
        in stored functions and triggers. It is allowed to change the
        value of autocommit in stored
        procedures, but a runtime error might occur if the procedure is
        invoked from a stored function or trigger.
       (Bug#12712)
        Simultaneous execution of DML statements and
        CREATE TRIGGER or
        DROP TRIGGER statements on the
        same table could cause server crashes or errors.
       (Bug#12704)
        Performing an IS NULL check on the
        MIN() or
        MAX() of an indexed column in a
        complex query could produce incorrect results.
       (Bug#12695)
        Use of PREPARE and
        EXECUTE with a statement that
        selected from a view in a subquery could cause a server crash.
       (Bug#12651)
If the binary log is enabled, execution of a stored procedure that modifies table data and uses user variables could cause a server crash or incorrect information to be written to the binary log. (Bug#12637)
        The LIKE ... ESCAPE syntax produced invalid
        results when escape character was larger than one byte.
       (Bug#12611)
        InnoDB: Limit recursion depth to 200 in
        deadlock detection to avoid running out of stack space.
       (Bug#12588)
        The mysql.server script contained an
        incorrect path for the libexec directory.
       (Bug#12550)
        A UNION of long
        utf8 VARCHAR
        columns was sometimes returned as a column with a
        LONGTEXT data
        type rather than VARCHAR. This
        could prevent such queries from working at all if selected into
        a MEMORY table because the
        MEMORY storage engine does not support the
        TEXT data types.
       (Bug#12537)
A client connection thread cleanup problem caused the server to crash when closing the connection if the binary log was enabled. (Bug#12517)
        Use of the mysql client
        HELP command from within a stored
        routine caused a “packets out of order” error and a
        lost connection. Now HELP is
        detected and disallowed within stored routines.
       (Bug#12490)
        The SYSDATE() function now
        returns the time at which it was invoked. In particular, within
        a stored routine or trigger,
        SYSDATE() returns the time at
        which it executes, not the time at which the stored routine or
        triggering statement began to execute.
       (Bug#12480)
        CREATE VIEW inside a stored
        procedure caused a server crash if the table underlying the view
        had been deleted.
       (Bug#12468)
        Deadlock occurred when several account management statements
        were run (particularly between
        FLUSH
        PRIVILEGES/SET PASSWORD
        and
        GRANT/REVOKE
        statements).
       (Bug#12423)
        InnoDB was too permissive with LOCK
        TABLE ... READ LOCAL and allowed new inserts into the
        table. Now READ LOCAL is equivalent to
        READ for InnoDB. This will
        cause slightly more locking in mysqldump, but
        makes InnoDB table dumps consistent with
        MyISAM table dumps.
       (Bug#12410)
        If a stored function invoked from a
        SELECT failed with an error, it
        could cause the client connection to be dropped. Now such errors
        generate warnings instead so as not to interrupt the
        SELECT.
       (Bug#12379)
        The value of
        character_set_results could be
        set to NULL, but returned the string
        "NULL" when retrieved.
       (Bug#12363)
        On Windows, the server was preventing tables from being created
        if the table name was a prefix of a forbidden name. For example,
        nul is a forbidden name because it is the
        same as a Windows device name, but a table with the name of
        n or nu was being
        forbidden as well.
       (Bug#12325)
        ALTER TABLE ... DISCARD TABLESPACE for
        non-InnoDB table caused the client to lose
        the connection. (The server was not returning the error
        properly.)
       (Bug#12207)
        Outer join elimination was erroneously applied for some queries
        that used a NOT BETWEEN condition, an
        IN(
        condition, or an value_list)IF() condition.
       (Bug#12102, Bug#12101)
        Foreign keys were not properly enforced in
        TEMPORARY tables. Foreign keys now are
        disallowed in TEMPORARY tables.
       (Bug#12084)
        When using a cursor, a SELECT
        statement that uses a GROUP BY clause could
        return incorrect results.
       (Bug#11904)
        The character_set_system system
        variable could not be selected with SELECT
        @@character_set_system.
       (Bug#11775)
        A memory leak resulting from repeated
        SELECT ...
        INTO statements inside a stored procedure could cause
        the server to crash.
       (Bug#11333)
        Use of yaSSL for a secure client connection caused
        LOAD DATA LOCAL
        INFILE to fail.
       (Bug#11286)
mysqld_multi now quotes arguments on command lines that it constructs to avoid problems with arguments that contain shell metacharacters. (Bug#11280)
        The server allowed privileges to be granted explicitly for the
        INFORMATION_SCHEMA database. Such privileges
        are always implicit and should not be grantable.
       (Bug#10734)
        SHOW CREATE PROCEDURE and
        SHOW CREATE FUNCTION no longer
        qualify the routine name with the database name, for consistency
        with the behavior of SHOW CREATE
        TABLE.
       (Bug#10362)
        The server incorrectly generated an Unknown
        table error message when for attempts to drop tables
        in the INFORMATION_SCHEMA database. Now it
        issues an Access denied message.
       (Bug#9846)
        Within a stored procedure, fetching a large number of rows in a
        loop using a cursor could result in a server crash or an out of
        memory error. Also, values inserted within a stored procedure
        using a cursor were interpreted as latin1
        even if character set variables had been set to a different
        character set.
       (Bug#9819, Bug#6513)
        The server allowed TEMPORARY tables and
        stored procedures to be created in the
        INFORMATION_SCHEMA database.
       (Bug#9683, Bug#10708)
        SHOW FIELDS truncated the
        TYPE column to 40 characters.
       (Bug#7142)
See also Bug#12817.
        A view-creation statement of the form CREATE VIEW
         failed with a
        name AS SELECT ... FROM
        tbl_name AS
        nameNot unique table/alias:
        ' error.
       (Bug#6808)name'
        myisampack did not properly pack
        BLOB values larger than
        224 bytes.
       (Bug#4214)


User Comments
Add your own comment.