Hi,

A new version of MySQL Community Edition 4.1.11 Open Source database
management system has been released. It is now available in source and
binary form for a number of platforms from our download pages at
http://dev.mysql.com/downloads/ and mirror sites.

Note that not all mirror sites may be up-to-date at this point. If you
cannot find this version on a particular mirror, please try again later or
choose another download site.

This is a bug fix release for the current production series.

Please refer to our bug database at http://bugs.mysql.com/ for more details
about the individual open and resolved bugs in this version.

NOTE: Due to a procedural error during the release builds, the MySQL Max and
commercial MySQL Cluster packages will be delayed by a few hours before
fully syncing with our download mirrors.

Changes in release 4.1.11:

   Functionality added or changed:
     * 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 Information
       Functions.
     * 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.8.2 Typical configure Options for details.
     * Added configuration directives !include and !includedir for
       including option files and searching directories for option files.
       See section 4.3.2 Using Option Files for usage.

   Bugs fixed:
     * 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.
       (CAN-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(x) in a subquery, where 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(col_name,key) could fail to return 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(col_name) and MAX(col_name) could fail to produce the correct
       result if 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(datetime_col) was returned as 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)
     * 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)

Enjoy!

   Matt

-- 
Matt Wagner, Production Engineer
MySQL AB, www.mysql.com
Northfield, MN, USA



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to