MySQL Lists are EOL. Please join:

List:Announcements« Previous MessageNext Message »
From:Matt Wagner Date:March 28 2005 3:56pm
Subject:MySQL 5.0.3-beta has been released
View as plain text  

A new version of MySQL Community Edition 5.0.3-beta Open Source database
management system has been released.  This version now includes support for
Stored Procedures, Triggers, Views and many other features.  It is now
available in source and binary form for a number of platforms from our
download pages at 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 first Beta release in the 5.0 series. All attention will now be
focused on fixing bugs and stabilizing 5.0 for later production release.

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 for more details
about the individual open and resolved bugs in this version.

Changes in release 5.0.3:

   Functionality added or changed:
     * New privilege CREATE USER was added.
     * Security improvement: The server creates `.frm', `.MYD', `.MYI',
       `.MRG', `.ISD', and `.ISM' table files only if a file with the same
       name does not already exist. (Thanks to Stefano Di Paola
       <stefano.dipaola@stripped> for finding and informing us about this
     * Security improvement: User-defined functions should have at least
       one symbol defined in addition to the xxx symbol that corresponds
       to the main  xxx()  function.  These  auxiliary symbols
       correspond to the xxx_init(),  xxx_deinit(), xxx_reset(),
       xxx_clear(), and xxx_add() functions. mysqld by default no longer
       loads UDFs unless they have at least one auxiliary symbol defined
       in addition to the main symbol. The --allow-suspicious-udfs
       option controls whether UDFs that have only an xxx symbol can be
       loaded. By default, the option is off. mysqld also checks UDF
       filenames when it reads them from the mysql.func table and
       rejects those that contain directory pathname separator
       characters. (It already checked names as given in CREATE FUNCTION
       statements.) See section UDF Calling Sequences for
       simple functions, section UDF Calling Sequences for
       aggregate functions, and section User-defined Function
       Security Precautions.  (Thanks to Stefano Di Paola
       <stefano.dipaola@stripped> for finding and informing us about
       this issue.)
     * Support for the ISAM storage engine has been removed. If you have
       ISAM tables,  you  should  convert  them  before upgrading. See
       section 2.10.1 Upgrading from Version 4.1 to 5.0.
     * Support for RAID options in MyISAM tables has been removed. If
       you have tables that use these options, you should convert them
       before upgrading.  See section 2.10.1 Upgrading from Version 4.1
       to 5.0.
     * Added support for AVG(DISTINCT).
     * 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
     * User  variable coercibility has been changed from ``coercible''
       to ``implicit.'' That is, user variables have the same coercibility
       as column values.
     * Boolean  full-text phrase searching now requires only that
       matches contain exactly the same words as the phrase and in the
       same order.  Non-word characters no longer need match exactly.
     * CHECKSUM TABLE returns a warning for non-existing tables. The
       checksum value remains NULL as before. (Bug #8256)
     * The server now includes a timestamp in the Ready for connections
       message that is written to the error log at startup. (Bug #8444)
     * Added SQL_NOTES session variable to cause Note-level warnings not
       to be recorded. (Bug #6662)
     * Allowed the service-installation command for Windows servers to
       specify a single option other than --defaults-file following the
       service name.  This is for compatibility with MySQL 4.1. (Bug
     * InnoDB: Upgrading from 4.1: The sorting order for end-space in
       TEXT columns for InnoDB tables has changed. Starting from 5.0.3,
       InnoDB compares  TEXT  columns  as space-padded at the end. If
       you have a non-unique index on a TEXT column, you should run
       CHECK TABLE on it, and run OPTIMIZE TABLE if the check reports
       errors. If you have a UNIQUE INDEX on a TEXT column, you should
       rebuild the table with OPTIMIZE TABLE.
     * InnoDB: Commit after every 10,000 copied rows when executing
       it much faster to recover from an aborted operation.
     * Added  VAR_POP()  and STDDEV_POP() as standard SQL aliases for
       the VARIANCE() and STDDEV() functions that compute population
       variance and standard deviation. Added new VAR_SAMP() and
       STDDEV_SAMP() functions to compute sample variance and standard
       deviation. (Bug #3190)
     * Fixed a problem with out-of-order packets being sent (ERROR after
       OK or EOF) following a KILL QUERY statement. (Bug #6804)
     * 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)
     * Fixed a problem with non-optimal index_merge query execution
       plans being chosen on IRIX. (Bug #8578)
     * BIT in column definitions now is a distinct data type; it no
       longer is treated as a synonym for TINYINT(1).
     * Bit-field values can be written using b'value' notation. value is
       a binary value written using 0s and 1s.
     * From the Windows distribution, predefined accounts without
       passwords for remote users ("root@%", "@%") were removed (other
       distributions never had them).
     * Added mysql_library_init() and mysql_library_end() as synonyms
       for the mysql_server_init()   and   mysql_server_end()  C  API
       functions.  mysql_library_init() and mysql_library_end() are
       #define symbols, but the  names  more  clearly indicate that they
       should be called when beginning and ending use of a MySQL C API
       library no matter whether the application uses libmysqlclient or
       libmysqld. (Bug #6149)
     * SHOW COLUMNS now displays NO rather than blank in the Null output
       column if the corresponding table column cannot be NULL.
     * Changed XML format for mysql from <col_name>col_value</col_name>
       to <field name="col_name">col_value</field> to allow for proper
       encoding of column names that are not legal as element names.
       (Bug #7811)
     * Added --innodb-checksums and --innodb-doublewrite options for
     * Added --large-pages option for mysqld.
     * Added multi_read_range system variable.
     * SHOW  DATABASES,  SHOW TABLES, SHOW COLUMNS, and so forth display
       information about the INFORMATION_SCHEMA database. Also, several
       SHOW statements now accept a WHERE clause specifying which output
       rows to display.  See  section 21 The INFORMATION_SCHEMA
       Information Database.
     * Added the CREATE ROUTINE and ALTER ROUTINE privileges, and made
       the EXECUTE privilege operational.
     * InnoDB: Corrected a bug in the crash recovery of
       ROW_FORMAT=COMPACT tables that caused corruption. (Bug #7973) There
       may still be bugs in the crash recovery, especially in COMPACT
     * When the MyISAM storage engine detects corruption of a MyISAM
       table, a message describing the problem now is written to the error
     * InnoDB: When MySQL/InnoDB is compiled on Mac OS X 10.2 or
       earlier, detect the operating system version at run time and use
       the fcntl() file flush method on Mac OS X versions 10.3 and
       later. Apple had disabled fsync() in Mac OS X for internal disk
       drives, which caused corruption at power outages.
     * InnoDB: Implemented fast TRUNCATE TABLE. The old approach
       (deleting rows one by one) may be used if the table is being
       referenced by foreign keys. (Bug #7150)
     * Added cp932 (SJIS for Windows Japanese) and eucjpms (UJIS for
       Windows Japanese) character sets.
     * Added several InnoDB status variables. See section 5.2.4 Server
       Status Variables.
     * Added the FEDERATED storage engine. See section 14.6 The
       FEDERATED Storage Engine.
     * SHOW CREATE TABLE now uses USING index_type rather than TYPE
       index_type to specify an index type. (Bug #7233)
     * InnoDB now supports a fast TRUNCATE TABLE. One visible change
       from this is that auto-increment values for this table are reset on
     * Added an error member to the MYSQL_BIND data structure that is
       used in the C API for prepared statements. This member is used for
       reporting data truncation errors. Truncation reporting is enabled
       via the new MYSQL_REPORT_DATA_TRUNCATION  option for the
       mysql_options() C API function.
     * API change: the reconnect flag in the MYSQL structure is now set
       to 0 by mysql_real_connect(). Only those client programs which
       didn't explicitly set this flag to 0 or 1 after
       mysql_real_connect() experience a change.  Having automatic
       reconnection enabled by default was considered too dangerous
       (after reconnection, table locks, temporary tables, user and
       session variables are lost).
     * FLUSH TABLES WITH READ LOCK is now killable while it's waiting
       for running COMMIT statements to finish.
     * MEMORY (HEAP) can have VARCHAR() fields.
     * VARCHAR columns now remember end space. A VARCHAR() column can now
       contain up to 65535 bytes. For more details, see section D.1
       Changes in release 5.0.x (Development). If the table handler
       doesn't support the new VARCHAR type, then it's converted to a
       CHAR column.  Currently this happens for NDB and InnoDB tables.
     * InnoDB: Introduced a compact record format that does not store
       the number of columns or the lengths of fixed-size columns. The old
       format can be requested by specifying ROW_FORMAT=REDUNDANT. The
       new format (ROW_FORMAT=COMPACT) is the default.
     * InnoDB: Setting the initial AUTO_INCREMENT value for an InnoDB
       table using CREATE TABLE ... AUTO_INCREMENT = n now works, and
       ALTER TABLE ...  AUTO_INCREMENT = n resets the current value.
     * Seconds_Behind_Master is NULL (which means ``unknown'') if the
       slave SQL thread is not running, or if the slave I/O thread is not
       running or not connected to master. It is zero if the SQL thread
       has caught up to the I/O thread. It no longer grows indefinitely
       if the master is idle.
     * The MySQL server aborts immediately instead of simply issuing a
       warning if it is started with the --log-bin option but cannot
       initialize the binary log at startup (that is, an error occurs
       when writing to the binary log file or binary log index file).
     * The binary log file and binary log index file now are handled the
       same way as MyISAM tables when there is a ``disk full'' or ``quota
       exceeded'' error. See section A.4.3 How MySQL Handles a Full
     * The MySQL server now aborts when started with option
       --log-bin-index and without --log-bin, and when started with
       --log-slave-updates and without --log-bin.
     * If the MySQL server is started without an argument to --log-bin
       and without --log-bin-index, thus not providing a name for the
       binary log index file, a warning is issued because MySQL falls
       back to using the hostname for that name, and this is prone to
       replication issues if the server's hostname's gets changed later.
       See section Open Bugs and Design Deficiencies in MySQL.
     * Added account-specific MAX_USER_CONNECTIONS limit, which allows
       you to specify the maximum number of concurrent connections for the
       account.  Also, all limited resources now are counted per account
       (instead of being  counted  per  user  +  host pair as it was
       before). Use the --old-style-user-limits option to get the old
     * InnoDB: A shared record lock (LOCK_REC_NOT_GAP) is now taken for
       a matching record in the foreign key check because inserts can be
       allowed into gaps.
     * InnoDB: Relaxed locking in INSERT...SELECT, single table
       UPDATE...SELECT and      single     table     DELETE...SELECT
       clauses     when innobase_locks_unsafe_for_binlog is used and
       isolation level of the transaction is not serializable. InnoDB
       uses consistent read in these cases for a selected table.
     * 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 is 10. (Bug #8325)
     * When a client releases a user-level lock, DO RELEASE_LOCK() will
       not be written to the binary log anymore (this makes the binary log
       smaller); as a counterpart, the slave does not actually take the
       lock when it executes GET_LOCK(). This is mainly an optimization
       and should not affect existing setups. (Bug #7998)
     * The way the character set information is stored into the binary
       log was changed, so that it's now possible to have a replication
       master and slave running with different global character sets. A
       drawback is that replication from 5.0.3 masters to pre-5.0.3
       slaves is impossible.
     * The LOAD DATA statement was extended to support user variables in
       the target column list, and an optional SET clause. Now one can
       perform some transformations on data after they have been read
       and before they are inserted into the table. For example:
        LOAD DATA INFILE 'file.txt' INTO TABLE t1 (column1, @var1)
          SET column2 = @var1/100;
       Also, replication of LOAD DATA was changed, so you can't
       replicate such statements from a 5.0.3 master to pre-5.0.3

   Bugs fixed:
     * mysql_fix_privilege_tables now fixes that the mysql privilege tables
       can be used in MySQL 4.1. This allows one to easily downgrade to 4.1
       or run MySQL 5.0 and 4.1 with the same privilege files for
       testing purposes.
     * Fixed  bug  creating user with GRANT fails with password but
       works without, (Bug #7905)
     * mysqldump misinterpreted `_' and `%' characters in the names of
       tables to be dumped as wildcard characters. (Bug #9123)
     * The  definition  of  the enumeration-valued sql_mode column of
       the mysql.proc table was missing some of the current allowable SQL
       modes, so stored routines would not necessarily execute with the
       SQL mode in effect at the time of routine definition. (Bug #8902)
     * REPAIR TABLE did not invalidate query results in the query cache
       that were generated from the table. (Bug #8480)
     * In strict or traditional SQL mode, too-long string values
       assigned to string columns (CHAR, VARCHAR, BINARY, VARBINARY, TEXT,
       or BLOB) were correctly truncated, but the server returned an
       SQLSTATE value of 01000 (should be 22001). (Bug #6999, Bug #9029)
     * Stored functions that used cursors could return incorrect
       results. (Bug #8386)
     * 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
     * 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)
     * 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 a bug in TRUNCATE, which did not work within stored
       procedures. A workaround has been made so that within stored
       procedures, TRUNCATE is executed like DELETE. This was necessary
       because TRUNCATE is implicitly locking tables. (Bug #8850)
     * 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)
     * If SELECT DISTINCT named an index column multiple times in the
       select list, the server tried to access different key fields for
       each instance of the column, which could result in a crash. (Bug
     * For  a  stored function that refers to a given table, invoking
       the function while selecting from the same table resulted in a
       server crash.  (Bug #8405)
     * Comparison  of a DECIMAL column containing NULL to a subquery
       that produced DECIMAL values resulted in a server crash. (Bug
     * 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
     * Hostname  matching  didn't  work  if  a  netmask was specified
       for table-specific privileges. (Bug #3309)
     * 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)
     * Setting the connection collation to a value different from the
       server collation followed by a CREATE TABLE statement that included
       a quoted default value resulted in a server crash. (Bug #8235)
     * Fixed handling of table-name matching in mysqlhotcopy to
       accommodate DBD::mysql 2.9003 and up (which implement identifier
       quoting). (Bug #8136)
     * Selecting from a view defined as a join caused a server crash if
       the query cache was enabled. (Bug #8054)
     * Results in the query cache generated from a view were not
       properly invalidated after ALTER VIEW or DROP VIEW on that view.
       (Bug #8050)
     * FOUND_ROWS()   returned   an   incorrect   value  after  a
       SELECT SQL_CALC_FOUND_ROWS DISTINCT statement that selected
       constants and included GROUP BY and LIMIT clauses. (Bug #7945)
     * Selecting from an INFORMATION_SCHEMA table combined with a
       subselect on an INFORMATION_SCHEMA table caused an error with the
       message Table tbl_name is corrupted. (Bug #8164)
     * Fixed a problem with equality propagation optimization for
       prepared statements  and  stored procedures that caused a server
       crash upon re-execution of the prepared statement or stored
       procedure. (Bug #8115, Bug #8849)
     * LEFT OUTER JOIN between an empty base table and a view on an
       empty base table caused a server crash. (Bug #7433)
     * Use of GROUP_CONCAT() in the select list when selecting from a
       view caused a server crash. (Bug #7116)
     * Use of a view in a correlated subquery that contains HAVING but
       no GROUP BY caused a server crash. (Bug #6894)
     * Handling by mysql_list_fields() of references to stored functions
       within views was incorrect and could result in a server crash. (Bug
     * 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 problems when selecting from a view that had an EXISTS or
       NOT EXISTS subquery. Selecting columns by name caused a server
       crash. With SELECT *, a crash did not occur, but columns in outer
       query were not resolved properly. (Bug #6394)
     * DDL statements for views were not being written to the binary log
       (and thus not subject to replication). (Bug #4838)
     * The CHAR() function was not ignoring NULL arguments, contrary to
       the documentation. (Bug #6317)
     * 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)
     * Some INFORMATION_SCHEMA columns that contained catalog
       identifiers were of  type LONGTEXT. These were changed to
       VARCHAR(N, where N is the appropriate maximum identifier length.
       (Bug #7215)
     * Some INFORMATION_SCHEMA columns that contained timestamp values
       were of type VARBINARY. These were changed to TIMESTAMP. (Bug
     * 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)
     * 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)
     * Corrected a problem with references to DUAL where statements such
       as SELECT 1 AS a FROM DUAL would succeed but statements such as
       SELECT 1 AS a FROM DUAL LIMIT 1 would fail. (Bug #8023)
     * Fixed a server crash caused by DELETE FROM tbl_name ... WHERE ...
       ORDER BY tbl_name.col_name when the ORDER BY column was qualified
       with the table name. (Bug #8392)
     * 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).
     * 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)
     * 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)
     * 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)
     * Fixed LOAD INDEX statement to actually load index in memory.
       (Bug #8452)
     * Fixed a failure of multiple-table updates to replicate
       properly on slave servers when --replicate-*-table options had been
       specified. (Bug #7011)
     * Fixed failure of CREATE TABLE ... LIKE Windows when the
       source or destination table was located in a symlinked database
       directory. (Bug #6607)
     * With lower_case_table_names set to 1, mysqldump on Windows could
       write the  same  table  name  in  different lettercase for
       different SQL statements. Fixed so that consistent lettercase is
       used. (Bug #5185)
     * mysqld_safe now understands the --help option. Previously, it
       ignored the option and attempted to start the server anyway. (Bug
     * Fixed  problem  in  NO_BACKSLASH_ESCAPES SQL mode for strings
       that contained both the string quoting character and backslash.
       (Bug #6368)
     * Fixed some portability issues with overflow in floating point
     * Prepared statements now gives warnings on prepare.
     * Fixed bug in prepared statements with SUM(DISTINCT...).
     * Fixed bug in prepared statements with OUTER JOIN.
     * Fixed a bug in CONV() function returning unsigned BIGINT number
       (third argument is positive, and return value does not fit in 32
       bits). (Bug #7751)
     * Fixed a failure of the IN() operator to return correct result if
       all values in the list were constants and some of them were using
       substring functions, for example, LEFT(), RIGHT(), or MID(). (Bug
     * Fixed a crash in CONVERT_TZ() function when its second or third
       argument was from a const table (see section 7.2.1 EXPLAIN Syntax
       (Get Information About a SELECT)). (Bug #7705)
     * Fixed a problem with calculation of number of columns in row
       comparison against subquery. (Bug #8020)
     * Fixed erroneous output resulting from SELECT DISTINCT combined
       with a subquery and GROUP BY. (Bug #7946)
     * Fixed server crash in comparing a nested row expression (for
       example row(1,(2,3))) with a subquery. (Bug #8022)
     * Fixed server crash resulting from certain correlated subqueries
       with forward references (references to an alias defined later in
       the outer query). (Bug #8025)
     * Fixed server crash resulting from re-execution of prepared
       statements containing subqueries. (Bug #8125)
     * Fixed a bug where ALTER TABLE improperly would accept an index on
       a TIMESTAMP column that CREATE TABLE would reject. (Bug #7884)
     * SHOW CREATE TABLE now reports ENGINE=MEMORY rather than
       ENGINE=HEAP for a MEMORY table (unless the MYSQL323 SQL mode is
       enabled). (Bug #6659)
     * Fixed a bug where the use of GROUP_CONCAT() with HAVING caused a
       server crash. (Bug #7769)
     * Fixed a bug where comparing the result of a subquery to a
       non-existent column caused a server crash on Windows. (Bug #7885)
     * Fixed a bug in a combination of -not and trunc* operators of
       full-text search. Using more than one truncated negative search
       term, was causing empty result set.
     * InnoDB: Corrected the handling of trailing spaces in the ucs2
       character set. (Bug #7350, Bug #8771)
     * InnoDB: Use native tmpfile() function on Netware. All InnoDB
       temporary files are created under sys:\tmp. Previously, InnoDB
       temporary files were never deleted on Netware.
     * Fixed a bug in max_heap_table_size handling, that resulted in
       Table is full error when the table was still smaller than the
       limit. (Bug #7791).
     * Fixed a symlink vulnerability in the mysqlaccess script. Reported
       by Javier Fernandez-Sanguino Pena and Debian Security Audit Team.
     * Fixed  a bug that caused server crash if some error occured
       during filling of temporary table created for derived table or view
       handling.  (Bug #7413)
     * Fixed a bug which caused server crash if query containing
       CONVERT_TZ() function with constant arguments was prepared. (Bug
     * Prevent adding CREATE TABLE .. SELECT query to the binary log
       when the insertion of new records partially failed. (Bug #6682)
     * Fixed a bug which caused a crash when only the slave I/O thread
       was stopped and started. (Bug #6148)
     * Giving mysqld a SIGHUP caused it to crash.
     * Changed semantics of CREATE/ALTER/DROP DATABASE statements so that
       replication of CREATE DATABASE is possible when using
       --binlog-do-db and --binlog-ignore-db. (Bug #6391)
       LOCK, transactional update, COMMIT, FLUSH TABLES WITH READ LOCK
       could hang the connection forever and possibly the MySQL server
       itself. This happened for example when running the innobackup
       script several times. (Bug #6732)
     * mysqlbinlog did not print SET PSEUDO_THREAD_ID statements in
       front of LOAD  DATA INFILE statements inserting into temporary
       tables, thus causing potential problems when rolling forward
       these statements after restoring a backup. (Bug #6671)
     * InnoDB:  Fixed  a  bug  no error message for ALTER with InnoDB
       and AUTO_INCREMENT    (Bug   #7061).   InnoDB   now   supports
       ALTER TABLE...AUTO_INCREMENT = x query to set auto increment
       value for a table.
     * Made the MySQL server accept executing SHOW CREATE DATABASE even
       if the connection has an open transaction or locked tables;
       refusing it made mysqldump --single-transaction sometimes fail to
       print a complete CREATE DATABASE statement for some dumped
       databases. (Bug #7358)
     * Fixed that, when encountering a ``disk full'' or ``quota
       exceeded'' write error, MyISAM sometimes didn't sleep and retry the
       write, thus resulting in a corrupted table. (Bug #7714)
     * Fixed that --expire-log-days was not honored if using only
       transactions.  (Bug #7236)
     * Fixed that a slave could crash after replicating many ANALYZE
       TABLE, OPTIMIZE TABLE, or REPAIR TABLE statements from the master.
       (Bug #6461, Bug #7658)
     * mysqlbinlog  forgot to add backquotes around the collation of
       user variables (causing later parsing problems as BINARY is a
       reserved word).  (Bug #7793)
     * Ensured  that  mysqldump --single-transaction sets its
       transaction isolation level to REPEATABLE READ before proceeding
       (otherwise if the MySQL server was configured to run with a
       default isolation level lower than REPEATABLE READ it could give
       an inconsistent dump). (Bug #7850)
     * Fixed that when using the RPAD() function (or any function adding
       spaces to the right) in a query that had to be resolved by using a
       temporary table, all resulting strings had rightmost spaces
       removed (i.e. RPAD() did not work) (Bug #4048)
     * Fixed that a 5.0.3 slave can connect to a master < 3.23.50
       without hanging (the reason for the hang is a bug in these quite
       old masters -- SELECT @@unknown_var hangs them -- which was fixed
       in MySQL 3.23.50).  (Bug #7965)
     * InnoDB: Fixed a deadlock without any locking, simple select and
       update (Bug #7975). InnoDB now takes an exclusive lock when INSERT
       ON DUPLICATE KEY UPDATE is checking duplicate keys.
     * Fixed  a bug where MySQL was allowing concurrent updates
       (inserts, deletes) to a table if binary logging is enabled. Changed
       to ensure that all updates are executed in a serialized fashion,
       because they are executed serialized when binlog is replayed.
       (Bug #7879)
     * 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)



Matt Wagner, Production Engineer
Northfield, MN, USA

MySQL 5.0.3-beta has been releasedMatt Wagner28 Mar