Hi,

MySQL 5.0.9-beta, a new version of the popular Open Source Database
Management System, has been released. It includes support for
Stored Procedures, Triggers, Views and many other new enhancements.
The Community Edition 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 the fifth published Beta release in the 5.0 series.
All attention will continue to be focused on fixing bugs and stabilizing
5.0 for later production release.

Version 5.0.8-beta was not published, so its changes are included in
this announcement.

NOTE: This Beta release, as any other pre-production release, should not
be installed on ``production'' level systems or systems with critical
data. It is good practice to back up your data before installing any new
version of software. Although MySQL has done its best to ensure a high
level of quality, protect your data by making a backup as you would for
any software beta release.

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



Changes in release 5.0.9
------------------------

Functionality added or changed:
* InnoDB: When creating or extending an InnoDB data file, at most one
   megabyte at a time is allocated for initializing the file. Previously,
   InnoDB allocated and initialized 1 or 8 megabytes of memory, even if
   only a few 16-kilobyte pages were to be written. This improves the
   performance of CREATE TABLE in innodb_file_per_table mode.
* InnoDB: Various optimizations. Removed unreachable debug code from
   non-debug builds. Added hints for the branch predictor in GCC. Made
   assertions occupy less space.
* InnoDB:  Make  innodb_thread_concurrency=20 by default. Bypass the
   concurrency checking if the setting is greater than or equal to 20.
* InnoDB:     Make     CHECK     TABLE    killable.    (Bug    #9730
   (http://bugs.mysql.com/9730))
* Recursion in stored routines is now disabled because it was crashing
   the server. We plan to modify stored routines to allow this to
   operate safely in a future release. (Bug #11394
   (http://bugs.mysql.com/11394))
* The handling of BIT columns has been improved, and should now be much
   more    reliable    in    a   number   of   cases.   (Bug   #10617
   (http://bugs.mysql.com/10617),Bug#11091(http://bugs.mysql.com/11091),
   Bug #11572 (http://bugs.mysql.com/11572))

Bugs fixed:
* When used in joins, SUBSTRING() failed to truncate to zero any string
   values  that  could  not  be  converted  to  numbers.  (Bug #10124
   (http://bugs.mysql.com/10124))
* mysqldump --xml did not format NULL column values correctly. (Bug
   #9657  (http://bugs.mysql.com/9657))
* There was a compression algorithm issue with myisampack for very large
   datasets (where the total size of of all records in a single column
   was on the order of 3 GB or more) on 64-bit platforms. (A fix for
   other   platforms   was   made   in   MySQL   5.0.6.)   (Bug   #8321
   (http://bugs.mysql.com/8321))
* Temporary tables were created in the data directory instead of tmpdir.
   (Bug #11440 (http://bugs.mysql.com/11440))
* MySQL would not compile correctly on QNX due to missing rint()
   function.  (Bug #11544 (http://bugs.mysql.com/11544))
* A SELECT DISTINCT col_name would work correctly with a MyISAM table
   only  when  there  was  an  index  on  col_name.   (Bug  #11484
   (http://bugs.mysql.com/11484))
* The server would lose table-level CREATE VIEW and SHOW VIEW privileges
   following  a  FLUSH  PRIVILEGES  or  server  restart.  (Bug  #9795
   (http://bugs.mysql.com/9795))
* In strict mode, an INSERT into a view that did not include a value for
   a NOT NULL column but that did include a WHERE test on the same
   column would succeed, This happened even though the INSERT should
   have been prevented due to the failure to supply a value for the NOT
   NULL column.  (Bug #6443 (http://bugs.mysql.com/6443))
* Running a CHECK TABLES on multiple views crashed the server. (Bug
   #11337  (http://bugs.mysql.com/11337))
* When a table had a primary key containing a BLOB column, creation of
   another  index  failed with the error BLOB/TEXT column used in key
   specification without keylength, even when the new index did not
   contain a BLOB column. (Bug #11657 (http://bugs.mysql.com/11657))
* NDB Cluster: When trying to open a table that could not be discovered
   or unpacked,  cluster would return error codes which the MySQL server
   falsely  interpreted  as  operating  system  errors.  (Bug #10365
   (http://bugs.mysql.com/10365))
* Manually  inserting  a row with host='' into mysql.tables_priv and
   performing a FLUSH PRIVILEGES would cause the server to crash. (Bug
   #11330 (http://bugs.mysql.com/11330))
* A cursor using a query with a filter on a DATE or DATETIME column
   would cause the server to crash server after the data was fetched.
   (Bug #11172  (http://bugs.mysql.com/11172))
* Closing a cursor that was already closed would cause MySQL to hang.
   (Bug #9814 (http://bugs.mysql.com/9814))
* Using CONCAT_WS on a column set NOT NULL caused incorrect results when
   used in a LEFT JOIN. (Bug #11469 (http://bugs.mysql.com/11469))
* Signed BIGINT would not accept -9223372036854775808 as a DEFAULT
   value.



Changes in release 5.0.8 (not published)
------------------------

Note: Starting with version 5.0.8, changes for MySQL Cluster can be found in the combined Change History.

Functionality added or changed:
* MEMORY tables now support indexes of up to 500 bytes. See Section
   14.3,  "The   MEMORY  (HEAP)  Storage  Engine."   (Bug  #10566
   (http://bugs.mysql.com/10566))
* New SQL_MODE - NO_ENGINE_SUBSTITUTION Prevents automatic substitution
   of storage engine when the requested storage engine is disabled or
   not compiled in. (Bug #6877 (http://bugs.mysql.com/6877))
* The statements CREATE TABLE, TRUNCATE TABLE, DROP DATABASE, and CREATE
   DATABASE     cause     an     implicit    commit.    (Bug    #6883
   (http://bugs.mysql.com/6883))
* Expanded on information provided in general log and slow query log for
   prepared statements. (Bug #8367 (http://bugs.mysql.com/8367), Bug
   #9334  (http://bugs.mysql.com/9334))
* Where a GROUP BY query uses a grouping column from the query's SELECT
   clause, MySQL now issues a warning. This is because the SQL standard
   states that any grouping column must unambiguously reference a column
   of the table resulting from the query's FROM clause, and allowing
   columns from  the  SELECT clause to be used as grouping columns is a
   MySQL extension to the standard.
   By way of example, consider the following table:
      CREATE TABLE users (
        userid INT NOT NULL PRIMARY KEY,
        username VARCHAR(25),
        usergroupid INT NOT NULL
      );
   MySQL allows you to use the alias in this query:
      SELECT usergroupid AS id, COUNT(userid) AS number_of_users
      FROM users
      GROUP BY id;
   However, the SQL standard requires that the column name be used, as
   shown here:
      SELECT usergroupid AS id, COUNT(userid) AS number_of_users
      FROM users
      GROUP BY usergroupid;
   Queries such as the first of the two shown above will continue to be
   supported in MySQL; however, beginning with MySQL 5.0.8, using a
   column alias in this fashion will generate a warning. Note that in
   the event of a collision between column names and/or aliases used in
   joins, MySQL attempts to resolve the conflict by giving preference to
   columns arising from  tables  named  in  the  query's  FROM  clause.
   (Bug  #11211  (http://bugs.mysql.com/11211))
* The granting or revocation of privileges on a stored routine is no
   longer performed when running the server with --skip-grant-tables
   even after the statement SET @@global.automatic_sp_privileges=1; has
   been executed. (Bug #9993 (http://bugs.mysql.com/9993))
* Added  support  for  B'10'  syntax  for  bit  literal. (Bug #10650
   (http://bugs.mysql.com/10650))

Bugs fixed:
* Security fix: On Windows systems, a user with any of the following
   privileges
      + REFERENCES
      + CREATE TEMPORARY TABLES
      + GRANT OPTION
      + CREATE
      + SELECT
   on *.* could crash mysqld by issuing a USE LPT1; or USE PRN; command.
   In addition, any of the commands USE NUL;, USE CON;, USE COM1;, or
   USE AUX;  would report success even though the database was not in
   fact changed.  Note: Although this bug was thought to be fixed
   previously, it was later discovered to be present in the MySQL
   5.0.7-beta release for Windows. (Bug #9148
   (http://bugs.mysql.com/9148),  CAN-2005-0799
   (http://cve.mitre.org/cvename.cgi?name=CAN-2005-0799)
* mysqld_safe would sometimes fail to remove the pid file for the old
   mysql process after a crash. As a result, the server would fail to
   start due to a false A mysqld process already exists... error. (Bug
   #11122  (http://bugs.mysql.com/11122))
* CAST(  ...  AS  DECIMAL)  didn't  work  for  strings.  (Bug #11283
   (http://bugs.mysql.com/11283))
* NULLIF() function could produce incorrect results if first argument is
   NULL. (Bug #11142 (http://bugs.mysql.com/11142))
* Setting @@SQL_MODE = NULL caused an erroneous error message. (Bug
   #10732  (http://bugs.mysql.com/10732))
* Converting a VARCHAR column having an index to a different type (such
   as TINYTEXT)  gave rise  to  an incorrect error message. (Bug #10543
   (http://bugs.mysql.com/10543))
   Note  that this bugfix induces a slight change in the behaviour of
   indexes: If an index is defined to be the same length as a field (or
   is left to default to that field's length), and the length of the
   field is later changed, then the index will adopt the new length of
   the field. Previously, the size of the index did not change for some
   field types (such as VARCHAR) when the field type was changed.
* sql_data_access column of routines table of INFORMATION_SCHEMA was
   empty. (Bug #11055 (http://bugs.mysql.com/11055))
* A  CAST()  value  could  not  be  included  in a VIEW. (Bug #11387
   (http://bugs.mysql.com/11387))
* Server crashed when using GROUP BY on the result of a DIV operation on
   a DATETIME value. (Bug #11385 (http://bugs.mysql.com/11385))
* Possible NULL values in BLOB columns could crash the server when a
   BLOB was used in a GROUP BY query. (Bug #11295
   (http://bugs.mysql.com/11295))
* Fixed 64 bit compiler warning for packet length in replication. (Bug
   #11064 (http://bugs.mysql.com/11064))
* Multiple range accesses in a subquery cause server crash. (Bug #11487
   (http://bugs.mysql.com/11487))
* An issue with index merging could cause suboptimal index merge plans
   to be chosen when searching by indexes created on DATE columns. The
   same issue caused the InnoDB storage engine to issue the warning using
   a  partial-field    key     prefix    in    search.    (Bug    #8441
   (http://bugs.mysql.com/8441))
* The mysqlhotcopy script was not parsing the output of SHOW SLAVE
   STATUS correctly when called with the --record_log_pos option. (Bug
   #7967  (http://bugs.mysql.com/7967))
* SELECT * FROM table returned incorrect results when called from a
   stored procedure, where table had a primary key.  (Bug  #10136
   (http://bugs.mysql.com/10136))
* When used in defining a view, the TIME_FORMAT() function failed with
   calculated  values, for example, when passed the value returned by
   SEC_TO_TIME(). (Bug #7521 (http://bugs.mysql.com/7521))
* SELECT DISTINCT ... GROUP BY constant returned multiple rows (it
   should return a single row). (Bug #8614 (http://bugs.mysql.com/8614))
* INSERT INTO SELECT FROM view produced incorrect result when using
   ORDER BY. (Bug #11298 (http://bugs.mysql.com/11298))
* Fixed hang/crash with Boolean full-text search where a query contained
   more  query  terms that one-third of the query length (it could be
   achieved   with   truncation  operator:  'a*b*c*d*').  (Bug  #7858
   (http://bugs.mysql.com/7858))
* Fixed column name generation in VIEW creation to ensure there are no
   duplicate column names. (Bug #7448 (http://bugs.mysql.com/7448))
* An ORDER BY clause sometimes had no effect on the ordering of a result
   when selecting specific columns (as opposed to using SELECT *) from a
   view. (Bug #7422 (http://bugs.mysql.com/7422))
* Some data definition statements (CREATE TABLE where the table was not
   a temporary table, TRUNCATE TABLE, DROP DATABASE, and CREATE
   DATABASE) were not being written to the binary log after a ROLLBACK.
   This also caused problems with replication.     (Bug #6883
   (http://bugs.mysql.com/6883))
* Calling a stored procedure that made use of an INSERT ... SELECT ...
   UNION  SELECT  ...  query  caused  a  server  crash.  (Bug  #11060
   (http://bugs.mysql.com/11060))
* Selecting from a view defined using SELECT SUM(DISTINCT ...) caused an
   error; attempting to execute a
   SELECT * FROM INFORMATION_SCHEMA.TABLES
   query  after  defining  such a view crashed the server. (Bug #7015
   (http://bugs.mysql.com/7015))
* The mysql client would output a prompt twice following input of very
   long strings, because it incorrectly assumed that a call to the
   _cgets()  function  would  clear  the  input  buffer.  (Bug  #10840
   (http://bugs.mysql.com/10840))
* A three byte buffer overflow in the client functions caused improper
   exiting of the client when reading a command from the user. (Bug
   #10841  (http://bugs.mysql.com/10841))
* Fixed a problem where a stored procedure caused a server crash if the
   query cache was enabled. (Bug #9715 (http://bugs.mysql.com/9715))
* SHOW CREATE DATABASE INFORMATION_SCHEMA returned an “unknown database”
   error. (Bug #9434 (http://bugs.mysql.com/9434))
* Corrected a problem with IFNULL() returning an incorrect result on
   64-bit systems. (Bug #11235 (http://bugs.mysql.com/11235))
* Fixed a problem resolving table names with lower_case_table_names=2
   when the table name lettercase differed in the FROM and WHERE
   clauses. (Bug #9500 (http://bugs.mysql.com/9500))
* Fixed  server crash due to some internal functions not taking into
   account that for multi-byte character sets, CHAR columns could exceed
   255 bytes and VARCHAR columns could exceed 65,535 bytes. (Bug #11167
   (http://bugs.mysql.com/11167))
* Fixed  locking  problems  for multiple-statement DELETE statements
   performed  within  a stored routine, such as incorrectly locking a
   to-be-modified table with a read lock rather than a write lock. (Bug
   #11158 (http://bugs.mysql.com/11158))
* Fixed a portability problem testing for crypt() support that caused
   compilation problems when using OpenSSL/yaSSL on HP-UX and Mac OS X.
   (Bug     #10675    (http://bugs.mysql.com/10675),    Bug    #11150
   (http://bugs.mysql.com/11150))
* The    hostname    cache    was    not    working.   (Bug   #10931
   (http://bugs.mysql.com/10931))
* On Windows, mysqlshow did not interpret wildcard characters properly
   if they  were   given  in  the  table  name  argument.  (Bug  #10947
   (http://bugs.mysql.com/10947))
* Using PREPARE to prepare a statement that invoked a stored routine
   that deallocated the prepared statement caused a server crash. This
   is prevented by disabling dynamic SQL within stored routines.
   (Bug #10975  (http://bugs.mysql.com/10975))
* Using PREPARE to prepare a statement that invoked a stored routine
   that executed the prepared statement caused a Packets out of order
   error the second time the routine was invoked. This is prevented by
   disabling dynamic  SQL  within  stored  routines.   (Bug  #7115
   (http://bugs.mysql.com/7115))
* Using prepared statements within a stored routine (PREPARE, EXECUTE,
   DEALLOCATE) could cause the client connection to be dropped after the
   routine returned. This is prevented by disabling dynamic SQL within
   stored routines. (Bug #10605 (http://bugs.mysql.com/10605))
* When using a cursor with a prepared statement, the first execution
   returned the correct result but was not cleaned up properly, causing
   subsequent  executions  to  return  incorrect results. (Bug #10729
   (http://bugs.mysql.com/10729))
* MySQL Cluster: Connections between data nodes and management nodes
   were not  being  closed  following  shutdown  of  ndb_mgmd. (Bug
   #11132  (http://bugs.mysql.com/11132))
* MySQL Cluster: mysqld processes would not reconnect to cluster
   following restart of ndb_mgmd. (Bug #11221
   (http://bugs.mysql.com/11221))
* MySQL Cluster: Fixed problem whereby data nodes would fail to restart
   on 64-bit Solaris (Bug #9025 (http://bugs.mysql.com/9025))
* MySQL Cluster: Calling ndb_select_count() crashed the cluster when
   running  on  Red  Hat  Enterprise  4/64-bit/Opteron.  (Bug  #10058
   (http://bugs.mysql.com/10058))
* MySQL Cluster: Insert records were incorrectly applied by ndb_restore,
   thus making restoration from backup inconsistent if the binlog
   contained inserts. (Bug #11166 (http://bugs.mysql.com/11166))
* MySQL Cluster: Cluster would time out and crash after first query on
   64-bit Solaris 9. (Bug #8918 (http://bugs.mysql.com/8918))
* MySQL Cluster: ndb_mgm client show command displayed incorrect output
   after     master     data     node     failure.     (Bug    #11050
   (http://bugs.mysql.com/11050))
* MySQL Cluster: A delete performed as part of a transaction caused an
   erroneous result. (Bug #11133 (http://bugs.mysql.com/11133))
* MySQL  Cluster:  Not  allowing  sufficient  parallelism in cluster
   configuration (e.g. NoOfTransactions too small) caused ndb_restore to
   fail   without   providing   any   error   messages.  (Bug  #10294
   (http://bugs.mysql.com/10294))
* MySQL Cluster: When using dynamically allocated ports on Linux,
   cluster would hang on initial startup. (Bug #10893
   (http://bugs.mysql.com/10893))
* MySQL Cluster: Setting TransactionInactiveTimeout= 0 did not result in
   an infinite timeout. (Bug #11290 (http://bugs.mysql.com/11290))
* InnoDB:  Enforce  maximum CHAR_LENGTH() of UTF-8 data in ON UPDATE
   CASCADE. (Bug #10409 (http://bugs.mysql.com/10409))
* InnoDB: Pad UTF-8 variable-length CHAR columns with 0x20. Pad UCS2
   CHAR columns with 0x0020. (Bug #10511 (http://bugs.mysql.com/10511))


Enjoy!

Joerg


--
Joerg Bruehe, Senior Production Engineer
MySQL AB, www.mysql.com


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

Reply via email to