MySQL Forums
Forum List  »  Announcements

MySQL 5.0.3-beta has been released
Posted by: Matt Wagner
Date: March 29, 2005 10:58AM

Hi,

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 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 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 http://bugs.mysql.com/ 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@wisec.it> for finding and informing us about this
issue.)
* 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 25.2.3.1 UDF Calling Sequences for
simple functions, section 25.2.3.2 UDF Calling Sequences for
aggregate functions, and section 25.2.3.6 User-defined Function
Security Precautions. (Thanks to Stefano Di Paola
<stefano.dipaola@wisec.it> 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
Functions.
* 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
#7856)
* 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
ALTER TABLE, CREATE INDEX, DROP INDEX or OPTIMIZE TABLE. This makes
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
mysqld.
* 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
tables.
* When the MyISAM storage engine detects corruption of a MyISAM
table, a message describing the problem now is written to the error
log.
* 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
TRUNCATE.
* 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
Disk.
* 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 1.5.7.4 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
behavior.
* 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
slaves.

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
#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)
* 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
#8532)
* 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
#8397)
* 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)
* 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
#6814)
* 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
#7217)
* 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
#7931)
* 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
values.
* 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
#7716)
* 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.
(CAN-2005-0004)
* 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
#6849)
* 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)
* A sequence of BEGIN (or SET AUTOCOMMIT=0), FLUSH TABLES WITH READ
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)

Enjoy!

Matt

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

Options: ReplyQuote


Subject
Views
Written By
Posted
MySQL 5.0.3-beta has been released
4807
March 29, 2005 10:58AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.