Dear MySQL users,

MySQL Community Server 5.1.38, a new version of the popular Open
Source Database Management System, has been released.  MySQL 5.1.38 is
recommended for use on production systems.

For an overview of what's new in MySQL 5.1, please see

  http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html

For information on installing MySQL 5.1.38 on new servers or upgrading
to MySQL 5.1.38 from previous MySQL releases, please see

  http://dev.mysql.com/doc/refman/5.1/en/installing.html

MySQL Server is available in source and binary form for a number of
platforms from our download pages at

  http://dev.mysql.com/downloads/

Not all mirror sites may be up to date at this point in time, so if
you can't find this version on some mirror, please try again later or
choose another download site.

We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:

  http://forge.mysql.com/wiki/Contributing

For information on open issues in MySQL 5.1, please see the errata
list at

  http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html

The following section lists the changes in the MySQL source code since
the previous released version of MySQL 5.1.  It may also be viewed
online at

  http://dev.mysql.com/doc/refman/5.1/en/news-5-1-38.html

Enjoy!

=======================================================================

C.1.1. Changes in MySQL 5.1.38

  As of MySQL 5.1.38, the InnoDB Plugin is included in MySQL
  releases, in addition to the built-in version of InnoDB that
  has been included in previous releases. This version of the
  InnoDB Plugin is 1.0.4 and is considered of Beta quality.

  The InnoDB Plugin offers new features, improved performance
  and scalability, enhanced reliability and new capabilities
  for flexibility and ease of use. Among the features of the
  InnoDB Plugin are "Fast index creation," table and index
  compression, file format management, new INFORMATION_SCHEMA
  tables, capacity tuning, multiple background I/O threads, and
  group commit.

  For information about these features, see the InnoDB Plugin
  Manual at
  http://www.innodb.com/products/innodb_plugin/plugin-documentation
  For general information about using InnoDB in MySQL,
  see Section 13.6, "The InnoDB Storage Engine."

  The InnoDB Plugin is included in source and binary
  distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64,
  ia64), and generic Linux RPM packages.

  To use the InnoDB Plugin, you must disable the built-in
  version of InnoDB that is also included and instruct the
  server to use InnoDB Plugin instead. To accomplish this, use
  the following lines in your my.cnf file:

    [mysqld]
    ignore-builtin-innodb
    plugin-load=innodb=ha_innodb_plugin.so

  For the plugin-load option, innodb is the name to associate
  with the plugin and ha_innodb_plugin.so is the name of the
  shared object library that contains the plugin code. The
  extension of .so applies for Unix (and similar) systems. For
  HP-UX on HPPA (11.11) or Windows, the extension should be .sl
  or .dll, respectively, rather than .so.

  If the server has problems finding the plugin when it starts
  up, specify the pathname to the plugin directory. For
  example, if plugins are located in the lib/mysql/plugin
  directory under the MySQL installation directory and you have
  installed MySQL at /usr/local/mysql, use these lines in your
  my.cnf file:

    [mysqld]
    ignore-builtin-innodb
    plugin-load=innodb=ha_innodb_plugin.so
    plugin_dir=/usr/local/mysql/lib/mysql/plugin

  The previous examples show how to activate the storage engine
  part of InnoDB Plugin, but the plugin also implements several
  InnoDB-related INFORMATION_SCHEMA tables. (For information
  about these tables, see
  http://www.innodb.com/doc/innodb_plugin-1.0/innodb-information-schema.html)
  To enable these tables, include additional name=library
  pairs to the plugin-load option:

    [mysqld]
    ignore-builtin-innodb
    plugin-load=innodb=ha_innodb_plugin.so
      ;innodb_trx=ha_innodb_plugin.so
      ;innodb_locks=ha_innodb_plugin.so
      ;innodb_cmp=ha_innodb_plugin.so
      ;innodb_cmp_reset=ha_innodb_plugin.so
      ;innodb_cmpmem=ha_innodb_plugin.so
      ;innodb_cmpmem_reset=ha_innodb_plugin.so

  The plugin-load option here is formatted on multiple lines
  for display purposes but should be written in my.cnf using a
  single line without spaces in the option value. On Windows,
  substitute .dll for each instance of the .so extension.

  After the server starts up, verify that InnoDB Plugin has
  been loaded by using the SHOW PLUGINS statement. For example,
  if you have loaded the storage engine and the
  INFORMATION_SCHEMA tables, the output should include lines
  similar to these:

    mysql> SHOW PLUGINS;
    
+---------------------+--------+--------------------+---------------------...
    | Name                | Status | Type               | Library             
...
    
+---------------------+--------+--------------------+---------------------...
    | InnoDB              | ACTIVE | STORAGE ENGINE     | ha_innodb_plugin.so 
...
    | INNODB_TRX          | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so 
...
    | INNODB_LOCKS        | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so 
...
    | INNODB_CMP          | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so 
...
    | INNODB_CMP_RESET    | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so 
...
    | INNODB_CMPMEM       | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so 
...
    | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so 
...
    
+---------------------+--------+--------------------+---------------------...

  If you build MySQL from a source distribution, InnoDB Plugin
  is one of the storage engines that is built by default. Build
  MySQL the way you normally do; for example, by using the
  instructions at Section 2.10, "MySQL Installation Using a
  Source Distribution." After the build completes, you should
  find the plugin shared object file under the
  storage/innodb_plugin directory, and make install should
  install it in the plugin directory. Configure MySQL to use
  InnoDB Plugin as described earlier for binary distributions.

  Functionality added or changed:

    * Replication: With statement-based logging (SBL),
      repeatedly calling statements that are unsafe for SBL
      caused a warning message to be written to the error log
      for each statement, and there was no way to disable this
      behavior. Now the server logs messages about statements
      that are unsafe for statement-based logging only if the
      log_warnings variable is greater than 0.
      (Bug#46265: http://bugs.mysql.com/46265)

    * The undocumented TRANSACTIONAL and PAGE_CHECKSUM keywords
      were removed from the grammar.
      (Bug#45829: http://bugs.mysql.com/45829)

    * Previously, SELECT ... INTO OUTFILE dumped column values
      without character set conversion, which could produce
      data files that cannot be imported without error if
      different columns used different character sets. A
      consequence of this is that mysqldump ignored the
      --default-character-set option if the --tab option was
      given (which causes SELECT ... INTO OUTFILE to be used to
      dump data.)
      INTO OUTFILE now can be followed by a CHARACTER SET
      clause indicating the character set to which dumped
      values should be converted. Also, mysqldump adds a
      CHARACTER SET clause to the SELECT ... INTO OUTFILE
      statement used to dump data, so that
      --default-character-set is no longer ignored if --tab is
      given.
      Other changes are that SELECT ... INTO OUTFILE enforces
      that ENCLOSED BY and ESCAPED BY arguments must be a
      single character, and SELECT ... INTO OUTFILE and LOAD
      DATA INFILE produce warnings if non-ASCII field or line
      separators are specified.
      (Bug#30946: http://bugs.mysql.com/30946)

    * The MySQL euckr character set now can store extended
      codes [81...FE][41..5A,61..7A,81..FE], which makes euckr
      compatible with the Microsoft cp949 character set.

  Bugs fixed:

    * Partitioning: Attempting to create a table using an
      invalid or inconsistent subpartition definition caused
      the server to crash. An example of such a statement is
      shown here:

        CREATE TABLE t2 (s1 INT, s2 INT)
        PARTITION BY LIST (s1) SUBPARTITION BY HASH (s2) SUBPARTITIONS 1
        (
            PARTITION p1 VALUES IN (1),
            PARTITION p2 VALUES IN (2) (SUBPARTITION p3)
        );

      (Bug#46354: http://bugs.mysql.com/46354)

    * Partitioning: When using a debug build of MySQL, if a
      query against a partitioned table having an index on one
      or more DOUBLE columns used that index, the server failed
      with an assertion.
      (Bug#45816: http://bugs.mysql.com/45816)

    * Partitioning: A failed RENAME TABLE operation on a table
      with user-defined partitioning left the table in an
      unusable state, due to only some of the table files
      having been renamed.
      (Bug#30102: http://bugs.mysql.com/30102)

    * Replication: When a statement that changes a
      non-transactional table failed, the transactional cache
      was flushed, causing a mismatch between the execution and
      logging histories. Now we avoid flushing the
      transactional cache unless a COMMIT or ROLLBACK is
      issued. (Bug#46129: http://bugs.mysql.com/46129)

    * Replication: The internal function
      get_master_version_and_clock() (defined in sql/slave.cc)
      ignored errors and passed directly when queries failed,
      or when queries succeeded but the result retrieved was
      empty. Now this function tries to reconnect the master if
      a query fails due to transient network problems, and to
      fail otherwise. The I/O thread now prints a warning if
      the some system variables do not exist on master (in the
      event the master is a very old version of MySQQL,
      compared to the slave.)
      (Bug#45214: http://bugs.mysql.com/45214)

    * Replication: When using the MIXED logging format, after
      creating a temporary table and performing an update that
      switched the logging format to ROW, the format switch
      persisted following the update. This prevented any
      subsequent DDL statements on temporary tables from being
      written to the binary log until the temporary table was
      dropped. (Bug#43046: http://bugs.mysql.com/43046)
      See also Bug#40013: http://bugs.mysql.com/40013.
      This regression was introduced by
      Bug#20499: http://bugs.mysql.com/20499.

    * Replication: If the --log-bin-trust-function-creators
      option is not enabled, CREATE FUNCTION requires one of
      the modifiers DETERMINISTIC, NO SQL, or READS SQL DATA.
      When using statement-based mode, the execution of a
      stored function should follow the same rules; however,
      only functions defined with DETERMINSTIC could actually
      be executed. In addition, the wrong error was generated
      (ER_BINLOG_ROW_RBR_TO_SBR instead of
      ER_BINLOG_UNSAFE_ROUTINE).
      Now execution of stored functions is compatible with
      creation in this regard; when a stored function without
      one of the modifiers above is executed in STATEMENT mode,
      the correct error is raised, and functions defined using
      NO SQL, READS SQL DATA, or both (that is, without using
      DETERMINSTIC) can be excuted.
      (Bug#41166: http://bugs.mysql.com/41166)

    * The test suite was missing from RPM packages.
      (Bug#46834: http://bugs.mysql.com/46834)

    * Incorrect index optimization could lead to incorrect
      results or server crashes.
      (Bug#46454: http://bugs.mysql.com/46454)

    * The server printed warnings at startup about adjusting
      the value of the max_join_size system variable. (These
      were harmless, but might be seen by users as
      significant.) (Bug#46385: http://bugs.mysql.com/46385)

    * After an error such as a table-full condition, INSERT
      IGNORE could cause an assertion failure for debug builds.
      (Bug#46075: http://bugs.mysql.com/46075)

    * An optimization that moved an item from a subquery to an
      outer query could cause a server crash.
      (Bug#46051: http://bugs.mysql.com/46051)

    * Several Valgrind warnings were corrected.
      (Bug#46003: http://bugs.mysql.com/46003,
      Bug#46034: http://bugs.mysql.com/46034,
      Bug#46042: http://bugs.mysql.com/46042)

    * CREATE TABLE ... SELECT could cause a server crash if no
      default database was selected.
      (Bug#45998: http://bugs.mysql.com/45998)

    * For problems reading SSL files during SSL initialization,
      the server wrote error messages to stderr rather than to
      the error log. (Bug#45770: http://bugs.mysql.com/45770)

    * The vendor name change from MySQL AB to Sun Microsystems,
      Inc. in RPM packages was not handled gracefully when
      upgrading MySQL using an RPM package.
      (Bug#45534: http://bugs.mysql.com/45534)

    * A Windows Installation using the GUI installer would fail
      with:

        MySQL Server 5.1 Setup Wizard ended prematurely

        The wizard was interrupted before MySQL Server 5.1. could be
        completely installed.

        Your system has not been modified. To complete installation at
        another time, please run setup again.

        Click Finish to exit the wizard

      This was due to an step in the MSI installer that could
      fail to execute correctly on some environments.
      (Bug#45418: http://bugs.mysql.com/45418)

    * Invalid memory reads could occur using the compressed
      client/server protocol.
      (Bug#45031: http://bugs.mysql.com/45031)

    * The mysql_real_connect() C API function only attempted to
      connect to the first IP address returned for a hostname.
      This could be a problem if a hostname mapped to multiple
      IP address and the server was not bound to the first one
      returned. Now mysql_real_connect() attempts to connect to
      all IPv4/6 addresses that a domain name maps to.
      (Bug#45017: http://bugs.mysql.com/45017)

    * Invalid input could cause invalid memory reads by the
      parser. (Bug#45010: http://bugs.mysql.com/45010)

    * Some files in an AIX tar file distribution unpacked with
      incorrect permissions.
      (Bug#44647: http://bugs.mysql.com/44647)

    * For debug builds, executing a stored procedure as a
      prepared statement could sometimes cause an assertion
      failure. (Bug#44521: http://bugs.mysql.com/44521)

    * Using mysql_stmt_execute() to call a stored procedure
      could cause a server crash.
      (Bug#44495: http://bugs.mysql.com/44495)

    * Creating a new instance after previously removing an
      instance would fail to complete the installation properly
      because the security settings could not be applied
      correctly. (Bug#44428: http://bugs.mysql.com/44428)

    * mysqlslap ignored the --csv option if it was given
      without an argument.
      (Bug#44412: http://bugs.mysql.com/44412)

    * Enabling the event scheduler from within the file
      specified by --init-file caused a server crash.
      (Bug#43587: http://bugs.mysql.com/43587)

    * The server did not always check the return value of calls
      to the hash_init() function.
      (Bug#43572: http://bugs.mysql.com/43572)

    * The table cache lock (LOCK_open) is now an adaptive
      mutex, which should improve performance in workloads
      where this lock is heavily contended.
      (Bug#43435: http://bugs.mysql.com/43435)

    * mysqladmin --count=X --sleep=Y incorrectly delayed Y
      seconds after the last iteration before exiting.
      (Bug#42639: http://bugs.mysql.com/42639)

    * A test for stack growth failed on some platforms, leading
      to server crashes.
      (Bug#42213: http://bugs.mysql.com/42213)

    * mysqladmin did not have enough space allocated for
      tracking all variables when using --vertical or
      --relative with extended-status.
      (Bug#40395: http://bugs.mysql.com/40395)

    * Partitioning a log table caused a server crash.
      (Bug#40281: http://bugs.mysql.com/40281)

    * When using quick access methods to search for rows in
      UPDATE and DELETE statements, there was no check whether
      a fatal error had already been sent to the client while
      evaluating the quick condition. Consequently, a false OK
      (following the error) was sent to the client, causing the
      error to be incorrectly transformed into a warning.
      (Bug#40113: http://bugs.mysql.com/40113)

    * SHOW PROCESSLIST could access freed memory of a stored
      procedure run in a concurrent session.
      (Bug#38816: http://bugs.mysql.com/38816)

    * During installation on Windows, the MySQL Instance
      Configuration Wizard window could be opened at a size too
      small to be usable.
      (Bug#38723: http://bugs.mysql.com/38723)

    * make_binary_distribution did not always generate correct
      distribution names.
      (Bug#37808: http://bugs.mysql.com/37808)

    * The server crashed when executing a prepared statement
      containing a duplicated MATCH() function call in the
      select list and ORDER BY clause; for example, SELECT
      MATCH(a) AGAINST('test') FROM t1 ORDER BY MATCH(a)
      AGAINST('test'). (Bug#37740: http://bugs.mysql.com/37740)

    * The output of mysqldump --tab for views included a DROP
      TABLE statement without the IF EXISTS qualifier.
      (Bug#37377: http://bugs.mysql.com/37377)

    * mysql_upgrade silently ignored the --basedir and
      --datadir options, which it accepts for backward
      compatibility. Now it prints a warning.
      (Bug#36558: http://bugs.mysql.com/36558)

    * mysqlimport was not always compiled correctly to enable
      thread support, which is required for the --use-threads
      option. (Bug#32991: http://bugs.mysql.com/32991)

    * mysqlcheck failed to fix table names when the
      --fix-table-names and --all-in-1 options were both
      specified. (Bug#31821: http://bugs.mysql.com/31821)

    * If the MySQL server was killed without the PID file being
      removed, attempts to stop the server with mysql.server
      stop waited 900 seconds before giving up.
      (Bug#31785: http://bugs.mysql.com/31785)

    * When performing an installation on Windows using the GUI
      installer, the installer would fail to wait long enough
      during installation for the MySQL service to be
      installed, which would cause the installation to fail and
      may cause security settings, such as the root password to
      not be applied correctly.
      (Bug#30525: http://bugs.mysql.com/30525)

    * mysql included extra spaces at the end of some result set
      lines. (Bug#29622: http://bugs.mysql.com/29622)

    * The mysql client inconsistently handled NUL bytes in
      column data in various output formats.
      (Bug#28203: http://bugs.mysql.com/28203)

    * mysqlimport did not correctly quote and escape table
      identifiers and file names.
      (Bug#28071: http://bugs.mysql.com/28071)

    * When installing the Windows service, using quotes around
      command-line configuration parameters could cause the
      quotes to incorrectly placed around the entire
      command-line option, and not just the value.
      (Bug#27535: http://bugs.mysql.com/27535)

    * If the mysql client was built with the readline library
      and the .inputrc file mapped Space to the magic-space
      function, it became impossible to enter spaces.
      (Bug#27439: http://bugs.mysql.com/27439)

    * If InnoDB reached its limit on the number of concurrent
      transactions (1023), it wrote a descriptive message to
      the error log but returned a misleading error message to
      the client, or an assertion failure occurred.
      (Bug#18828: http://bugs.mysql.com/18828)

--
Jonathan Perkin, Release Engineering, MySQL
Database Technology Group, Sun Microsystems

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to