2006.11.02

MySQL

MySQL 5.1.12ベータ版がリリースされました。

オリジナル版:http://dev.mysql.com/doc/refman/5.1/en/news-5-1-12.html

最も普及しているオープンソースデータベース管理システムであるMySQL 5.1.12ベータ版がリリースされました。

これはベータ版であり、他の多くの試作商品リリースと同様、商品レベルのシステムまたは、重要なデータを含むシステムに対してインストールしないように注意してください。商品レベルのシステムについては、以下のMySQL Enterpriseの商品説明のページをご覧ください。

http://mysql.com/products/enterprise/

MySQL 5.1.12ベータ版は、http://dev.mysql.com/downloads/とミラーサイトのダウンロード・ページから、ソースコード及び多くのプラットフォームのためのバイナリで現在利用可能です。

すべてのミラーサイトが現在、最新であるとは限らないことに注意してください。
あるミラーサイトでこのバージョンを見つけることができない場合は、再度確認を行うか、あるいは別のダウンロード・サイトを選択してください。

バグレポート、バグ修正、パッチ等の情報をお待ちしておりますので、以下のページをご利用ください。

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

これはベータ版であり、以前のリリース以来行なわれたいくつかの非互換性の変更があります。また、バグ修正の数が500以上と非常に多く、ここに記載できません。詳細は、以下のページをご覧ください。

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

機能が追加あるいは変更された内容の抜粋についても記載いたします。

以下は、追加または変更された機能です。

* Incompatible change: Support for the BerkeleyDB (BDB) engine
  has been dropped from this release. Any existing tables that
  are in BDB format will not be readable from within MySQL from
  5.1.12 or newer. You should convert your BDB tables to another
  storage engine before upgrading to 5.1.12.
* Incompatible change: The namespace for scheduled events has
  changed, such that events are no longer unique to individual
  users. This also means that a user with the EVENT privilege on
  a given database can now view, alter, or drop any events
  defined on that database.
  If you used scheduled events in an earlier MySQL 5.1 release,
  you should rename any of them having the same name and defined
  on the same database but belonging to different users --- so
  that all events in a given database have unique names ---
  before upgrading to 5.1.12 (or newer).
  For additional information, see Section 20.5, "The Event
  Scheduler and MySQL Privileges."
* Incompatible change: The permitted values for and behaviour of
  the event_scheduler system variable have changed. Permitted
  values are now ON, OFF, and DISABLED, with OFF being the
  default. It is not possible to change its value to or from
  DISABLED while the server is running.
  For details, see Section 20.1, "Event Scheduler Overview."
* Incompatible change: The full-text parser plugin interface has
  changed in two ways:
     + The MYSQL_FTPARSER_PARAM structure has a new flags
       member. This is zero if there are no special flags, or
       MYSQL_FTFLAGS_NEED_COPY, which means that
       mysql_add_word() must save a copy of the word (that is,
       it cannot use a pointer to the word because the word is
       in a buffer that will be overwritten.)
       This flag might be set or reset by MySQL before calling
       the parser plugin, by the parser plugin itself, or by the
       mysql_parse() function.
     + The mysql_parse() and mysql_add_word() functions now take
       a MYSQL_FTPARSER_PARAM as their first argument, not a
       MYSQL_FTPARSER_PARAM::mysql_ftparam as before.
  These changes are not backward compatible, so the API version
  (MYSQL_FTPARSER_INTERFACE_VERSION) has changed. For additional
  information, see Section 26.2.5, "Writing Plugins."
* Incompatible change: In the INFORMATION_SCHEMA.EVENTS table,
  the EVENT_DEFINITION column now contains the SQL executed by a
  scheduled event.
  The EVENT_BODY column now contains the language used for the
  statement or statements shown in EVENT_DEFINITION. In MySQL
  5.1, the value shown in EVENT_BODY is always SQL.
  These changes were made to bring this table into line with the
  INFORMATION_SCHEMA.ROUTINES table, and that table's
  ROUTINE_BODY and ROUTINE_DEFINITION columns.
  (Bug#16992:http://bugs.mysql.com/16992)
* Incompatible change: MySQL Cluster node and system restarts
  formerly required that all fragments use the same local
  checkpoint (LCP); beginning with this version, it is now
  possible for different fragments to use different LCPs during
  restarts. This means that data node filesystems must be
  rebuilt as part of any upgrade to this version by restarting
  all data nodes with the --initial option.
  (Bug#21271:http://bugs.mysql.com/21271,
  Bug#21478:http://bugs.mysql.com/21478)
  See Section 15.5.2, "Cluster Upgrade and Downgrade
  Compatibility," and related sections of the Manual before
  upgrading a MySQL Cluster to version 5.1.12 or later.
* Incompatible change: A number of MySQL constructs are now
  prohibited in partitioning expressions, beginning with this
  release. These include:
     + A number of MySQL functions.
       You can find [1714]a complete list of these functions
       under Partitioning Limitation.
     + The bit operators |, &, ^, <<, >>, and ~.
     + Nested function calls.
     + Calls to stored routines, UDFs, or plugins.
     + Character-to-integer conversions involving non-8-bit
       character sets or any of the latin1_german2_ci,
       latin2_czech_cs, or cp1250_czech_cs collations.
  These restrictions were added in part as a result of
  Bug#18198:http://bugs.mysql.com/18198and related bug
  reports.
  For more information about these and other restrictions on
  partitioned tables in MySQL, see Section 16.5, "Restrictions
  and Limitations on Partitioning."
* The general query log and slow query logs now can be enabled
  or disabled at runtime with the general_log and slow_query_log
  system variables, and the name of the log files can be changed
  by setting the general_log_file and slow_query_log_file system
  variables. See Section 5.12.3, "The General Query Log," and
  Section 5.12.5, "The Slow Query Log."
* The output generated by the server when using the --xml option
  has changed with regard to null values. It now matches the
  output from mysqldump --xml. That is, a column containing a
  NULL value is now reported as
  <field name="column_name" xsi:nil="true" />
  whereas a column containing the string value 'NULL' is
  reported as
  <field name="column_name">NULL</field>
  and a column containing an empty string is reported as
  <field name="column_name">>/field>
  (Bug#21263:http://bugs.mysql.com/21263)
* The following statements now can be executed as prepared
  statements (using PREPARE plus EXECUTE):
  CACHE INDEX
  CHANGE MASTER
  CHECKSUM {TABLE | TABLES}
  {CREATE | RENAME | DROP} DATABASE
  {CREATE | RENAME | DROP} USER
  FLUSH {TABLE | TABLES | TABLES WITH READ LOCK | HOSTS | PRIVILEGES
    | LOGS | STATUS | MASTER | SLAVE | DES_KEY_FILE | USER_RESOURCES}
  GRANT
  REVOKE
  KILL
  LOAD INDEX INTO CACHE
  RESET {MASTER | SLAVE | QUERY CACHE}
  SHOW BINLOG EVENTS
  SHOW CREATE {PROCEDURE | FUNCTION | EVENT | TABLE | VIEW}
  SHOW {AUTHORS | CONTRIBUTORS | WARNINGS | ERRORS}
  SHOW {MASTER | BINARY} LOGS
  SHOW {MASTER | SLAVE} STATUS
  SLAVE {START | STOP}
  INSTALL PLUGIN
  UNINSTALL PLUGIN
  (Bug#20665:http://bugs.mysql.com/20665)
* The Instance Manager --passwd option has been renamed to
  --print-password-line. Other options were added to enable
  management of the IM password file from the command line:
  --add-user, --drop-user, --edit-user, --list-users,
  --check-password-file, --clean-password-file, --username, and
  --password. The --mysql-safe-compatible option was added to
  cause the Instance Manner to act similarly to mysqld_safe.
* On Windows, typing Control-C caused the mysql client to crash.
  Now it causes mysql to attempt to kill the current statement.
  If this cannot be done, or Control-C is typed again before the
  statement is killed, mysql exits.
  (Bug#17926:http://bugs.mysql.com/17926; see also
  Bug#1989:http://bugs.mysql.com/1989)
* TEXT and BLOB columns do not support DEFAULT values. However,
  when a default of '' was specified, the specification was
  silently ignored. This now results in a warning, or an error
  in strict mode. (Bug#19498:http://bugs.mysql.com/19498)
* The mysql client now allows \l in the prompt command argument
  to insert the current delimiter into the prompt.
  (Bug#14448:http://bugs.mysql.com/14448)
* Log table changes: By default, the log tables use the CSV
  storage engine, as before. But now the log tables can be
  altered to use the MyISAM storage engine. You cannot use ALTER
  TABLE to alter a log table that is in use. The log must be
  disabled first. No engines other than CSV or MyISAM are legal
  for the log tables. The use of DROP TABLE for log tables is
  similarly restricted: It cannot be used to drop a log table
  that is in use. The log must be disabled first. (These changes
  also correct a deadlock that occurred for an attempt to drop
  an in-use log table.) (Bug#18559:http://bugs.mysql.com/18559)
* The LEFT() and RIGHT() functions return NULL if any argument
  is NULL. (Bug#11728:http://bugs.mysql.com/11728)
* EXPLAIN EXTENDED now shows a filtered column that is an
  estimated percentage of the examined rows that will be joined
  with the previous tables.
  (Bug#14940:http://bugs.mysql.com/14940)
* For mysqlshow, if a database name argument contains wildcard
  characters (such as `_') but matches a single database name
  exactly, treat the name as a literal name. This allows a
  command such as mysqlshow information_schema work without
  having to escape the wildcard character.
  (Bug#19147:http://bugs.mysql.com/19147)
* If a DROP VIEW statement named multiple views, it stopped with
  an error if a non-existent view was named and did not drop the
  remaining views. Now it continues on and reports an error at
  the end, similar to DROP TABLE.
  (Bug#16614:http://bugs.mysql.com/16614)
* SHOW CREATE TABLE now shows constraints for InnoDB tables.
  (Bug#16614:http://bugs.mysql.com/16614)
* Added the --set-charset option to mysqlbinlog to allow the
  character set to be specified for processing binary log files.
  (Bug#18351:http://bugs.mysql.com/18351)
* Added the --ndb-use-copying-alter-table option to mysqld to
  provide a fallback in case of problems with online ALTER TABLE
  operations on NDBCluster tables.
* Added the SHOW CONTRIBUTORS statement.
* It is no longer possible to create partitioned tables using
  the CSV storage engine.
* NDB Cluster: Some queries involving joins on very large NDB
  tables could crash the MySQL server.
  (Bug#21059:http://bugs.mysql.com/21059)
* NDB Cluster: The status variables Ndb_connected_host and
  Ndb_connected_port were renamed to Ndb_config_from_host and
  Ndb_config_from_port, respectively.
* NDB Cluster: A number of erroneous, misleading, or missing
  error messages have been corrected.
  (Bug#17297:http://bugs.mysql.com/17297&
  Bug#19543:http://bugs.mysql.com/19543)
* NDB Cluster: It is no longer possible to create Cluster tables
  using any partitioning type other than [LINEAR] KEY.
  Attempting to do so now raises an error.
* The ExtractValue() function now produces an error when passed
  an XML fragment that is not well-formed.
  (Bug#18201:http://bugs.mysql.com/18201)
  (Previously, the function allowed invalid XML fragments to be
  used.)
* There were several issues regarding how SHOW STATUS affected
  some status variables and logging which could impact
  monitoring the MySQL Server. The behavior of this statement
  has been modified in two ways:
     + SHOW STATUS is no longer logged to the slow query log.
     + SHOW STATUS no longer updates any session status
       variables, except for com_show_status.
  However, SHOW STATUS continues to update global status
  variables to allow monitoring of what the server is actually
  doing. This is because SHOW STATUS creates temporary tables
  that may affect performance if it is called excessively often.
  (Bug#10210:http://bugs.mysql.com/10210,
  Bug#19764:http://bugs.mysql.com/19764)
* The mysqldumpslow script has been moved from client RPM
  packages to server RPM packages. This corrects a problem where
  mysqldumpslow could not be used with a client-only RPM
  install, because it depends on my_print_defaults which is in
  the server RPM. (Bug#20216:http://bugs.mysql.com/20216)
* The bundled yaSSL library was upgraded to version 1.3.7.
* The bundled yaSSL library licensing has added a FLOSS
  exception similar to MySQL to resolve licensing
  incompatibilities with MySQL. (See the
  extra/yassl/FLOSS-EXCEPTIONS file in a MySQL source
  distribution for details.)
  (Bug#16755:http://bugs.mysql.com/16755)
* mysqlslap threads now try to connect up to 10 times if the
  initial connect attempt fails.
  (Bug#21297:http://bugs.mysql.com/21297)
* For a successful dump, mysqldump now writes a SQL comment to
  the end of the dump file in the following format:
  -- Dump completed on YYYY-MM-DD hh:mm:ss
  (Bug#10877:http://bugs.mysql.com/10877)
* The mysqld and mysqlmanager manpages have been reclassified
  from volume 1 to volume 8.
  (Bug#21220:http://bugs.mysql.com/21220)
* In the INFORMATION_SCHEMA.ROUTINES table the
  ROUTINE_DEFINITION column now is defined as NULL rather than
  NOT NULL. Also, NULL rather than the empty string is returned
  as the column value if the user does not have sufficient
  privileges to see the routine definition.
  (Bug#20230:http://bugs.mysql.com/20230)
* configure now defines the symbol DBUG_ON in config.h to
  indicate whether the source tree is configured to be compiled
  with debugging support.
  (Bug#19517:http://bugs.mysql.com/19517)
* The MySQL distribution now compiles on UnixWare 7.13.
  (Bug#20190:http://bugs.mysql.com/20190)
* The mysql client used the default character set if it
  automatically reconnected to the server, which is incorrect if
  the character set had been changed. To enable the character
  set to remain synchronized on the client and server, the mysql
  command charset (or \C) that changes the default character set
  and now also issues a SET NAMES statement. The changed
  character set is used for reconnects.
  (Bug#11972:http://bugs.mysql.com/11972)
* The STATE column of the INFORMATION_SCHEMA.PROCESSLIST table
  was increased from 30 to 64 characters to accommodate longer
  state values. (Bug#21652:http://bugs.mysql.com/21652)
* TIMESTAMP columns that are NOT NULL now are reported that way
  by SHOW COLUMNS and INFORMATION_SCHEMA.
  (Bug#20910:http://bugs.mysql.com/20910)
* INFORMATION_SCHEMA contains new tables, GLOBAL_STATUS,
  SESSION_STATUS, GLOBAL_VARIABLES, and SESSION_VARIABLES, that
  correspond to the output from the SHOW {GLOBAL|SESSION} STATUS
  and SHOW {GLOBAL|SESSION} VARIABLES statements.
* The BINARY keyword now is forbidden as a data type attribute
  in stored routines (for example, DECLARE v1 VARCHAR(25)
  BINARY), because DECLARE does not support collations, and in
  this context BINARY specifies the binary collation of the
  variable's character set.
  (Bug#20701:http://bugs.mysql.com/20701)
* The source distribution has been updated so that the UDF
  example can be compiled under Windows with CMake. See Section
  26.3.4.5, "Compiling and Installing User-Defined Functions."
  (Bug#19121:http://bugs.mysql.com/19121)
* LOAD DATA INFILE no longer causes an implicit commit for all
  storage storage engines. It now causes an implicit commit only
  for tables using the NDB storage engine.
  (Bug#11151:http://bugs.mysql.com/11151)
* The LOAD DATA FROM MASTER and LOAD TABLE FROM MASTER
  statements are deprecated. See Section 13.6.2.2, "LOAD DATA
  FROM MASTER Syntax," for recommended alternatives.
  (Bug#18822:http://bugs.mysql.com/18822)
* mysqldump now has a --flush-privileges option. It causes
  mysqldump to emit a FLUSH PRIVILEGES statement after dumping
  the mysql database. This option should be used any time the
  dump contains the mysql database and any other database that
  depends on the data in the mysql database for proper
  restoration. (Bug#21424:http://bugs.mysql.com/21424)
* The default value of the tmp_table_size system variable was
  lowered from 32MB to 16MB because it is bounded by the value
  of max_heap_table_size, which has a default of 16MB.
  (Bug#18875:http://bugs.mysql.com/18875)
* The number of InnoDB threads is no longer limited to 1,000 on
  Windows. (Bug#22268:http://bugs.mysql.com/22268)
* Memory consumption of the InnoDB data dictionary cache was
  roughly halved by cleaning up the data structures.
  (Bug#20877:http://bugs.mysql.com/20877)

And we've also gotten some feedback:

  MySQL 5.1.12 delivers several important improvements to ease the
  creation of Pluggable Storage Engines" says Paul McCullagh, the lead
  developer behind the Primebase XT Storage Engine for MySQL (PBXT), "we
  are very excited about this new public release." PBXT 0.9.27 is now in
  Beta Test and requires MySQL 5.1.12 (or later) and can be obtained from
 http://primebase.com/xt/