Fonctionnalités ajoutées ou modifiées :
            ONLY_FULL_GROUP_BY no longer is included
            in the ANSI composite SQL mode. (Bug#8510)
          
mysqld_safe will create the directory where the UNIX socket file is to be located if the directory does not exist. This applies only to the last component of the directory pathname. (Bug#8513)
            The coercibility for the return value of functions such as
            USER() or VERSION()
            now is ``system constant'' rather than ``implicit.'' This
            makes these functions more coercible than column values so
            that comparisons of the two do not result in
            Illegal mix of collations errors.
            COERCIBILITY() was modified to
            accommodate this new coercibility value. See
            Section 12.8.3, « Fonctions d'informations ».
          
User variable coercibility has been changed from ``coercible'' to ``implicit.'' That is, user variables have the same coercibility as column values.
            NULL now is considered more coercible
            than string constants. This resolves some Illegal
            mix of collations conflicts.
          
            Modified the parser to allow SELECT
            statements following the UNION keyword to
            be subqueries in parentheses. (Bug#2435)
          
            For slave replication servers started with
            --replicate-* options, statements that
            should not be replicated according those options no longer
            are written to the slave's general query log. (Bug#8297)
          
            Added SQL_NOTES session variable to cause
            Note-level warnings not to be recorded.
            (Bug#6662)
          
            InnoDB: Commit after every 10,000 copied
            rows when executing CREATE INDEX,
            DROP INDEX or OPTIMIZE
            TABLE, which are internally implemented as
            ALTER TABLE. This makes it much faster to
            recover from an aborted operation.
          
            Added a new global system variable
            slave_transaction_retries: If the
            replication slave SQL thread fails to execute a transaction
            because of an InnoDB deadlock or exceeded
            InnoDB's innodb_lock_wait_timeout or
            NDBCluster's
            TransactionDeadlockDetectionTimeout or
            TransactionInactiveTimeout, it
            automatically retries
            slave_transaction_retries times before
            stopping with an error. The default in MySQL 4.1 is 0. You
            must explicitly set the value greater than 0 to enable the
            ``retry'' behavior. (In MySQL 5.0.3 or newer, the default is
            10.) (Bug#8325)
          
            Added --with-big-tables compilation option
            to configure. (Previously it was
            necessary to pass -DBIG_TABLES to the
            compiler manually in order to enable large table support.)
            See Section 2.4.2, « Options habituelles de configure » for details.
          
            Added configuration directives !include
            and !includedir for including option
            files and searching directories for option files. See
            Section 4.3.2, « Fichier d'options my.cnf » for usage.
          
Bogues corrigés :
            The use of XOR together with NOT
            ISNULL() erroneously resulted in some outer joins
            being converted to inner joins by the optimizer. (Bug#9017)
          
            Fixed utf8_spanish2_ci and
            ucs2_spanish2_ci collations to not
            consider ‘r’ equal to
            ‘rr’. If you upgrade to this
            version from an earlier version, you should rebuild the
            indexes of affected tables. (Bug#9269)
          
            Allow extra HKSCS and cp950 characters
            (big5 extension characters) to be
            accepted in big5 columns. (Bug#9357)
          
            BLOB( and
            M)TEXT(
            columns, with M)M less than 256,
            were being created as BLOB and
            TEXT columns rather than
            TINYBLOB or TINYTEXT
            columns. (Bug#9303)
          
            Fixed a problem with INSERT ... SELECT ... ON
            DUPLICATE KEY UPDATE where a column named in the
            insert list and in the ON DUPLICATE KEY
            UPDATE clause was erroneously declared to be
            ambiguous. (Bug#8147)
          
            In prepared statements, subqueries containing parameters
            were erroneously treated as const tables
            during preparation, resulting in a server crash. (Bug#8807)
          
            Fixed a problem with OPTIMIZE TABLE for
            InnoDB tables being written twice to the
            binary log. (Bug#9149)
          
            Provide more informative error messages in clustered setting
            when a query is issued against a table that has been
            modified by another mysqld server. (Bug#6762)
          
            For MyISAM tables, REPAIR
            TABLE no longer discard rows that have incorrect
            checksum. (Bug#9824)
          
            Depending on index statistics, GROUP BY
             could return
            incorrect results if the first table processed for a join
            had several indexes that cover the grouped columns. (Bug#9213)
          col1,
            col2, ...
            Fixed incorrect evaluation of ALL/ANY
            subqueries that contain a HAVING clause.
            (Bug#9350)
          
            Fixed server crash when left expression of
            IN/ALL/ANY comparision was a subquery.
            (Bug#8888)
          
            Fixed option-parsing code for the embedded server to
            understand K, M, and
            G suffixes for the
            net_buffer_length and
            max_allowed_packet options. (Bug#9472)
          
            Fixed a crash when using TIMESTAMP
            columns with no minute or second parts in GROUP
            BY with the new system variable
            set to 1. (Bug#9401)
          
            If a MyISAM table on Windows had
            INDEX DIRECTORY or DATA
            DIRECTORY table options,
            mysqldump dumped the directory pathnames
            with single-backslash pathname separators. This would cause
            syntax errors when importing the dump file.
            mysqldump now changes
            ‘\’ to
            ‘/’ in the pathnames on
            Windows. (Bug#6660)
          
            Fixed a server crash caused by use of
            NOW() is a subquery. (Bug#8824)
          
Fixed problems with static variables to allow building on Fedora Core 3. (Bug#6554)
Some user variables were not being handled with ``implicit'' coercibility. (Bug#9425)
            Setting the max_error_count system
            variable to 0 resulted in a setting of 1. (Bug#9072)
          
Fixed a collation coercibility problem that caused a union between binary and non-binary columns to fail. (Bug#6519)
            Fixed a problem with the tee command in
            mysql that resulted in
            mysql crashing. (Bug#8499)
          
On Windows, create shared memory objects with the proper access rights to make them usable when the client and server are running under different accounts. (Bug#8226)
            Bundled zlib in the source distribution
            was upgraded to 1.2.2. (Bug#9118)
          
            Fixed server crash resulting from queries that combined
            SELECT DISTINCT,
            SUM(), and ROLLUP.
            (Bug#8615)
          
            Incorrect results were returned from queries that combined
            SELECT DISTINCT, GROUP BY
            , and ROLLUP. (Bug#8616)
          
            Fixed a bug that under certain circumstances could allow a
            privilege escalation via database wildcards in
            GRANT. (CVE-2004-0957)
          
            Too many rows were returned from queries that combined
            ROLLUP and LIMIT if
            SQL_CALC_FOUND_ROWS was given. (Bug#8617)
          
            mysqldump misinterpreted
            ‘_’ and
            ‘%’ characters in the names
            of tables to be dumped as wildcard characters. (Bug#9123)
          
            Made the relay_log_space_limit system
            variable show up in the output of SHOW
            VARIABLES. (Bug#7100)
          
            Use of
            GROUP_CONCAT(
            in a subquery, where x)x was an
            alias to a column in the outer query, resulted in a server
            crash. (Bug#8656)
          
            The CHARSET(),
            COLLATION(), and
            COERCIBILITY() functions sometimes
            returned NULL.
            CHARSET() and
            COLLATION() returned
            NULL when given any of these arguments
            that evaluated to NULL: A system function
            such as DATABASE(); a column value; and a
            user variable. Now CHARSET() and
            COLLATION() return the system character
            set and collation; the column character set and collation;
            and binary.
            COERCIBILITY(NULL) now returns
            ``ignorable'' coercibility rather than
            NULL. (Bug#9129)
          
            Expressions involving nested CONCAT()
            calls and character set conversion of string constants could
            return an incorrect result. (Bug#8785)
          
            The MEMORY storage engine did not
            properly increment an AUTO_INCREMENT
            column if there was a second composite index that included
            the column. (Bug#8489)
          
Fixed a bug in the filesort routine such that killing a filesort could cause an assertion failure. (Bug#8799)
            REPAIR TABLE did not invalidate query
            results in the query cache that were generated from the
            table. (Bug#8480)
          
            If max_join_size was set, a query
            containing a subquery that exceeded the examined-rows limit
            could hang. (Bug#8726)
          
            Mixed-case database and table names in the grant tables were
            ignored for authentication if the
            lower_case_table_names system variable
            was set. GRANT will not create such
            privileges when lower_case_table_names is
            set, but it is possible to create them by direct
            manipulation of the grant tables, or that old grant records
            were present before setting the variable. (Bug#7989)
          
            AES_DECRYPT(
            could fail to return col_name,key)NULL for invalid
            values in col_name, if
            col_name was declared as
            NOT NULL. (Bug#8669)
          
Ordering by unsigned expression (more complex than a column reference) was treating the value as signed, producing incorrectly sorted results. (Bug#7425)
            HAVING was treating unsigned columns as
            signed. (Bug#7425)
          
            Fixed a problem with boolean full-text searches on
            utf8 columns where a double quote in the
            search string caused a server crash. (Bug#8351)
          
            MIN(
            and
            col_name)MAX(
            could fail to produce the correct result if
            col_name)col_name was contained in
            multiple indexes and the optimizer did not choose the first
            index that contained the column. (Bug#8893)
          
            Table creation for a MyISAM table failed
            if DATA DIRECTORY or INDEX
            DIRECTORY options were given that specified the
            pathname to the database directory where the table files
            would be created by default. (Bug#8707)
          
            Fixed a problem with LIKE
            pattern-matching for strings with the
            cp1251_bin binary collation. (Bug#8560)
          
            A join on two tables failed when each contained a
            BIGINT UNSIGNED column that were compared
            when their values exceeded 2^63 − 1. The match failed and
            the join returned no rows. (Bug#8562)
          
            For a query with both GROUP BY and
            COUNT(DISTINCT) clauses and a
            FROM clause with a subquery,
            NULL was returned for any
            VARCHAR column selected by the subquery.
            (Bug#8218)
          
            Fixed an optimizer bug that caused incorrectly ordered
            result from a query that used a FULLTEXT
            index to retrieve rows and there was another index that was
            usable for ORDER BY. For such a query,
            EXPLAIN showed
            fulltext join type, but regular (not
            FULLTEXT) index in the
            Key column. (Bug#6635)
          
For a statement string that contained multiple slow queries, only the last one would be written to the slow query log. (Bug#8475)
            When the server was started with
            --skip-name-resolve, specifying hostname
            values that included netmasks in GRANT
            statements did not work. (Bug#8471)
          
            The --set-character-set option for
            myisamchk was changed to
            --set-collation. The value needed for
            specifying how to sort indexes is a collation name, not a
            character set name. (Bug#8349)
          
Hostname matching didn't work if a netmask was specified for table-specific privileges. (Bug#3309)
            Binary data stored in BLOB or
            BINARY columns would be erroneously
            dumped if mysqldump was invoked with
            --hex-blob and
            --skip-extended-insert arguments. This
            happened if data contained characters larger then 0x7F (Bug#8830).
          
            Corruption of MyISAM table indexes could
            occur with TRUNCATE TABLE if the table
            had already been opened. For example, this was possible if
            the table had been opened implicitly by selecting from a
            MERGE table that mapped to the
            MyISAM table. The server now issues an
            error message for TRUNCATE TABLE under
            these conditions. (Bug#8306)
          
            Fixed handling of table-name matching in
            mysqlhotcopy to accommodate
            DBD::mysql 2.9003 and up (which implement
            identifier quoting). (Bug#8136)
          
            In the mysql_real_escape_string() C API
            function, when a multi-byte character is encountered that is
            illegal in the current character set, escape only the first
            byte, not each byte. This avoids creating a valid character
            from an invalid one. (Bug#8378)
          
            Fixed a problem with the cp1250_czech_cs
            collation that caused empty literal strings not to compare
            equal to empty character columns. (Bug#8840)
          
            Fixed a problem in index cost calculation that caused a
            USE INDEX or FORCE
            INDEX hint not to be used properly for a
            LEFT JOIN across indexed
            BLOB columns. (Bug#7520)
          
            The column type for
            MAX(
            was returned as datetime_col)VARCHAR rather than
            DATETIME if the query included a
            GROUP BY clause. (Bug#5615)
          
            FOUND_ROWS() returned an incorrect value
            for preceding SELECT statements that used
            no table or view. (Bug#6089)
          
            In string literals with an escape character
            (‘\’) followed by a
            multi-byte character that has a second byte of
            ‘\’, the literal was not
            interpreted correctly. The next character now is escaped,
            not just the next byte. (Bug#8303)
          
            InnoDB: Work around a problem in AIX 5.1 patched with ML7
            security patch: InnoDB would refuse to open its
            ibdata files, complaining about an
            operating system error 0.
          
            InnoDB: Fixed a memory corruption bug if one created a table
            with a primary key that contained at least two column
            prefixes. An example: CREATE TABLE t(a char(100), b
            tinyblob, PRIMARY KEY(a(5), b(10))).
          
            InnoDB: Do not try to space-pad
            BLOB columns containing
            ucs2 characters. This avoids an assertion
            failure that was introduced when fixing Bug#7350. (Bug#8771)
          
InnoDB: Fixed a bug : MySQL-4.1.8 - 4.1.10 could complain that an InnoDB table created with MySQL-3.23.49 or earlier was in the new compact InnoDB table format of 5.0.3 or later, and InnoDB would refuse to use that table. There is nothing wrong with the table, it is mysqld that is in error. Workaround: wait that 4.1.11 is released before doing an upgrade, or dump the table and recreate it with any MySQL version >= 3.23.50 before upgrading.
            InnoDB: Honor the
            --tmpdir startup option when creating
            temporary files. Previously, InnoDB
            temporary files were always created in the temporary
            directory of the operating system. On Netware,
            InnoDB will continue to ignore
            --tmpdir. (Bug#5822)
          
            InnoDB: If MySQL wrote to its binlog, but
            for some reason trx->update_undo and
            trx->insert_undo were NULL in InnoDB,
            then trx->commit_lsn was garbage, and
            InnoDB could assert in the log flush of
            trx_commit_complete_for_mysql(). (Bug#9277)
          
            InnoDB: If InnoDB cannot allocate memory,
            keep retrying for 60 seconds before we intentionally crash
            mysqld; maybe the memory shortage is
            just temporary.
          
            InnoDB: If one used LOCK
            TABLES, created an InnoDB temp table, and did a
            multi-table update where a MyISAM table was the update table
            and the temp table was a read table, then InnoDB asserted in
            row0sel.c because
            n_mysql_tables_in_use was 0. Also, we
            remove the assertion altogether and just print an error to
            the .err log if this important
            consistency check fails. (Bug#8677)
          
            mysqldump now avoids writing SET
            NAMES to the dump output if the server is older
            than version 4.1 and would not understand that statement.
            (Bug#7997)
          
            Fixed a bug in my_print_defaults that
            made it ignore the --defaults-extra-file
            and --defaults-file options.
          
            Retrieving from a view defined as a
            SELECT that mixed UNION
            ALL and UNION DISTINCT resulted
            in a different result than retrieving from the original
            SELECT. (Bug#6565)
          
            Worked around a bug in support for NSS support in
            glibc when static linking is used and
            LDAP is one of the NSS sources. The workaround is to detect
            when the bug causes a segfault and issue a diagnostic
            message with information about the problem. (Bug#3037, Bug#4872)
          
If the mysql prompt was configured to display the default database name, and that database was dropped, mysql did not update the prompt. (Bug#4802)
perror was printing a spurious extra line of output ("Error code ###: Unknown error ###" printed directly before the correct line with the error message). (Bug#8517)
            The CHAR() function was not ignoring
            NULL arguments, contrary to the
            documentation. (Bug#6317)
          
            Neither SHOW ERRORS nor SHOW
            WARNINGS were displaying Error-level messages.
            (Bug#6572)
          
            Creating a table using a name containing a character that is
            illegal in character_set_client resulted
            in the character being stripped from the name and no error.
            The character now is considered an error. (Bug#8041)
          
            Fixed a problem with the Cyrillic letters I and SHORT I
            being treated the same by the
            utf8_general_ci collation. (Bug#8385)
          
            The MAX_CONNECTIONS_PER_HOUR resource
            limit was not being reset hourly and thus imposed an
            absolute limit on number of connections per account until
            the server is restarted or the limits flushed. (Bug#8350)
          
            With a database was dropped with
            lower_case_table_names=2, tables in the
            database also were dropped but not being flushed properly
            from the table cache. If the database was recreated, the
            tables also would appear to have been recreated. (Bug#8355)
          
            Changed mysql_server_end() C API function
            to restore more variables to their initial state so that a
            subsequent call to mysql_server_init()
            would not cause a client program crash. (Bug#7344)
          
            Fixed a problem with accented letters improperly being
            treated as distinct with the
            utf_general_ci collation. (Bug#7878)
          
            ENUM and SET columns
            in privilege tables incorrectly had a case-sensitive
            collation, resulting in failure of assignments of values
            that did not have the same lettercase as given in the column
            definitions. The collation was changed to be case
            insensitive. (Bug#7617)
          
            An expression that tested a case-insensitive character
            column against string constants that differed in lettercase
            could fail because the constants were treated as having a
            binary collation. (For example, WHERE city='London'
            AND city='london' could fail.) (Bug#7098, Bug#8690)
          
            The output of the STATUS
            (\s) command in mysql
            had the values for the server and client character sets
            reversed. (Bug#7571)
          
            If the slave was running with
            --replicate-*-table options which excluded
            one temporary table and included another, and the two tables
            were used in a single DROP TEMPORARY TABLE IF
            EXISTS statement, as the ones the master
            automatically writes to its binary log upon client's
            disconnection when client has not explicitly dropped these,
            the slave could forget to delete the included replicated
            temporary table. Only the slave needs to be upgraded. (Bug#8055)
          
            Treat user variables as having IMPLICIT
            derivation (coercibility) to avoid ``Illegal mix of
            collations'' errors when replicating user variables. (Bug#6676)
          
            When setting integer system variables to a negative value
            with SET VARIABLES, the value was treated
            as a positive value modulo 2^32. (Bug#6958)
          
            Fixed a bug in bundled readline library
            that caused segmentation fault in mysql
            when user entered Shift+Enter. (Bug#5672)
          
            Fix conversion of strings -> double to get higher
            accuracy for floating point values that are integers, like:
            123.45E+02 (Bug#7840).
          
            Fixed a bug in MATCH ... AGAINST in
            natural language mode that could cause a server crash if the
            FULLTEXT index was not used in a join
            (EXPLAIN did not show
            fulltext join mode) and the search query
            matched no rows in the table (Bug#8522).
          
            Platform and architecture information in version information
            produced for --version option on Windows
            was always Win95/Win98 (i32). More
            accurately determine platform as Win32 or
            Win64 for 32-bit or 64-bit Windows, and
            architecture as ia32 for x86,
            ia64 for Itanium, and
            axp for Alpha. (Bug#4445)
          
            Fixed a rare race condition which could lead to
            FLUSH TABLES WITH READ LOCK hanging. (Bug#8682)
          
Fixed a bug that caused the slave to stop on statements that produced an error on the master. (Bug#8412)
If multiple semicolon-separated statements were received in a single packet, they were written to the binary log as a single event rather than as separate per-statement events. For a server serving as a replication master, this caused replication to fail when the event was sent to slave servers. (Bug#8436)
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
