MySQL Announce
MySQL related Product and Service announcements.
Updated: 11 hours 59 min ago
MySQL Performance Schema is merged into MySQL version 5.5.3-m3 (no replies)
As of 2010-03-06, the performance schema is merged into MySQL version 5.5.3-m3, in mysql-trunk. The documentation for 5.5 has also been updated, and contains a new MySQL Performance Schema chapter.
Docs:
http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html
http://dev.mysql.com/doc/performance-schema/en/index.html
Blogs:
http://marcalff.blogspot.com/2010/01/performance-schema-overview.html
http://www.markleith.co.uk/?p=318
http://www.markleith.co.uk/?p=112
http://blogs.mysql.com/peterg/2009/02/05/mysql-performance-schema/
http://blogs.mysql.com/peterg/2009/02/06/mysql-performance-schema-2/
http://blogs.mysql.com/peterg/2009/02/09/mysql-performance-schema-3/
http://blogs.mysql.com/peterg/2009/02/10/mysql-performance-schema-4/
http://blogs.mysql.com/peterg/2009/02/11/mysql-performance-schema-5/
http://blogs.mysql.com/peterg/2009/02/12/mysql-performance-schema-6/
http://blogs.mysql.com/peterg/2009/02/13/todo-mysql-performance-schema-7/
WL#2360: Performance Schema
http://forge.mysql.com/worklog/task.php?id=2360
WL#4674 PERFORMANCE_SCHEMA Setup For Actors
http://forge.mysql.com/worklog/task.php?id=4674
WL#4895 PERFORMANCE_SCHEMA Instrumenting Table IO
http://forge.mysql.com/worklog/task.php?id=4674
WL#4896 PERFORMANCE_SCHEMA Instrumenting Net IO
http://forge.mysql.com/worklog/task.php?id=4896
WL#4878 PERFORMANCE_SCHEMA Trace
http://forge.mysql.com/worklog/task.php?id=4878
Docs:
http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html
http://dev.mysql.com/doc/performance-schema/en/index.html
Blogs:
http://marcalff.blogspot.com/2010/01/performance-schema-overview.html
http://www.markleith.co.uk/?p=318
http://www.markleith.co.uk/?p=112
http://blogs.mysql.com/peterg/2009/02/05/mysql-performance-schema/
http://blogs.mysql.com/peterg/2009/02/06/mysql-performance-schema-2/
http://blogs.mysql.com/peterg/2009/02/09/mysql-performance-schema-3/
http://blogs.mysql.com/peterg/2009/02/10/mysql-performance-schema-4/
http://blogs.mysql.com/peterg/2009/02/11/mysql-performance-schema-5/
http://blogs.mysql.com/peterg/2009/02/12/mysql-performance-schema-6/
http://blogs.mysql.com/peterg/2009/02/13/todo-mysql-performance-schema-7/
WL#2360: Performance Schema
http://forge.mysql.com/worklog/task.php?id=2360
WL#4674 PERFORMANCE_SCHEMA Setup For Actors
http://forge.mysql.com/worklog/task.php?id=4674
WL#4895 PERFORMANCE_SCHEMA Instrumenting Table IO
http://forge.mysql.com/worklog/task.php?id=4674
WL#4896 PERFORMANCE_SCHEMA Instrumenting Net IO
http://forge.mysql.com/worklog/task.php?id=4896
WL#4878 PERFORMANCE_SCHEMA Trace
http://forge.mysql.com/worklog/task.php?id=4878
MySQL Connector/Net 6.3 alpha 2 has been released (no replies)
MySQL Connector/Net 6.3.1, a new version of the all-managed .NET driver
for MySQL has been released. This is an alpha release and is intended to
introduce you to the new features and enhancements we are planning. This
release should not be used in a production environment.
It is now available in source and binary form from
[http://dev.mysql.com/downloads/connector/net/6.3.html] and mirror sites
(note that not all mirror sites may be up to date at this point of time
- if you can't find this version on some mirror, please try again later
or choose another download site.)
The new features or changes in this release are:
- Visual Studio 2010 RC support
- Nested transaction scope support
What we know may be broken
----------------------------
- Documentation is not updated yet and is not integrated into VS 2010
- Some users are having trouble installing. We are working hard to determine what is causing this problem. These
users may continue having trouble with 6.3.1. Please be patient as we work through this.
Please let us know what else we broke and how we can make it better!
for MySQL has been released. This is an alpha release and is intended to
introduce you to the new features and enhancements we are planning. This
release should not be used in a production environment.
It is now available in source and binary form from
[http://dev.mysql.com/downloads/connector/net/6.3.html] and mirror sites
(note that not all mirror sites may be up to date at this point of time
- if you can't find this version on some mirror, please try again later
or choose another download site.)
The new features or changes in this release are:
- Visual Studio 2010 RC support
- Nested transaction scope support
What we know may be broken
----------------------------
- Documentation is not updated yet and is not integrated into VS 2010
- Some users are having trouble installing. We are working hard to determine what is causing this problem. These
users may continue having trouble with 6.3.1. Please be patient as we work through this.
Please let us know what else we broke and how we can make it better!
MySQL 5.5.2-m2 has been released (no replies)
Dear MySQL users,
MySQL Server 5.5.2-m2, a new version of the popular Open Source
Database Management System, has been released.
The "-m2" suffix tells this belongs to the second milestone according
to our "milestone" release model, also called "Betony".
You can read more about the release model and the planned milestones at
http://forge.mysql.com/wiki/Development_Cycle
The new features in this release are of beta quality. As with any
other pre-production release, caution should be taken when installing on
production level systems or systems with critical data.
For production level systems using 5.1, we would like to direct your
attention to the product description of MySQL Enterprise at:
http://mysql.com/products/enterprise/
MySQL 5.5 is based on MySQL 5.4, which won't get any further updates.
So MySQL 5.5 includes several high-impact changes to address scalability
and performance issues in MySQL Server. These changes exploit advances
in hardware and CPU design and enable better utilization of existing
hardware.
For an overview of what's new in MySQL 5.5, please see the
section "What Is New in MySQL 5.5" below, or view it online at
http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html
For information on installing MySQL 5.5.2-m2 on new servers,
please see the MySQL installation documentation at
http://dev.mysql.com/doc/refman/5.5/en/installing.html
For upgrading from previous MySQL releases, please see the
important upgrade considerations at
http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html
MySQL Server 5.5 is available in source and binary form for a
number of platforms from the "Development Releases" selection
of our download pages at
http://dev.mysql.com/downloads/mysql/
Not all mirror sites may be up to date at this point in
time, so if you can't find this version on some mirror,
please try again later or choose another download site.
We welcome and appreciate your feedback, bug reports, bug
fixes, patches, etc.:
http://forge.mysql.com/wiki/Contributing
You will remember there was a security issue in yaSSL (the SSL
library used by MySQL) which was reported only while the publishing
process of 5.5.1-m2 was already running:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4484
http://bugs.mysql.com/50227
One of the changes in 5.5.2-m2 over 5.5.1-m2 is the fix for that
security issue.
Following the "What Is New" section, this mail lists the changes
in the MySQL source code of MySQL 5.5.2-m2.
The list of all "Bugs Fixed" may also be viewed online at
http://dev.mysql.com/doc/refman/5.5/en/news-5-5-2.html
Enjoy!
On behalf of the MySQL Build Team at Sun Microsystems:
Jörg Brühe,
Senior Production Engineer
-----
What Is New in MySQL 5.5
The following features have been added to MySQL 5.5:
* Support for an interface for semisynchronous replication:
A commit performed on the master side blocks before returning
to the session that performed the transaction until at least
one slave acknowledges that it has received and logged the events
for the transaction.
Semisynchronous replication is implemented through an optional
plugin component. See Section 16.2.8, "Semisynchronous Replication"
* Support for the SQL standard SIGNAL and RESIGNAL statements.
See Section 12.8.8, "SIGNAL and RESIGNAL".
* Enhancements to XML functionality, including a new LOAD XML
statement.
* Two new types of user-defined partitioning are supported:
RANGE COLUMNS partitioning is an extension to RANGE partitioning;
LIST COLUMNS partitioning is an extension to LIST partitioning.
Each of these extensions provides two enhancements to MySQL
partitioning capabilities:
1. It is possible to define partitioning ranges or lists based on
DATE, DATETIME, or string values (such as CHAR or VARCHAR).
You can also define ranges or lists based on multiple column
values when partitioning tables by RANGE COLUMNS or LIST COLUMNS,
respectively. Such a range or list may refer to up to 16 columns.
2. For tables defined using these partitioning types, partition
pruning can now optimize queries with WHERE conditions that use
multiple comparisons between (different) column values and
constants, such as
a = 10 AND b > 5 or a < "2005-11-25" AND b = 10 AND c = 50.
For more information, see Section 17.2.1, "RANGE Partitioning",
and Section 17.2.2, "LIST Partitioning".
* It is now possible to delete all rows from one or more partitions
of a partitioned table using the ALTER TABLE ... TRUNCATE
PARTITION statement. Executing the statement deletes rows without
affecting the structure of the table. The partitions named in the
TRUNCATE PARTITION clause do not have to be contiguous.
* Key caches are now supported for indexes on partitioned MyISAM
tables, using the CACHE INDEX and LOAD INDEX INTO CACHE statements.
In addition, a key cache can be defined for and loaded with indexes
from an entire partitioned table, or for one or more partitions.
In the latter case, the partitions are not required to be contiguous.
* The TO_SECONDS() function is added. This function converts a date or
datetime expression to a number of seconds since the year 0. You may
use this function in partitioning expressions, and partition pruning
is supported for table defined using such expressions.
The following constructs are deprecated and will be removed in a future
MySQL release. Where alternatives are shown, applications should be
updated to use them.
* The table_type system variable (use storage_engine).
The TYPE table option to specify the storage engine for
CREATE TABLE or ALTER TABLE (use ENGINE).
The SHOW TABLE TYPES SQL statement (use SHOW ENGINES).
* The log_bin_trust_routine_creators variable
(use log_bin_trust_function_creators).
* TIMESTAMP(N): The ability to specify a display width of N
(use without N).
* The SHOW INNODB STATUS and SHOW MUTEX STATUS SQL statements
(use SHOW ENGINE INNODB STATUS for both of these).
* The LOAD TABLE ... FROM MASTER and LOAD DATA FROM MASTER SQL
statements.
* The SHOW PLUGIN SQL statement (use SHOW PLUGINS).
* The BACKUP TABLE and the RESTORE TABLE SQL statements.
* The --master-xxx server options to set replication parameters
(use the CHANGE MASTER TO statement instead):
--master-host, --master-user, --master-password, --master-port,
--master-connect-retry, --master-ssl, --master-ssl-ca,
--master-ssl-capath, --master-ssl-cert, --master-ssl-cipher,
--master-ssl-key.
-----
Changes in MySQL 5.5.2:
InnoDB Plugin Notes:
* This release includes InnoDB Plugin 1.0.6. This version is
considered of Release Candidate (RC) quality.
Functionality added or changed:
* Replication: Introduced the
--binlog-direct-non-transactional-updates server option. This
option causes updates using the statement-based logging format
to tables using non-transactional engines to be written
directly to the binary log, rather than to the transaction
cache.
Before using this option, be certain that you have no
dependencies between transactional and non-transactional
tables. A statement that both selects from an InnoDB table and
inserts into a MyISAM table is an example of such a
dependency. For more information, see Section 16.1.3.4,
"Binary Log Options and Variables."
(Bug#46364: http://bugs.mysql.com/bug.php?id=46364)
See also Bug#28976: http://bugs.mysql.com/bug.php?id=28976,
Bug#40116: http://bugs.mysql.com/bug.php?id=40116.
Bugs fixed:
* Performance: The method for comparing INFORMATION_SCHEMA names
and database names was nonoptimal and an improvement was made:
When the database name length is already known, a length check
is made first and content comparison skipped if the lengths
are unequal.
(Bug#49501: http://bugs.mysql.com/bug.php?id=49501)
* Performance: The MD5() and SHA1() functions had excessive
overhead for short strings.
(Bug#49491: http://bugs.mysql.com/bug.php?id=49491)
* Security Fix: For servers built with yaSSL, a preauthorization
buffer overflow could cause memory corruption or a server
crash. We thank Evgeny Legerov from Intevydis for providing us
with a proof-of-concept script that allowed us to reproduce
this bug. (Bug#50227: http://bugs.mysql.com/bug.php?id=50227,
CVE-2009-4484
(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4484))
* Incompatible Change: In plugin.h, the MYSQL_REPLICATION_PLUGIN
symbol was out of synchrony with its value in MySQL 6.0
because the lower-valued MYSQL_AUDIT_PLUGIN was not present.
To correct this, MYSQL_AUDIT_PLUGIN has been added in MySQL
5.5, changing the value of MYSQL_REPLICATION_PLUGIN from 5 to
6. Attempts to load the audit plugin produce an error occurs
because only the MYSQL_AUDIT_PLUGIN symbol was added, not the
audit plugin itself. This error will go away when the audit
plugin is added to MySQL 5.5. Replication plugins from earlier
5.5.x releases must be recompiled against the current release
before they will work with the current release.
(Bug#49894: http://bugs.mysql.com/bug.php?id=49894)
* Important Change: Replication: The RAND() function is now
marked as unsafe for statement-based replication. Using this
function now generates a warning when binlog_format=STATEMENT
and causes the the format to switch to row-based logging when
binlog_format=MIXED.
This change is being introduced because, when RAND() was
logged in statement mode, the seed was also written to the
binary log, so the replication slave generated the same
sequence of random numbers as was generated on the master.
While this could make replication work in some cases, the
order of affected rows was still not guaranteed when this
function was used in statements that could update multiple
rows, such as UPDATE or INSERT ... SELECT; if the master and
the slave retrieved rows in different order, they began to
diverge. (Bug#49222: http://bugs.mysql.com/bug.php?id=49222)
* Partitioning: When used on partitioned tables, the
records_in_range handler call checked all partitions, rather
than the unpruned partitions only.
(Bug#48846: http://bugs.mysql.com/bug.php?id=48846)
See also Bug#37252: http://bugs.mysql.com/bug.php?id=37252,
Bug#47261: http://bugs.mysql.com/bug.php?id=47261.
* Partitioning: When an ALTER TABLE ... REORGANIZE PARTITION
statement on an InnoDB table failed due to
innodb_lock_wait_timeout expiring while waiting for a lock,
InnoDB did not clean up any temporary files or tables which it
had created. Attempting to reissue the ALTER TABLE statement
following the timeout could lead to storage engine errors, or
possibly a crash of the server.
(Bug#47343: http://bugs.mysql.com/bug.php?id=47343)
* Replication: FLUSH LOGS could in some circumstances crash the
server. This occurred because the I/O thread could
concurrently access the relay log I/O cache while another
thread was performing the FLUSH LOGS, which closes and reopens
the relay log and, while doing so, initializes (or
re-initializes) its I/O cache. This could cause problems if
some other thread (in this case, the I/O thread) is accessing
it at the same time.
Now the thread performing the FLUSH LOGS takes a lock on the
relay log before actually flushing it.
(Bug#50364: http://bugs.mysql.com/bug.php?id=50364)
* Replication: With semisynchronous replication, memory
allocated for handling transactions could be freed while still
in use, resulting in a server crash.
(Bug#50157: http://bugs.mysql.com/bug.php?id=50157)
* Replication: In some cases, inserting into a table with many
columns could cause the binary log to become corrupted.
(Bug#50018: http://bugs.mysql.com/bug.php?id=50018)
See also Bug#42749: http://bugs.mysql.com/bug.php?id=42749.
* Replication: When using row-based replication, setting a BIT
or CHAR column of a MyISAM table to NULL, then trying to
delete from the table, caused the slave to fail with the error
Can't find record in table.
(Bug#49481: http://bugs.mysql.com/bug.php?id=49481,
Bug#49482: http://bugs.mysql.com/bug.php?id=49482)
* Replication: A LOAD DATA INFILE statement that loaded data
into a table having a column name that had to be escaped (such
as `key` INT) caused replication to fail when logging in mixed
or statement mode. In such cases, the master wrote the LOAD
DATA event into the binary log without escaping the column
names. (Bug#49479: http://bugs.mysql.com/bug.php?id=49479)
See also Bug#47927: http://bugs.mysql.com/bug.php?id=47927.
* Replication: When logging in row-based mode, DDL statements
are actually logged as statements; however, statements that
affected temporary tables and followed DDL statements failed
to reset the binary log format to ROW, with the result that
these statements were logged using the statement-based format.
Now the state of binlog_format is restored after a DDL
statement has been written to the binary log.
(Bug#49132: http://bugs.mysql.com/bug.php?id=49132)
* Replication: Spatial data types caused row-based replication
to crash. (Bug#48776: http://bugs.mysql.com/bug.php?id=48776)
* Replication: When using row-based logging, the statement
CREATE TABLE t IF NOT EXIST ... SELECT was logged as CREATE
TEMPORARY TABLE t IF NOT EXIST ... SELECT when t already
existed as a temporary table. This was caused by the fact that
the temporary table was opened and the results of the SELECT
were inserted into it when a temporary table existed and had
the same name.
Now, when this statement is executed, t is created as a base
table, the results of the SELECT are inserted into it --- even
if there already exists a temporary table having the same name
--- and the statement is logged correctly.
(Bug#47418: http://bugs.mysql.com/bug.php?id=47418)
See also Bug#47442: http://bugs.mysql.com/bug.php?id=47442.
* Replication: Due to a change in the size of event
representations in the binary log, when replicating from a
MySQL 4.1 master to a slave running MySQL 5.0.60 or later, the
START SLAVE UNTIL statement did not function correctly,
stopping at the wrong position in the log. Now the slave
detects that the master is using the older version of the
binary log format, and corrects for the difference in event
size, so that the slave stops in the correct position.
(Bug#47142: http://bugs.mysql.com/bug.php?id=47142)
* Replication: Manually removing entries from the binary log
index file on a replication master could cause the server to
repeatedly send the same binary log file to slaves.
(Bug#28421: http://bugs.mysql.com/bug.php?id=28421)
* The SSL certificates in the test suite were about to expire.
They have been updated with expiration dates in the year 2015.
(Bug#50642: http://bugs.mysql.com/bug.php?id=50642)
* SPATIAL indexes were allowed on columns with non-spatial data
types, resulting in a server crash for subsequent table
inserts. (Bug#50574: http://bugs.mysql.com/bug.php?id=50574)
* Index prefixes could be specified with a length greater than
the associated column, resulting in a server crash for
subsequent table inserts.
(Bug#50542: http://bugs.mysql.com/bug.php?id=50542)
* Use of loose index scan optimization for an aggregate function
with DISTINCT (for example, COUNT(DISTINCT)) could produce
incorrect results.
(Bug#50539: http://bugs.mysql.com/bug.php?id=50539)
* The printstack function does not exist on Solaris 8 or
earlier, which would lead to a compilation failure.
(Bug#50409: http://bugs.mysql.com/bug.php?id=50409)
* A user could see tables in INFORMATION_SCHEMA.TABLES without
appropriate privileges for them.
(Bug#50276: http://bugs.mysql.com/bug.php?id=50276)
* Debug output for join structures was garbled.
(Bug#50271: http://bugs.mysql.com/bug.php?id=50271)
* Within a stored routine, selecting the result of CONCAT_WS()
with a routine parameter argument into a user variable could
return incorrect results.
(Bug#50096: http://bugs.mysql.com/bug.php?id=50096)
* The filesort sorting method applied to a CHAR(0) column could
lead to a server crash.
(Bug#49897: http://bugs.mysql.com/bug.php?id=49897)
* EXPLAIN EXTENDED UNION ... ORDER BY caused a crash when the
ORDER BY referred to a nonconstant or full-text function or a
subquery. (Bug#49734: http://bugs.mysql.com/bug.php?id=49734)
* Some prepared statements could raise an assertion when
re-executed.
(Bug#49570: http://bugs.mysql.com/bug.php?id=49570)
* sql_buffer_result had an effect on non-SELECT statements,
contrary to the documentation.
(Bug#49552: http://bugs.mysql.com/bug.php?id=49552)
* In some cases a subquery need not be evaluated because it
returns only aggregate values that can be calculated from
table metadata. This sometimes was not handled by the
enclosing subquery, resulting in a server crash.
(Bug#49512: http://bugs.mysql.com/bug.php?id=49512)
* Mixing full-text searches and row expressions caused a crash.
(Bug#49445: http://bugs.mysql.com/bug.php?id=49445)
* Creating or dropping a table with 1023 transactions active
caused an assertion failure.
(Bug#49238: http://bugs.mysql.com/bug.php?id=49238)
* mysql-test-run.pl now recognizes the MTR_TESTCASE_TIMEOUT,
MTR_SUITE_TIMEOUT, MTR_SHUTDOWN_TIMEOUT, and MTR_START_TIMEOUT
environment variables. If they are set, their values are used
to set the --testcase-timeout, --suite-timeout,
--shutdown-timeout, and --start-timeout options, respectively.
(Bug#49210: http://bugs.mysql.com/bug.php?id=49210)
* Several strmake() calls had an incorrect length argument (too
large by one).
(Bug#48983: http://bugs.mysql.com/bug.php?id=48983)
* On Fedora 12, strmov() did not guarantee correct operation for
overlapping source and destination buffer. Calls were fixed to
use an overlap-safe version instead.
(Bug#48866: http://bugs.mysql.com/bug.php?id=48866)
* With one thread waiting for a lock on a table, if another
thread dropped the table and created a new table with the same
name and structure, the first thread would not notice that the
table had been re-created and would try to used cached
metadata that belonged to the old table but had been freed.
(Bug#48157: http://bugs.mysql.com/bug.php?id=48157)
* If an invocation of a stored procedure failed in the
table-open stage, subsequent invocations that did not fail in
that stage could cause a crash.
(Bug#47649: http://bugs.mysql.com/bug.php?id=47649)
* A crash occurred when a user variable that was assigned to a
subquery result was used as a result field in a SELECT
statement with aggregate functions.
(Bug#47371: http://bugs.mysql.com/bug.php?id=47371)
* When the mysql client was invoked with the --vertical option,
it ignored the --skip-column-names option.
(Bug#47147: http://bugs.mysql.com/bug.php?id=47147)
* If EXPLAIN encountered an error in the query, a memory leak
occurred. (Bug#45989: http://bugs.mysql.com/bug.php?id=45989)
* A race condition on the privilege hash tables allowed one
thread to try to delete elements that had already been deleted
by another thread. A consequence was that SET PASSWORD or
FLUSH PRIVILEGES could cause a crash.
(Bug#35589: http://bugs.mysql.com/bug.php?id=35589,
Bug#35591: http://bugs.mysql.com/bug.php?id=35591)
* 1) In rare cases, if a thread was interrupted during a FLUSH
PRIVILEGES operation, a debug assertion occurred later due to
improper diagnostic area setup. 2) A KILL operation could
cause a console error message referring to a diagnostic area
state without first ensuring that the state existed.
(Bug#33982: http://bugs.mysql.com/bug.php?id=33982)
* ALTER TABLE with both DROP COLUMN and ADD COLUMN clauses could
crash or lock up the server.
(Bug#31145: http://bugs.mysql.com/bug.php?id=31145)
* The Table_locks_waited waited variable was not incremented in
the cases that a lock had to be waited for but the waiting
thread was killed or the request was aborted.
(Bug#30331: http://bugs.mysql.com/bug.php?id=30331)
--
Joerg Bruehe, MySQL Build Team, Joerg.Bruehe@Sun.COM
Sun Microsystems GmbH, Komturstraße 18a, D-12099 Berlin
Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels
Vorsitzender des Aufsichtsrates: Martin Haering Muenchen: HRB161028
MySQL Server 5.5.2-m2, a new version of the popular Open Source
Database Management System, has been released.
The "-m2" suffix tells this belongs to the second milestone according
to our "milestone" release model, also called "Betony".
You can read more about the release model and the planned milestones at
http://forge.mysql.com/wiki/Development_Cycle
The new features in this release are of beta quality. As with any
other pre-production release, caution should be taken when installing on
production level systems or systems with critical data.
For production level systems using 5.1, we would like to direct your
attention to the product description of MySQL Enterprise at:
http://mysql.com/products/enterprise/
MySQL 5.5 is based on MySQL 5.4, which won't get any further updates.
So MySQL 5.5 includes several high-impact changes to address scalability
and performance issues in MySQL Server. These changes exploit advances
in hardware and CPU design and enable better utilization of existing
hardware.
For an overview of what's new in MySQL 5.5, please see the
section "What Is New in MySQL 5.5" below, or view it online at
http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html
For information on installing MySQL 5.5.2-m2 on new servers,
please see the MySQL installation documentation at
http://dev.mysql.com/doc/refman/5.5/en/installing.html
For upgrading from previous MySQL releases, please see the
important upgrade considerations at
http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html
MySQL Server 5.5 is available in source and binary form for a
number of platforms from the "Development Releases" selection
of our download pages at
http://dev.mysql.com/downloads/mysql/
Not all mirror sites may be up to date at this point in
time, so if you can't find this version on some mirror,
please try again later or choose another download site.
We welcome and appreciate your feedback, bug reports, bug
fixes, patches, etc.:
http://forge.mysql.com/wiki/Contributing
You will remember there was a security issue in yaSSL (the SSL
library used by MySQL) which was reported only while the publishing
process of 5.5.1-m2 was already running:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4484
http://bugs.mysql.com/50227
One of the changes in 5.5.2-m2 over 5.5.1-m2 is the fix for that
security issue.
Following the "What Is New" section, this mail lists the changes
in the MySQL source code of MySQL 5.5.2-m2.
The list of all "Bugs Fixed" may also be viewed online at
http://dev.mysql.com/doc/refman/5.5/en/news-5-5-2.html
Enjoy!
On behalf of the MySQL Build Team at Sun Microsystems:
Jörg Brühe,
Senior Production Engineer
-----
What Is New in MySQL 5.5
The following features have been added to MySQL 5.5:
* Support for an interface for semisynchronous replication:
A commit performed on the master side blocks before returning
to the session that performed the transaction until at least
one slave acknowledges that it has received and logged the events
for the transaction.
Semisynchronous replication is implemented through an optional
plugin component. See Section 16.2.8, "Semisynchronous Replication"
* Support for the SQL standard SIGNAL and RESIGNAL statements.
See Section 12.8.8, "SIGNAL and RESIGNAL".
* Enhancements to XML functionality, including a new LOAD XML
statement.
* Two new types of user-defined partitioning are supported:
RANGE COLUMNS partitioning is an extension to RANGE partitioning;
LIST COLUMNS partitioning is an extension to LIST partitioning.
Each of these extensions provides two enhancements to MySQL
partitioning capabilities:
1. It is possible to define partitioning ranges or lists based on
DATE, DATETIME, or string values (such as CHAR or VARCHAR).
You can also define ranges or lists based on multiple column
values when partitioning tables by RANGE COLUMNS or LIST COLUMNS,
respectively. Such a range or list may refer to up to 16 columns.
2. For tables defined using these partitioning types, partition
pruning can now optimize queries with WHERE conditions that use
multiple comparisons between (different) column values and
constants, such as
a = 10 AND b > 5 or a < "2005-11-25" AND b = 10 AND c = 50.
For more information, see Section 17.2.1, "RANGE Partitioning",
and Section 17.2.2, "LIST Partitioning".
* It is now possible to delete all rows from one or more partitions
of a partitioned table using the ALTER TABLE ... TRUNCATE
PARTITION statement. Executing the statement deletes rows without
affecting the structure of the table. The partitions named in the
TRUNCATE PARTITION clause do not have to be contiguous.
* Key caches are now supported for indexes on partitioned MyISAM
tables, using the CACHE INDEX and LOAD INDEX INTO CACHE statements.
In addition, a key cache can be defined for and loaded with indexes
from an entire partitioned table, or for one or more partitions.
In the latter case, the partitions are not required to be contiguous.
* The TO_SECONDS() function is added. This function converts a date or
datetime expression to a number of seconds since the year 0. You may
use this function in partitioning expressions, and partition pruning
is supported for table defined using such expressions.
The following constructs are deprecated and will be removed in a future
MySQL release. Where alternatives are shown, applications should be
updated to use them.
* The table_type system variable (use storage_engine).
The TYPE table option to specify the storage engine for
CREATE TABLE or ALTER TABLE (use ENGINE).
The SHOW TABLE TYPES SQL statement (use SHOW ENGINES).
* The log_bin_trust_routine_creators variable
(use log_bin_trust_function_creators).
* TIMESTAMP(N): The ability to specify a display width of N
(use without N).
* The SHOW INNODB STATUS and SHOW MUTEX STATUS SQL statements
(use SHOW ENGINE INNODB STATUS for both of these).
* The LOAD TABLE ... FROM MASTER and LOAD DATA FROM MASTER SQL
statements.
* The SHOW PLUGIN SQL statement (use SHOW PLUGINS).
* The BACKUP TABLE and the RESTORE TABLE SQL statements.
* The --master-xxx server options to set replication parameters
(use the CHANGE MASTER TO statement instead):
--master-host, --master-user, --master-password, --master-port,
--master-connect-retry, --master-ssl, --master-ssl-ca,
--master-ssl-capath, --master-ssl-cert, --master-ssl-cipher,
--master-ssl-key.
-----
Changes in MySQL 5.5.2:
InnoDB Plugin Notes:
* This release includes InnoDB Plugin 1.0.6. This version is
considered of Release Candidate (RC) quality.
Functionality added or changed:
* Replication: Introduced the
--binlog-direct-non-transactional-updates server option. This
option causes updates using the statement-based logging format
to tables using non-transactional engines to be written
directly to the binary log, rather than to the transaction
cache.
Before using this option, be certain that you have no
dependencies between transactional and non-transactional
tables. A statement that both selects from an InnoDB table and
inserts into a MyISAM table is an example of such a
dependency. For more information, see Section 16.1.3.4,
"Binary Log Options and Variables."
(Bug#46364: http://bugs.mysql.com/bug.php?id=46364)
See also Bug#28976: http://bugs.mysql.com/bug.php?id=28976,
Bug#40116: http://bugs.mysql.com/bug.php?id=40116.
Bugs fixed:
* Performance: The method for comparing INFORMATION_SCHEMA names
and database names was nonoptimal and an improvement was made:
When the database name length is already known, a length check
is made first and content comparison skipped if the lengths
are unequal.
(Bug#49501: http://bugs.mysql.com/bug.php?id=49501)
* Performance: The MD5() and SHA1() functions had excessive
overhead for short strings.
(Bug#49491: http://bugs.mysql.com/bug.php?id=49491)
* Security Fix: For servers built with yaSSL, a preauthorization
buffer overflow could cause memory corruption or a server
crash. We thank Evgeny Legerov from Intevydis for providing us
with a proof-of-concept script that allowed us to reproduce
this bug. (Bug#50227: http://bugs.mysql.com/bug.php?id=50227,
CVE-2009-4484
(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4484))
* Incompatible Change: In plugin.h, the MYSQL_REPLICATION_PLUGIN
symbol was out of synchrony with its value in MySQL 6.0
because the lower-valued MYSQL_AUDIT_PLUGIN was not present.
To correct this, MYSQL_AUDIT_PLUGIN has been added in MySQL
5.5, changing the value of MYSQL_REPLICATION_PLUGIN from 5 to
6. Attempts to load the audit plugin produce an error occurs
because only the MYSQL_AUDIT_PLUGIN symbol was added, not the
audit plugin itself. This error will go away when the audit
plugin is added to MySQL 5.5. Replication plugins from earlier
5.5.x releases must be recompiled against the current release
before they will work with the current release.
(Bug#49894: http://bugs.mysql.com/bug.php?id=49894)
* Important Change: Replication: The RAND() function is now
marked as unsafe for statement-based replication. Using this
function now generates a warning when binlog_format=STATEMENT
and causes the the format to switch to row-based logging when
binlog_format=MIXED.
This change is being introduced because, when RAND() was
logged in statement mode, the seed was also written to the
binary log, so the replication slave generated the same
sequence of random numbers as was generated on the master.
While this could make replication work in some cases, the
order of affected rows was still not guaranteed when this
function was used in statements that could update multiple
rows, such as UPDATE or INSERT ... SELECT; if the master and
the slave retrieved rows in different order, they began to
diverge. (Bug#49222: http://bugs.mysql.com/bug.php?id=49222)
* Partitioning: When used on partitioned tables, the
records_in_range handler call checked all partitions, rather
than the unpruned partitions only.
(Bug#48846: http://bugs.mysql.com/bug.php?id=48846)
See also Bug#37252: http://bugs.mysql.com/bug.php?id=37252,
Bug#47261: http://bugs.mysql.com/bug.php?id=47261.
* Partitioning: When an ALTER TABLE ... REORGANIZE PARTITION
statement on an InnoDB table failed due to
innodb_lock_wait_timeout expiring while waiting for a lock,
InnoDB did not clean up any temporary files or tables which it
had created. Attempting to reissue the ALTER TABLE statement
following the timeout could lead to storage engine errors, or
possibly a crash of the server.
(Bug#47343: http://bugs.mysql.com/bug.php?id=47343)
* Replication: FLUSH LOGS could in some circumstances crash the
server. This occurred because the I/O thread could
concurrently access the relay log I/O cache while another
thread was performing the FLUSH LOGS, which closes and reopens
the relay log and, while doing so, initializes (or
re-initializes) its I/O cache. This could cause problems if
some other thread (in this case, the I/O thread) is accessing
it at the same time.
Now the thread performing the FLUSH LOGS takes a lock on the
relay log before actually flushing it.
(Bug#50364: http://bugs.mysql.com/bug.php?id=50364)
* Replication: With semisynchronous replication, memory
allocated for handling transactions could be freed while still
in use, resulting in a server crash.
(Bug#50157: http://bugs.mysql.com/bug.php?id=50157)
* Replication: In some cases, inserting into a table with many
columns could cause the binary log to become corrupted.
(Bug#50018: http://bugs.mysql.com/bug.php?id=50018)
See also Bug#42749: http://bugs.mysql.com/bug.php?id=42749.
* Replication: When using row-based replication, setting a BIT
or CHAR column of a MyISAM table to NULL, then trying to
delete from the table, caused the slave to fail with the error
Can't find record in table.
(Bug#49481: http://bugs.mysql.com/bug.php?id=49481,
Bug#49482: http://bugs.mysql.com/bug.php?id=49482)
* Replication: A LOAD DATA INFILE statement that loaded data
into a table having a column name that had to be escaped (such
as `key` INT) caused replication to fail when logging in mixed
or statement mode. In such cases, the master wrote the LOAD
DATA event into the binary log without escaping the column
names. (Bug#49479: http://bugs.mysql.com/bug.php?id=49479)
See also Bug#47927: http://bugs.mysql.com/bug.php?id=47927.
* Replication: When logging in row-based mode, DDL statements
are actually logged as statements; however, statements that
affected temporary tables and followed DDL statements failed
to reset the binary log format to ROW, with the result that
these statements were logged using the statement-based format.
Now the state of binlog_format is restored after a DDL
statement has been written to the binary log.
(Bug#49132: http://bugs.mysql.com/bug.php?id=49132)
* Replication: Spatial data types caused row-based replication
to crash. (Bug#48776: http://bugs.mysql.com/bug.php?id=48776)
* Replication: When using row-based logging, the statement
CREATE TABLE t IF NOT EXIST ... SELECT was logged as CREATE
TEMPORARY TABLE t IF NOT EXIST ... SELECT when t already
existed as a temporary table. This was caused by the fact that
the temporary table was opened and the results of the SELECT
were inserted into it when a temporary table existed and had
the same name.
Now, when this statement is executed, t is created as a base
table, the results of the SELECT are inserted into it --- even
if there already exists a temporary table having the same name
--- and the statement is logged correctly.
(Bug#47418: http://bugs.mysql.com/bug.php?id=47418)
See also Bug#47442: http://bugs.mysql.com/bug.php?id=47442.
* Replication: Due to a change in the size of event
representations in the binary log, when replicating from a
MySQL 4.1 master to a slave running MySQL 5.0.60 or later, the
START SLAVE UNTIL statement did not function correctly,
stopping at the wrong position in the log. Now the slave
detects that the master is using the older version of the
binary log format, and corrects for the difference in event
size, so that the slave stops in the correct position.
(Bug#47142: http://bugs.mysql.com/bug.php?id=47142)
* Replication: Manually removing entries from the binary log
index file on a replication master could cause the server to
repeatedly send the same binary log file to slaves.
(Bug#28421: http://bugs.mysql.com/bug.php?id=28421)
* The SSL certificates in the test suite were about to expire.
They have been updated with expiration dates in the year 2015.
(Bug#50642: http://bugs.mysql.com/bug.php?id=50642)
* SPATIAL indexes were allowed on columns with non-spatial data
types, resulting in a server crash for subsequent table
inserts. (Bug#50574: http://bugs.mysql.com/bug.php?id=50574)
* Index prefixes could be specified with a length greater than
the associated column, resulting in a server crash for
subsequent table inserts.
(Bug#50542: http://bugs.mysql.com/bug.php?id=50542)
* Use of loose index scan optimization for an aggregate function
with DISTINCT (for example, COUNT(DISTINCT)) could produce
incorrect results.
(Bug#50539: http://bugs.mysql.com/bug.php?id=50539)
* The printstack function does not exist on Solaris 8 or
earlier, which would lead to a compilation failure.
(Bug#50409: http://bugs.mysql.com/bug.php?id=50409)
* A user could see tables in INFORMATION_SCHEMA.TABLES without
appropriate privileges for them.
(Bug#50276: http://bugs.mysql.com/bug.php?id=50276)
* Debug output for join structures was garbled.
(Bug#50271: http://bugs.mysql.com/bug.php?id=50271)
* Within a stored routine, selecting the result of CONCAT_WS()
with a routine parameter argument into a user variable could
return incorrect results.
(Bug#50096: http://bugs.mysql.com/bug.php?id=50096)
* The filesort sorting method applied to a CHAR(0) column could
lead to a server crash.
(Bug#49897: http://bugs.mysql.com/bug.php?id=49897)
* EXPLAIN EXTENDED UNION ... ORDER BY caused a crash when the
ORDER BY referred to a nonconstant or full-text function or a
subquery. (Bug#49734: http://bugs.mysql.com/bug.php?id=49734)
* Some prepared statements could raise an assertion when
re-executed.
(Bug#49570: http://bugs.mysql.com/bug.php?id=49570)
* sql_buffer_result had an effect on non-SELECT statements,
contrary to the documentation.
(Bug#49552: http://bugs.mysql.com/bug.php?id=49552)
* In some cases a subquery need not be evaluated because it
returns only aggregate values that can be calculated from
table metadata. This sometimes was not handled by the
enclosing subquery, resulting in a server crash.
(Bug#49512: http://bugs.mysql.com/bug.php?id=49512)
* Mixing full-text searches and row expressions caused a crash.
(Bug#49445: http://bugs.mysql.com/bug.php?id=49445)
* Creating or dropping a table with 1023 transactions active
caused an assertion failure.
(Bug#49238: http://bugs.mysql.com/bug.php?id=49238)
* mysql-test-run.pl now recognizes the MTR_TESTCASE_TIMEOUT,
MTR_SUITE_TIMEOUT, MTR_SHUTDOWN_TIMEOUT, and MTR_START_TIMEOUT
environment variables. If they are set, their values are used
to set the --testcase-timeout, --suite-timeout,
--shutdown-timeout, and --start-timeout options, respectively.
(Bug#49210: http://bugs.mysql.com/bug.php?id=49210)
* Several strmake() calls had an incorrect length argument (too
large by one).
(Bug#48983: http://bugs.mysql.com/bug.php?id=48983)
* On Fedora 12, strmov() did not guarantee correct operation for
overlapping source and destination buffer. Calls were fixed to
use an overlap-safe version instead.
(Bug#48866: http://bugs.mysql.com/bug.php?id=48866)
* With one thread waiting for a lock on a table, if another
thread dropped the table and created a new table with the same
name and structure, the first thread would not notice that the
table had been re-created and would try to used cached
metadata that belonged to the old table but had been freed.
(Bug#48157: http://bugs.mysql.com/bug.php?id=48157)
* If an invocation of a stored procedure failed in the
table-open stage, subsequent invocations that did not fail in
that stage could cause a crash.
(Bug#47649: http://bugs.mysql.com/bug.php?id=47649)
* A crash occurred when a user variable that was assigned to a
subquery result was used as a result field in a SELECT
statement with aggregate functions.
(Bug#47371: http://bugs.mysql.com/bug.php?id=47371)
* When the mysql client was invoked with the --vertical option,
it ignored the --skip-column-names option.
(Bug#47147: http://bugs.mysql.com/bug.php?id=47147)
* If EXPLAIN encountered an error in the query, a memory leak
occurred. (Bug#45989: http://bugs.mysql.com/bug.php?id=45989)
* A race condition on the privilege hash tables allowed one
thread to try to delete elements that had already been deleted
by another thread. A consequence was that SET PASSWORD or
FLUSH PRIVILEGES could cause a crash.
(Bug#35589: http://bugs.mysql.com/bug.php?id=35589,
Bug#35591: http://bugs.mysql.com/bug.php?id=35591)
* 1) In rare cases, if a thread was interrupted during a FLUSH
PRIVILEGES operation, a debug assertion occurred later due to
improper diagnostic area setup. 2) A KILL operation could
cause a console error message referring to a diagnostic area
state without first ensuring that the state existed.
(Bug#33982: http://bugs.mysql.com/bug.php?id=33982)
* ALTER TABLE with both DROP COLUMN and ADD COLUMN clauses could
crash or lock up the server.
(Bug#31145: http://bugs.mysql.com/bug.php?id=31145)
* The Table_locks_waited waited variable was not incremented in
the cases that a lock had to be waited for but the waiting
thread was killed or the request was aborted.
(Bug#30331: http://bugs.mysql.com/bug.php?id=30331)
--
Joerg Bruehe, MySQL Build Team, Joerg.Bruehe@Sun.COM
Sun Microsystems GmbH, Komturstraße 18a, D-12099 Berlin
Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels
Vorsitzender des Aufsichtsrates: Martin Haering Muenchen: HRB161028
MySQL Community Server 5.1.44 has been released (no replies)
Dear MySQL users,
MySQL Community Server 5.1.44, a new version of the popular Open
Source Database Management System, has been released. MySQL 5.1.44 is
recommended for use on production systems.
For an overview of what's new in MySQL 5.1, please see
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
For information on installing MySQL 5.1.44 on new servers or upgrading
to MySQL 5.1.44 from previous MySQL releases, please see
http://dev.mysql.com/doc/refman/5.1/en/installing.html
MySQL Server is available in source and binary form for a number of
platforms from our download pages at
http://dev.mysql.com/downloads/
Not all mirror sites may be up to date at this point in time, so if
you can't find this version on some mirror, please try again later or
choose another download site.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:
http://forge.mysql.com/wiki/Contributing
For information on open issues in MySQL 5.1, please see the errata
list at
http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html
The following section lists the changes in the MySQL source code since
the previous released version of MySQL 5.1. It may also be viewed
online at
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-44.html
Enjoy!
=======================================================================
C.1.2. Changes in MySQL 5.1.44 InnoDB Plugin Notes: * This release includes InnoDB Plugin 1.0.6. This version is considered of Release Candidate (RC) quality. In this release, the InnoDB Plugin is included in source and binary distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64, ia64), and generic Linux RPM packages. It also does not work for FreeBSD 6 and HP-UX or for Linux on generic ia64. Functionality added or changed: * Replication: Introduced the --binlog-direct-non-transactional-updates server option. This option causes updates using the statement-based logging format to tables using non-transactional engines to be written directly to the binary log, rather than to the transaction cache. Before using this option, be certain that you have no dependencies between transactional and non-transactional tables. A statement that both selects from an InnoDB table and inserts into a MyISAM table is an example of such a dependency. For more information, see Section 16.1.3.4, "Binary Log Options and Variables." (Bug#46364: http://bugs.mysql.com/bug.php?id=46364) See also Bug#28976: http://bugs.mysql.com/bug.php?id=28976, Bug#40116: http://bugs.mysql.com/bug.php?id=40116. Bugs fixed: * Partitioning: When an ALTER TABLE ... REORGANIZE PARTITION statement on an InnoDB table failed due to innodb_lock_wait_timeout expiring while waiting for a lock, InnoDB did not clean up any temporary files or tables which it had created. Attempting to reissue the ALTER TABLE statement following the timeout could lead to storage engine errors, or possibly a crash of the server. (Bug#47343: http://bugs.mysql.com/bug.php?id=47343) * Replication: In some cases, inserting into a table with many columns could cause the binary log to become corrupted. (Bug#50018: http://bugs.mysql.com/bug.php?id=50018) See also Bug#42749: http://bugs.mysql.com/bug.php?id=42749. * Replication: When using row-based replication, setting a BIT or CHAR column of a MyISAM table to NULL, then trying to delete from the table, caused the slave to fail with the error Can't find record in table. (Bug#49481: http://bugs.mysql.com/bug.php?id=49481, Bug#49482: http://bugs.mysql.com/bug.php?id=49482) * Replication: When logging in row-based mode, DDL statements are actually logged as statements; however, statements that affected temporary tables and followed DDL statements failed to reset the binary log format to ROW, with the result that these statements were logged using the statement-based format. Now the state of binlog_format is restored after a DDL statement has been written to the binary log. (Bug#49132: http://bugs.mysql.com/bug.php?id=49132) * Replication: When using row-based logging, the statement CREATE TABLE t IF NOT EXIST ... SELECT was logged as CREATE TEMPORARY TABLE t IF NOT EXIST ... SELECT when t already existed as a temporary table. This was caused by the fact that the temporary table was opened and the results of the SELECT were inserted into it when a temporary table existed and had the same name. Now, when this statement is executed, t is created as a base table, the results of the SELECT are inserted into it --- even if there already exists a temporary table having the same name --- and the statement is logged correctly. (Bug#47418: http://bugs.mysql.com/bug.php?id=47418) See also Bug#47442: http://bugs.mysql.com/bug.php?id=47442. * Replication: Due to a change in the size of event representations in the binary log, when replicating from a MySQL 4.1 master to a slave running MySQL 5.0.60 or later, the START SLAVE UNTIL statement did not function correctly, stopping at the wrong position in the log. Now the slave detects that the master is using the older version of the binary log format, and corrects for the difference in event size, so that the slave stops in the correct position. (Bug#47142: http://bugs.mysql.com/bug.php?id=47142) * The SSL certificates in the test suite were about to expire. They have been updated with expiration dates in the year 2015. (Bug#50642: http://bugs.mysql.com/bug.php?id=50642) * The printstack function does not exist on Solaris 8 or earlier, which would lead to a compilation failure. (Bug#50409: http://bugs.mysql.com/bug.php?id=50409) * A user could see tables in INFORMATION_SCHEMA.TABLES without appropriate privileges for them. (Bug#50276: http://bugs.mysql.com/bug.php?id=50276) * Debug output for join structures was garbled. (Bug#50271: http://bugs.mysql.com/bug.php?id=50271) * The filesort sorting method applied to a CHAR(0) column could lead to a server crash. (Bug#49897: http://bugs.mysql.com/bug.php?id=49897) * sql_buffer_result had an effect on non-SELECT statements, contrary to the documentation. (Bug#49552: http://bugs.mysql.com/bug.php?id=49552) * In some cases a subquery need not be evaluated because it returns only aggregate values that can be calculated from table metadata. This sometimes was not handled by the enclosing subquery, resulting in a server crash. (Bug#49512: http://bugs.mysql.com/bug.php?id=49512) * The method for comparing INFORMATION_SCHEMA names and database names was nonoptimal and an improvement was made: When the database name length is already known, a length check is made first and content comparison skipped if the lengths are unequal. (Bug#49501: http://bugs.mysql.com/bug.php?id=49501) * The MD5() and SHA1() functions had excessive overhead for short strings. (Bug#49491: http://bugs.mysql.com/bug.php?id=49491) * Mixing full-text searches and row expressions caused a crash. (Bug#49445: http://bugs.mysql.com/bug.php?id=49445) * Creating or dropping a table with 1023 transactions active caused an assertion failure. (Bug#49238: http://bugs.mysql.com/bug.php?id=49238) * mysql-test-run.pl now recognizes the MTR_TESTCASE_TIMEOUT, MTR_SUITE_TIMEOUT, MTR_SHUTDOWN_TIMEOUT, and MTR_START_TIMEOUT environment variables. If they are set, their values are used to set the --testcase-timeout, --suite-timeout, --shutdown-timeout, and --start-timeout options, respectively. (Bug#49210: http://bugs.mysql.com/bug.php?id=49210)
Thanks,
MySQL RE Team
Hery Ramilison, Karen Langford, MySQL Release Engineers
Database Group, Sun Microsystem Inc.
MySQL Community Server 5.1.44, a new version of the popular Open
Source Database Management System, has been released. MySQL 5.1.44 is
recommended for use on production systems.
For an overview of what's new in MySQL 5.1, please see
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
For information on installing MySQL 5.1.44 on new servers or upgrading
to MySQL 5.1.44 from previous MySQL releases, please see
http://dev.mysql.com/doc/refman/5.1/en/installing.html
MySQL Server is available in source and binary form for a number of
platforms from our download pages at
http://dev.mysql.com/downloads/
Not all mirror sites may be up to date at this point in time, so if
you can't find this version on some mirror, please try again later or
choose another download site.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:
http://forge.mysql.com/wiki/Contributing
For information on open issues in MySQL 5.1, please see the errata
list at
http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html
The following section lists the changes in the MySQL source code since
the previous released version of MySQL 5.1. It may also be viewed
online at
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-44.html
Enjoy!
=======================================================================
C.1.2. Changes in MySQL 5.1.44 InnoDB Plugin Notes: * This release includes InnoDB Plugin 1.0.6. This version is considered of Release Candidate (RC) quality. In this release, the InnoDB Plugin is included in source and binary distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64, ia64), and generic Linux RPM packages. It also does not work for FreeBSD 6 and HP-UX or for Linux on generic ia64. Functionality added or changed: * Replication: Introduced the --binlog-direct-non-transactional-updates server option. This option causes updates using the statement-based logging format to tables using non-transactional engines to be written directly to the binary log, rather than to the transaction cache. Before using this option, be certain that you have no dependencies between transactional and non-transactional tables. A statement that both selects from an InnoDB table and inserts into a MyISAM table is an example of such a dependency. For more information, see Section 16.1.3.4, "Binary Log Options and Variables." (Bug#46364: http://bugs.mysql.com/bug.php?id=46364) See also Bug#28976: http://bugs.mysql.com/bug.php?id=28976, Bug#40116: http://bugs.mysql.com/bug.php?id=40116. Bugs fixed: * Partitioning: When an ALTER TABLE ... REORGANIZE PARTITION statement on an InnoDB table failed due to innodb_lock_wait_timeout expiring while waiting for a lock, InnoDB did not clean up any temporary files or tables which it had created. Attempting to reissue the ALTER TABLE statement following the timeout could lead to storage engine errors, or possibly a crash of the server. (Bug#47343: http://bugs.mysql.com/bug.php?id=47343) * Replication: In some cases, inserting into a table with many columns could cause the binary log to become corrupted. (Bug#50018: http://bugs.mysql.com/bug.php?id=50018) See also Bug#42749: http://bugs.mysql.com/bug.php?id=42749. * Replication: When using row-based replication, setting a BIT or CHAR column of a MyISAM table to NULL, then trying to delete from the table, caused the slave to fail with the error Can't find record in table. (Bug#49481: http://bugs.mysql.com/bug.php?id=49481, Bug#49482: http://bugs.mysql.com/bug.php?id=49482) * Replication: When logging in row-based mode, DDL statements are actually logged as statements; however, statements that affected temporary tables and followed DDL statements failed to reset the binary log format to ROW, with the result that these statements were logged using the statement-based format. Now the state of binlog_format is restored after a DDL statement has been written to the binary log. (Bug#49132: http://bugs.mysql.com/bug.php?id=49132) * Replication: When using row-based logging, the statement CREATE TABLE t IF NOT EXIST ... SELECT was logged as CREATE TEMPORARY TABLE t IF NOT EXIST ... SELECT when t already existed as a temporary table. This was caused by the fact that the temporary table was opened and the results of the SELECT were inserted into it when a temporary table existed and had the same name. Now, when this statement is executed, t is created as a base table, the results of the SELECT are inserted into it --- even if there already exists a temporary table having the same name --- and the statement is logged correctly. (Bug#47418: http://bugs.mysql.com/bug.php?id=47418) See also Bug#47442: http://bugs.mysql.com/bug.php?id=47442. * Replication: Due to a change in the size of event representations in the binary log, when replicating from a MySQL 4.1 master to a slave running MySQL 5.0.60 or later, the START SLAVE UNTIL statement did not function correctly, stopping at the wrong position in the log. Now the slave detects that the master is using the older version of the binary log format, and corrects for the difference in event size, so that the slave stops in the correct position. (Bug#47142: http://bugs.mysql.com/bug.php?id=47142) * The SSL certificates in the test suite were about to expire. They have been updated with expiration dates in the year 2015. (Bug#50642: http://bugs.mysql.com/bug.php?id=50642) * The printstack function does not exist on Solaris 8 or earlier, which would lead to a compilation failure. (Bug#50409: http://bugs.mysql.com/bug.php?id=50409) * A user could see tables in INFORMATION_SCHEMA.TABLES without appropriate privileges for them. (Bug#50276: http://bugs.mysql.com/bug.php?id=50276) * Debug output for join structures was garbled. (Bug#50271: http://bugs.mysql.com/bug.php?id=50271) * The filesort sorting method applied to a CHAR(0) column could lead to a server crash. (Bug#49897: http://bugs.mysql.com/bug.php?id=49897) * sql_buffer_result had an effect on non-SELECT statements, contrary to the documentation. (Bug#49552: http://bugs.mysql.com/bug.php?id=49552) * In some cases a subquery need not be evaluated because it returns only aggregate values that can be calculated from table metadata. This sometimes was not handled by the enclosing subquery, resulting in a server crash. (Bug#49512: http://bugs.mysql.com/bug.php?id=49512) * The method for comparing INFORMATION_SCHEMA names and database names was nonoptimal and an improvement was made: When the database name length is already known, a length check is made first and content comparison skipped if the lengths are unequal. (Bug#49501: http://bugs.mysql.com/bug.php?id=49501) * The MD5() and SHA1() functions had excessive overhead for short strings. (Bug#49491: http://bugs.mysql.com/bug.php?id=49491) * Mixing full-text searches and row expressions caused a crash. (Bug#49445: http://bugs.mysql.com/bug.php?id=49445) * Creating or dropping a table with 1023 transactions active caused an assertion failure. (Bug#49238: http://bugs.mysql.com/bug.php?id=49238) * mysql-test-run.pl now recognizes the MTR_TESTCASE_TIMEOUT, MTR_SUITE_TIMEOUT, MTR_SHUTDOWN_TIMEOUT, and MTR_START_TIMEOUT environment variables. If they are set, their values are used to set the --testcase-timeout, --suite-timeout, --shutdown-timeout, and --start-timeout options, respectively. (Bug#49210: http://bugs.mysql.com/bug.php?id=49210)
Thanks,
MySQL RE Team
Hery Ramilison, Karen Langford, MySQL Release Engineers
Database Group, Sun Microsystem Inc.
MySQL Workbench 5.2.16 (BETA 6): Upgrade from MySQL Administrator, MySQL Query Browser (no replies)
MySQL Workbench 5.2.16 (BETA 6): Upgrade from MySQL Administrator, MySQL Query Browser
http://wb.mysql.com/?p=507
WB 5.2 includes:
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
WB Downloads: http://dev.mysql.com/downloads/workbench/
WB Forums: http://forums.mysql.com/index.php?151
WB Blogs: http://wb.mysql.com/
http://wb.mysql.com/?p=507
WB 5.2 includes:
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
WB Downloads: http://dev.mysql.com/downloads/workbench/
WB Forums: http://forums.mysql.com/index.php?151
WB Blogs: http://wb.mysql.com/
MySQL Connector/Net 6.3.0 alpha has been released (no replies)
MySQL Connector/Net 6.3.0, a new version of the all-managed .NET driver
for MySQL has been released. This is an alpha release and is intended to
introduce you to the new features and enhancements we are planning. This
release should not be used in a production environment.
It is now available in source and binary form from
[http://dev.mysql.com/downloads/connector/net/6.3.html] and mirror sites
(note that not all mirror sites may be up to date at this point of time
- if you can't find this version on some mirror, please try again later
or choose another download site.)
The new features or changes in this release are:
- Visual Studio 2010 RC support
- Nested transaction scope support
What we know may be broken
----------------------------
- Documentation is not updated yet and is not integrated into VS 2010
- Data editing view (in VS) does not function in this build
Please let us know what else we broke and how we can make it better!
for MySQL has been released. This is an alpha release and is intended to
introduce you to the new features and enhancements we are planning. This
release should not be used in a production environment.
It is now available in source and binary form from
[http://dev.mysql.com/downloads/connector/net/6.3.html] and mirror sites
(note that not all mirror sites may be up to date at this point of time
- if you can't find this version on some mirror, please try again later
or choose another download site.)
The new features or changes in this release are:
- Visual Studio 2010 RC support
- Nested transaction scope support
What we know may be broken
----------------------------
- Documentation is not updated yet and is not integrated into VS 2010
- Data editing view (in VS) does not function in this build
Please let us know what else we broke and how we can make it better!
MySQL Community Server 5.1.43 has been released (no replies)
Dear MySQL users,
MySQL Community Server 5.1.43, a new version of the popular Open
Source Database Management System, has been released. MySQL 5.1.43 is
recommended for use on production systems.
For an overview of what's new in MySQL 5.1, please see
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
For information on installing MySQL 5.1.43 on new servers or upgrading
to MySQL 5.1.43 from previous MySQL releases, please see
http://dev.mysql.com/doc/refman/5.1/en/installing.html
MySQL Server is available in source and binary form for a number of
platforms from our download pages at
http://dev.mysql.com/downloads/
Not all mirror sites may be up to date at this point in time, so if
you can't find this version on some mirror, please try again later or
choose another download site.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:
http://forge.mysql.com/wiki/Contributing
For information on open issues in MySQL 5.1, please see the errata
list at
http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html
The following section lists the changes in the MySQL source code since
the previous released version of MySQL 5.1. It may also be viewed
online at
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-43.html
Enjoy!
=======================================================================
C.1.2. Changes in MySQL 5.1.43
InnoDB Plugin Notes:
* This release includes InnoDB Plugin 1.0.6. This version is
considered of Release Candidate (RC) quality.
Functionality added or changed:
* Partitioning: The UNIX_TIMESTAMP() function is now supported
in partitioning expressions using TIMESTAMP columns. For
example, it now possible to create a partitioned table such as
this one:
CREATE TABLE t (c TIMESTAMP)
PARTITION BY RANGE ( UNIX_TIMESTAMP(c) ) (
PARTITION p0 VALUES LESS THAN (631148400),
PARTITION p1 VALUES LESS THAN (946681200),
PARTITION p2 VALUES LESS THAN (MAXVALUE)
);
All other expressions involving TIMESTAMP values are now
rejected with an error when attempting to create a new
partitioned table or to alter an existing partitioned table.
When accessing an existing partitioned table having a
timezone-dependent partitioning function (where the table was
using a previous version of MySQL), a warning rather than an
error is issued. In such cases, you should fix the table. One
way of doing this is to alter the table's partitioning
expression so that it uses UNIX_TIMESTAMP().
(Bug#42849: http://bugs.mysql.com/bug.php?id=42849)
Bugs fixed:
* Security Fix: For servers built with yaSSL, a preauthorization
buffer overflow could cause memory corruption or a server
crash. We thank Evgeny Legerov from Intevydis for providing us
with a proof-of-concept script that allowed us to reproduce
this bug. (Bug#50227: http://bugs.mysql.com/bug.php?id=50227,
CVE-2009-4484
(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4484))
* Important Change: Replication: The RAND() function is now
marked as unsafe for statement-based replication. Using this
function now generates a warning when binlog_format=STATEMENT
and causes the the format to switch to row-based logging when
binlog_format=MIXED.
This change is being introduced because, when RAND() was
logged in statement mode, the seed was also written to the
binary log, so the replication slave generated the same
sequence of random numbers as was generated on the master.
While this could make replication work in some cases, the
order of affected rows was still not guaranteed when this
function was used in statements that could update multiple
rows, such as UPDATE or INSERT ... SELECT; if the master and
the slave retrieved rows in different order, they began to
diverge. (Bug#49222: http://bugs.mysql.com/bug.php?id=49222)
* Partitioning: When used on partitioned tables, the
records_in_range handler call checked all partitions, rather
than the unpruned partitions only.
(Bug#48846: http://bugs.mysql.com/bug.php?id=48846)
See also Bug#37252: http://bugs.mysql.com/bug.php?id=37252,
Bug#47261: http://bugs.mysql.com/bug.php?id=47261.
* Partitioning: A query that searched on a ucs2 column failed if
the table was partitioned.
(Bug#48737: http://bugs.mysql.com/bug.php?id=48737)
* Replication: A LOAD DATA INFILE statement that loaded data
into a table having a column name that must be escaped (such
as `key` INT), caused replication to fail when logging in
mixed or statement mode. In such cases, the master wrote the
LOAD DATA event to the binary log without escaping the field
names. (Bug#49473: http://bugs.mysql.com/bug.php?id=49473)
See also Bug#47927: http://bugs.mysql.com/bug.php?id=47927.
* Replication: Spatial data types cause row-based replication to
crash. (Bug#48776: http://bugs.mysql.com/bug.php?id=48776)
* Replication: A flaw in the implementation of the purging of
binary logs could result in orphaned files being left behind
in the following circumstances:
+ If the server failed or was killed while purging binary
logs.
If the server failed or was killed after creating of a
new binary log when the new log file was opened for the
first time.
In addition, if the slave was not connected during the purge
operation, it was possible for a log file that was in use to
be removed; this could lead data loss and possible
inconsistencies between the master and slave.
(Bug#45292: http://bugs.mysql.com/bug.php?id=45292)
* Replication: When using the STATEMENT or MIXED logging format,
the statements LOAD DATA CONCURRENT LOCAL INFILE and LOAD DATA
CONCURRENT INFILE were logged as LOAD DATA LOCAL INFILE and
LOAD DATA LOCAL INFILE, respectively (in other words, the
CONCURRENT keyword was omitted). As a result, when using
replication with either of these logging modes, queries on the
slaves were blocked by the replication SQL thread while trying
to execute the affected statements.
(Bug#34628: http://bugs.mysql.com/bug.php?id=34628)
* Replication: Manually removing entries from the binary log
index file on a replication master could cause the server to
repeatedly send the same binary log file to slaves.
(Bug#28421: http://bugs.mysql.com/bug.php?id=28421)
* Cluster Replication: When expire_logs_days was set, the thread
performing the purge of the log files could deadlock, causing
all binary log operations to stop.
(Bug#49536: http://bugs.mysql.com/bug.php?id=49536)
* Within a stored routine, selecting the result of CONCAT_WS()
with a routine parameter argument into a user variable could
return incorrect results.
(Bug#50096: http://bugs.mysql.com/bug.php?id=50096)
* The IBMDB2I storage engine was missing from the i5os 64-bit
distribution of MySQL 5.1.42. It is now included again.
(Bug#50059: http://bugs.mysql.com/bug.php?id=50059)
* EXPLAIN EXTENDED UNION ... ORDER BY caused a crash when the
ORDER BY referred to a nonconstant or full-text function or a
subquery. (Bug#49734: http://bugs.mysql.com/bug.php?id=49734)
* The push_warning_printf() function was being called with an
invalid error level MYSQL_ERROR::WARN_LEVEL_ERROR, causing an
assertion failure. To fix the problem,
MYSQL_ERROR::WARN_LEVEL_ERROR has been replaced by
MYSQL_ERROR::WARN_LEVEL_WARN.
(Bug#49638: http://bugs.mysql.com/bug.php?id=49638)
* Some prepared statements could raise an assertion when
re-executed.
(Bug#49570: http://bugs.mysql.com/bug.php?id=49570)
* A Valgrind error in make_cond_for_table_from_pred() was
corrected. Thanks to Sergey Petrunya for the patch to fix this
bug. (Bug#49506: http://bugs.mysql.com/bug.php?id=49506)
* When compiling on Windows, an error in the CMake definitions
for InnoDB would cause the engine to be built incorrectly.
(Bug#49502: http://bugs.mysql.com/bug.php?id=49502)
* Valgrind warnings for CHECKSUM TABLE were corrected.
(Bug#49465: http://bugs.mysql.com/bug.php?id=49465)
* Specifying an index algorithm (such as BTREE) for SPATIAL or
FULLTEXT indexes caused a server crash. These index types do
not support algorithm specification, and it is now disallowed
to do so. (Bug#49250: http://bugs.mysql.com/bug.php?id=49250)
* The optimizer sometimes incorrectly handled conditions of the
form WHERE col_name='const1' AND col_name='const2'.
(Bug#49199: http://bugs.mysql.com/bug.php?id=49199)
* Execution of DECODE() and ENCODE() could be inefficient
because multiple executions within a single statement
reinitialized the random generator multiple times even with
constant parameters.
(Bug#49141: http://bugs.mysql.com/bug.php?id=49141)
* MySQL 5.1 does not support 2-byte collation numbers, but did
not check the number and crashed for out-of-range values.
(Bug#49134: http://bugs.mysql.com/bug.php?id=49134)
* With binary logging enabled, REVOKE ... ON
{PROCEDURE|FUNCTION} FROM ... could cause a crash.
(Bug#49119: http://bugs.mysql.com/bug.php?id=49119)
* The LIKE operator did not work correctly when using an index
for a ucs2 column.
(Bug#49028: http://bugs.mysql.com/bug.php?id=49028)
* check_key_in_view() was missing a DBUG_RETURN in one code
branch, causing a crash in debug builds.
(Bug#48995: http://bugs.mysql.com/bug.php?id=48995)
* Several strmake() calls had an incorrect length argument (too
large by one).
(Bug#48983: http://bugs.mysql.com/bug.php?id=48983)
* On Fedora 12, strmov() did not guarantee correct operation for
overlapping source and destination buffer. Calls were fixed to
use an overlap-safe version instead.
(Bug#48866: http://bugs.mysql.com/bug.php?id=48866)
* Incomplete reset of internal TABLE structures could cause a
crash with eq_ref table access in subqueries.
(Bug#48709: http://bugs.mysql.com/bug.php?id=48709)
* Re-execution of a prepared statement could cause a server
crash. (Bug#48508: http://bugs.mysql.com/bug.php?id=48508)
* The error message for ER_UPDATE_INFO was subject to buffer
overflow or truncation.
(Bug#48500: http://bugs.mysql.com/bug.php?id=48500)
* SHOW BINLOG EVENTS could fail with a error: Wrong offset or
I/O error. (Bug#48357: http://bugs.mysql.com/bug.php?id=48357)
* Valgrind warnings related to binary logging of LOAD DATA
INFILE statements were corrected.
(Bug#48340: http://bugs.mysql.com/bug.php?id=48340)
* An aliasing violation in the C API could lead to a crash.
(Bug#48284: http://bugs.mysql.com/bug.php?id=48284)
* The InnoDB Monitor could fail to print diagnostic information
after a long lock wait.
(Bug#47814: http://bugs.mysql.com/bug.php?id=47814)
* Queries containing GROUP BY ... WITH ROLLUP that did not use
indexes could return incorrect results.
(Bug#47650: http://bugs.mysql.com/bug.php?id=47650)
* If an invocation of a stored procedure failed in the
table-open stage, subsequent invocations that did not fail in
that stage could cause a crash.
(Bug#47649: http://bugs.mysql.com/bug.php?id=47649)
* On Solaris, no stack trace was printed to the error log after
a crash. (Bug#47391: http://bugs.mysql.com/bug.php?id=47391)
* The first execution of STOP SLAVE UNTIL stopped too early.
(Bug#47210: http://bugs.mysql.com/bug.php?id=47210)
* When the mysql client was invoked with the --vertical option,
it ignored the --skip-column-names option.
(Bug#47147: http://bugs.mysql.com/bug.php?id=47147)
* It was possible for init_available_charsets() not to
initialize correctly.
(Bug#45058: http://bugs.mysql.com/bug.php?id=45058)
* Comparison with NULL values sometimes did not produce a
correct result.
(Bug#42760: http://bugs.mysql.com/bug.php?id=42760)
* Crash recovery did not work for InnoDB temporary tables.
(Bug#41609: http://bugs.mysql.com/bug.php?id=41609)
* The mysql_upgrade command would create three additional fields
to the mysql.proc table (character_set_client,
collation_connection, and db_collation), but did not populate
the fields with correct values. This would lead to error
messages reported during stored procedure execution.
(Bug#41569: http://bugs.mysql.com/bug.php?id=41569)
* When compressed MyISAM files were opened, they were always
memory mapped, sometimes causing memory-swapping problems. To
deal with this, a new system variable, myisam_mmap_size, was
added to limit the amount of memory used for memory mapping of
MyISAM files.
(Bug#37408: http://bugs.mysql.com/bug.php?id=37408)
* A race condition on the privilege hash tables allowed one
thread to try to delete elements that had already been deleted
by another thread. A consequence was that SET PASSWORD or
FLUSH PRIVILEGES could cause a crash.
(Bug#35589: http://bugs.mysql.com/bug.php?id=35589,
Bug#35591: http://bugs.mysql.com/bug.php?id=35591)
* ALTER TABLE with both DROP COLUMN and ADD COLUMN clauses could
crash or lock up the server.
(Bug#31145: http://bugs.mysql.com/bug.php?id=31145)
Thanks,
MySQL RE Team
Karen Langford, Hery Ramilison, MySQL Release Engineers
Database Group, Sun Microsystem Inc.
MySQL Community Server 5.0.90 has been released (no replies)
Dear MySQL users,
MySQL Community Server 5.0.90, a new version of the popular Open Source
Database Management System, has been released. This Community release shares the
version number with its MySQL Enterprise Server counterpart.
Please note that the active maintenance of 5.0 has ended,and this version is mostly
provided because of the fix to security bug#50227 as described below.
The release 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 in time, so if you can't find this version on some mirror,
please try again later or choose another download site.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches etc.:
http://forge.mysql.com/wiki/Contributing
This section documents all changes and bugfixes that have been
applied since the last MySQL Community Server release (5.0.89).
http://dev.mysql.com/doc/refman/5.0/en/news-5-0-90.html
If you would like to receive more fine-grained and personalized
update alerts about fixes that are relevant to the version and
features you use, please consider subscribing to MySQL Enterprise
(a commercial MySQL offering). For more details please see
http://www.mysql.com/products/enterprise/advisors.html.
Enjoy!
------------------------------------------------------------------------------
Changes in MySQL 5.0.90
RPM Notes:
* The version information in RPM package files has been changed:
+ The "level" field of a MySQL version number is now also
included in the RPM version and in the package file name.
+ The RPM "release" value now starts to count from 0.
For example, the Rhel, Sles rpm file of 5.0.90 is named as
MySQL-server-community-5.0.90-0.rhel3.i386.rpm.
Bugs fixed:
* *Security Fix*: For servers built with yaSSL, a preauthorization
buffer overflow could cause memory corruption or a server
crash. We thank Evgeny Legerov from Intevydis for providing us
with a proof-of-concept script that allowed us to reproduce
this bug. (Bug#50227: http://bugs.mysql.com/bug.php?id=50227,
CVE-2009-4484
(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4484))
* *Replication*: FLUSH LOGS did not actually close and reopen the
binary log index file.
(Bug#48738: http://bugs.mysql.com/bug.php?id=48738)
See also Bug#34582: http://bugs.mysql.com/bug.php?id=34582.
* Some prepared statements could raise an assertion when
re-executed.
(Bug#49570: http://bugs.mysql.com/bug.php?id=49570)
* Valgrind warnings for CHECKSUM TABLE were corrected.
(Bug#49465: http://bugs.mysql.com/bug.php?id=49465)
* Specifying an index algorithm (such as BTREE) for SPATIAL or
FULLTEXT indexes caused a server crash. These index types do
not support algorithm specification, and it is now disallowed
to do so. (Bug#49250: http://bugs.mysql.com/bug.php?id=49250)
* The optimizer sometimes incorrectly handled conditions of the
form WHERE col_name='const1' AND col_name='const2'.
(Bug#49199: http://bugs.mysql.com/bug.php?id=49199)
* Several strmake() calls had an incorrect length argument (too
large by one).
(Bug#48983: http://bugs.mysql.com/bug.php?id=48983)
* On Fedora 12, strmov() did not guarantee correct operation for
overlapping source and destination buffer. Calls were fixed to
use an overlap-safe version instead.
(Bug#48866: http://bugs.mysql.com/bug.php?id=48866)
* Incomplete reset of internal TABLE structures could cause a
crash with eq_ref table access in subqueries.
(Bug#48709: http://bugs.mysql.com/bug.php?id=48709)
* Re-execution of a prepared statement could cause a server
crash. (Bug#48508: http://bugs.mysql.com/bug.php?id=48508)
* The error message for ER_UPDATE_INFO was subject to buffer
overflow or truncation.
(Bug#48500: http://bugs.mysql.com/bug.php?id=48500)
* On Solaris, no stack trace was printed to the error log after
a crash. (Bug#47391: http://bugs.mysql.com/bug.php?id=47391)
* Comparison with NULL values sometimes did not produce a
correct result.
(Bug#42760: http://bugs.mysql.com/bug.php?id=42760)
* When compressed MyISAM files were opened, they were always
memory mapped, sometimes causing memory-swapping problems. To
deal with this, a new system variable, myisam_mmap_size, was
added to limit the amount of memory used for memory mapping of
MyISAM files.
(Bug#37408: http://bugs.mysql.com/bug.php?id=37408)
Thanks,
On behalf of the MySQL Build Team,
Sunanda Menon
MySQL Workbench 5.2.15 (BETA 5): Upgrade from MySQL Administrator, MySQL Query Browser (no replies)
MySQL Workbench 5.2.15 (BETA 5): Upgrade from MySQL Administrator, MySQL Query Browser
http://wb.mysql.com/?p=482
WB 5.2 includes:
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
WB Downloads: http://dev.mysql.com/downloads/workbench/
WB Forums: http://forums.mysql.com/index.php?151
WB Blogs: http://wb.mysql.com/
http://wb.mysql.com/?p=482
WB 5.2 includes:
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
WB Downloads: http://dev.mysql.com/downloads/workbench/
WB Forums: http://forums.mysql.com/index.php?151
WB Blogs: http://wb.mysql.com/
MySQL Workbench 5.2.14 (BETA 4): Upgrade from MySQL Administrator, MySQL Query Browser (no replies)
MySQL Workbench 5.2.14 (BETA 4): Upgrade from MySQL Administrator, MySQL Query Browser
http://wb.mysql.com/?p=477
WB 5.2 includes:
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
WB Downloads: http://dev.mysql.com/downloads/workbench/
WB Forums: http://forums.mysql.com/index.php?151
WB Blogs: http://wb.mysql.com/
http://wb.mysql.com/?p=477
WB 5.2 includes:
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
WB Downloads: http://dev.mysql.com/downloads/workbench/
WB Forums: http://forums.mysql.com/index.php?151
WB Blogs: http://wb.mysql.com/
MySQL 5.5.1-m2 has been released (no replies)
Dear MySQL users,
MySQL Server 5.5.1-m2, a new version of the popular Open Source
Database Management System, has been released.
The "-m2" suffix tells this belongs to the second milestone according
to our "milestone" release model, also called "Betony".
You can read more about the release model and the planned milestones at
http://forge.mysql.com/wiki/Development_Cycle
The new features in this release are of beta quality. As with any
other pre-production release, caution should be taken when installing on
production level systems or systems with critical data.
For production level systems using 5.1, we would like to direct your
attention to the product description of MySQL Enterprise at:
http://mysql.com/products/enterprise/
MySQL 5.5 is based on MySQL 5.4, which won't get any further updates.
So MySQL 5.5 includes several high-impact changes to address scalability
and performance issues in MySQL Server. These changes exploit advances
in hardware and CPU design and enable better utilization of existing
hardware.
For an overview of what's new in MySQL 5.5, please see the
section "What Is New in MySQL 5.5" below, or view it online at
http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html
For information on installing MySQL 5.5.1-m2 on new servers,
please see the MySQL installation documentation at
http://dev.mysql.com/doc/refman/5.5/en/installing.html
For upgrading from previous MySQL releases, please see the
important upgrade considerations at
http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html
MySQL Server is available in source and binary form for a
number of platforms from our download pages at
http://dev.mysql.com/downloads/
Not all mirror sites may be up to date at this point in
time, so if you can't find this version on some mirror,
please try again later or choose another download site.
We welcome and appreciate your feedback, bug reports, bug
fixes, patches, etc.:
http://forge.mysql.com/wiki/Contributing
Following the "What Is New" section, this mail lists the changes
in the MySQL source code of MySQL 5.5.1-m2.
The list of all "Bugs Fixed" may also be viewed online at
http://dev.mysql.com/doc/refman/5.5/en/news-5-5-1.html
When the publishing process for 5.5.1-m2 was already running,
the MySQL team was informed about a security problem
in the SSL connect area (a possibility to crash the server).
The problem is caused by a buffer overflow in the YaSSL library,
MySQL Servers using OpenSSL are not affected.
It can only occur when SSL (using YaSSL) is enabled.
This problem is still under detailed investigation with the various
versions, configurations, and platforms.
When that has finished, the problem will be fixed ASAP,
and new binaries for the affected versions will be released.
Obviously, building and testing these binaries in the various
configurations on the various platforms will take some time.
The bug is tracked with a CVE ID already:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4484
The related bug report is currently marked private, it will be made
public once the new binaries are out:
http://bugs.mysql.com/50227
In the meantime, we repeat the general security hint:
If it is not *absolutely* necessary that external machines can
connect to your database instance, we recommend that the server's
connection port be blocked by a firewall to prevent any such
illegitimate accesses.
Enjoy!
On behalf of the MySQL Build Team at Sun Microsystems:
Jörg Brühe,
Senior Production Engineer
-----
What Is New in MySQL 5.5
The following features have been added to MySQL 5.5:
* Support for an interface for semisynchronous replication:
A commit performed on the master side blocks before returning
to the session that performed the transaction until at least
one slave acknowledges that it has received and logged the events
for the transaction.
Semisynchronous replication is implemented through an optional
plugin component. See Section 16.2.8, "Semisynchronous Replication"
* Support for the SQL standard SIGNAL and RESIGNAL statements.
See Section 12.8.8, "SIGNAL and RESIGNAL".
* Enhancements to XML functionality, including a new LOAD XML
statement.
* Two new types of user-defined partitioning:
RANGE COLUMNS partitioning is an extension to RANGE partitioning;
LIST COLUMNS partitioning is an extension to LIST partitioning.
Each of these extensions provides two enhancements to MySQL
partitioning capabilities:
1. It is possible to define partitioning ranges or lists based on
DATE, DATETIME, or string values (such as CHAR or VARCHAR).
You can also define ranges or lists based on multiple column
values when partitioning tables by RANGE COLUMNS or LIST COLUMNS,
respectively. Such a range or list may refer to up to 16 columns.
2. For tables defined using these partitioning types, partition
pruning can now optimize queries with WHERE conditions that use
multiple comparisons between (different) column values and
constants, such as
a = 10 AND b > 5 or a < "2005-11-25" AND b = 10 AND c = 50.
For more information, see Section 17.2.1, "RANGE Partitioning",
and Section 17.2.2, "LIST Partitioning".
* It is now possible to delete all rows from one or more partitions
of a partitioned table using the ALTER TABLE ... TRUNCATE
PARTITION statement. Executing the statement deletes rows without
affecting the structure of the table. The partitions named in the
TRUNCATE PARTITION clause do not have to be contiguous.
* Key caches are now supported for indexes on partitioned MyISAM
tables, using the CACHE INDEX and LOAD INDEX INTO CACHE statements.
In addition, a key cache can be defined for and loaded with indexes
from an entire partitioned table, or for one or more partitions.
In the latter case, the partitions are not required to be contiguous.
* The TO_SECONDS() function is added. This function converts a date or
datetime expression to a number of seconds since the year 0. You may
use this function in partitioning expressions, and partition pruning
is supported for table defined using such expressions.
The following constructs are deprecated and will be removed in a future
MySQL release. Where alternatives are shown, applications should be
updated to use them.
* The table_type system variable (use storage_engine).
The TYPE table option to specify the storage engine for
CREATE TABLE or ALTER TABLE (use ENGINE).
The SHOW TABLE TYPES SQL statement (use SHOW ENGINES).
* The log_bin_trust_routine_creators variable
(use log_bin_trust_function_creators).
* TIMESTAMP(N): The ability to specify a display width of N
(use without N).
* The SHOW INNODB STATUS and SHOW MUTEX STATUS SQL statements
(use SHOW ENGINE INNODB STATUS for both of these).
* The LOAD TABLE ... FROM MASTER and LOAD DATA FROM MASTER SQL
statements.
* The SHOW PLUGIN SQL statement (use SHOW PLUGINS).
* The BACKUP TABLE and the RESTORE TABLE SQL statements.
* The --master-xxx server options to set replication parameters
(use the CHANGE MASTER TO statement instead):
--master-host, --master-user, --master-password, --master-port,
--master-connect-retry, --master-ssl, --master-ssl-ca,
--master-ssl-capath, --master-ssl-cert, --master-ssl-cipher,
--master-ssl-key.
-----
Changes in MySQL 5.5.1-m2:
RPM Notes:
* The version information in RPM package files has been changed:
+ The "level" field of a MySQL version number is now also
included in the RPM version and in the package file name.
+ The RPM "release" value now starts to count from 1, not 0.
For example, the generic x86 server RPM file of 5.5.1-m2 is
named MySQL-server-5.5.1_m2-1.glibc23.i386.rpm. This improves
consistency with other formats that also include the level
(for this version: "m2") in the file name. For example, the
tar.gz filename is mysql-5.5.1-m2-linux-i686-glibc23.tar.gz.
The different separator, underscore '_' for RPM, is required
by the syntax of RPM.
InnoDB Plugin Notes:
* InnoDB Plugin has been upgraded to version 1.0.6. This version
is considered of Release Candidate (RC) quality. The InnoDB
Plugin Change History
(http://www.innodb.com/doc/innodb_plugin-1.0/innodb-changes.ht
ml) may contain information in addition to those changes
reported here.
Functionality added or changed:
* Partitioning: The UNIX_TIMESTAMP() function is now supported
in partitioning expressions using TIMESTAMP columns. For
example, it now possible to create a partitioned table such as
this one:
CREATE TABLE t (c TIMESTAMP)
PARTITION BY RANGE ( UNIX_TIMESTAMP(c) ) (
PARTITION p0 VALUES LESS THAN (631148400),
PARTITION p1 VALUES LESS THAN (946681200),
PARTITION p2 VALUES LESS THAN (MAXVALUE)
);
All other expressions involving TIMESTAMP values are now
rejected with an error when attempting to create a new
partitioned table or to alter an existing partitioned table.
When accessing an existing partitioned table having a
timezone-dependent partitioning function (where the table was
using a previous version of MySQL), a warning rather than an
error is issued. In such cases, you should fix the table. One
way of doing this is to alter the table's partitioning
expression so that it uses UNIX_TIMESTAMP().
(Bug#42849: http://bugs.mysql.com/bug.php?id=42849)
Bugs fixed:
* Performance: When the query cache is fragmented, the size of
the free block lists in the memory bins grows, which causes
query cache invalidation to become slow. There is now a 50ms
timeout for a SELECT statement waiting for the query cache
lock. If the timeout expires, the statement executes without
using the query cache.
(Bug#39253: http://bugs.mysql.com/bug.php?id=39253)
See also Bug#21074: http://bugs.mysql.com/bug.php?id=21074.
* Important Change: Replication: The following functions have
been marked unsafe for statement-based replication:
+ GET_LOCK()
+ IS_FREE_LOCK()
+ IS_USED_LOCK()
+ MASTER_POS_WAIT()
+ RELEASE_LOCK()
+ SLEEP()
+ SYSDATE()
+ VERSION()
None of the functions just listed are guaranteed to replicate
correctly when using the statement-based format, because they
can produce different results on the master and the slave. The
use of any of these functions while binlog_format is set to
STATEMENT is logged with the warning, Statement is not safe to
log in statement format. When binlog_format is set to MIXED,
the binary logging format is automatically switched to the
row-based format whenever one of these functions is used.
(Bug#47995: http://bugs.mysql.com/bug.php?id=47995)
* Partitioning: When SHOW CREATE TABLE was invoked for a table
that had been created using the COLUMNS keyword or the
TO_SECONDS() function, the output contained the wrong MySQL
version number in the conditional comments.
(Bug#49591: http://bugs.mysql.com/bug.php?id=49591)
* Partitioning: A query that searched on a ucs2 column failed if
the table was partitioned.
(Bug#48737: http://bugs.mysql.com/bug.php?id=48737)
* Partitioning: In some cases, it was not possible to add a new
column to a table that had subpartitions.
(Bug#48276: http://bugs.mysql.com/bug.php?id=48276)
* Partitioning: SELECT COUNT(*) from a partitioned table failed
when using the ONLY_FULL_GROUP_BY SQL mode.
(Bug#46923: http://bugs.mysql.com/bug.php?id=46923)
This regression was introduced by
Bug#45807: http://bugs.mysql.com/bug.php?id=45807.
* Partitioning: SUBPARTITION BY KEY failed with DEFAULT
CHARSET=utf8.
(Bug#45904: http://bugs.mysql.com/bug.php?id=45904)
* Replication: When using row-based logging, TRUNCATE TABLE was
written to the binary log even if the affected table was
temporary, causing replication to fail.
(Bug#48350: http://bugs.mysql.com/bug.php?id=48350)
* Cluster Replication: When expire_logs_days was set, the thread
performing the purge of the log files could deadlock, causing
all binary log operations to stop.
(Bug#49536: http://bugs.mysql.com/bug.php?id=49536)
* For debug builds on Windows, SAFEMALLOC was defined
inconsistently, leading to mismatches when using my_malloc()
and my_free().
(Bug#49811: http://bugs.mysql.com/bug.php?id=49811)
* The mysql.server script had incorrect shutdown logic.
(Bug#49772: http://bugs.mysql.com/bug.php?id=49772)
* The result of comparison between nullable BIGINT and INT
columns was inconsistent.
(Bug#49517: http://bugs.mysql.com/bug.php?id=49517)
* A Valgrind error in make_cond_for_table_from_pred() was
corrected. Thanks to Sergey Petrunya for the patch to fix this
bug. (Bug#49506: http://bugs.mysql.com/bug.php?id=49506)
* When compiling on Windows, an error in the CMake definitions
for InnoDB would cause the engine to be built incorrectly.
(Bug#49502: http://bugs.mysql.com/bug.php?id=49502)
* Incorrect cache initialization prevented storage of converted
constant values and could produce incorrect comparison
results. (Bug#49489: http://bugs.mysql.com/bug.php?id=49489)
* Comparisons involving YEAR values could produce incorrect
results. (Bug#49480: http://bugs.mysql.com/bug.php?id=49480)
See also Bug#43668: http://bugs.mysql.com/bug.php?id=43668.
* Valgrind warnings for CHECKSUM TABLE were corrected.
(Bug#49465: http://bugs.mysql.com/bug.php?id=49465)
* Specifying an index algorithm (such as BTREE) for SPATIAL or
FULLTEXT indexes caused a server crash. These index types do
not support algorithm specification, and it is now disallowed
to do so. (Bug#49250: http://bugs.mysql.com/bug.php?id=49250)
* The optimizer sometimes incorrectly handled conditions of the
form WHERE col_name='const1' AND col_name='const2'.
(Bug#49199: http://bugs.mysql.com/bug.php?id=49199)
* Execution of DECODE() and ENCODE() could be inefficient
because multiple executions within a single statement
reinitialized the random generator multiple times even with
constant parameters.
(Bug#49141: http://bugs.mysql.com/bug.php?id=49141)
* The LIKE operator did not work correctly when using an index
for a ucs2 column.
(Bug#49028: http://bugs.mysql.com/bug.php?id=49028)
* check_key_in_view() was missing a DBUG_RETURN in one code
branch, causing a crash in debug builds.
(Bug#48995: http://bugs.mysql.com/bug.php?id=48995)
* If a query involving a table was terminated with KILL, a
subsequent SHOW CREATE TABLE for that table caused a server
crash. (Bug#48985: http://bugs.mysql.com/bug.php?id=48985)
* Privileges for stored routines were ignored for mixed-case
routine names.
(Bug#48872: http://bugs.mysql.com/bug.php?id=48872)
See also Bug#41049: http://bugs.mysql.com/bug.php?id=41049.
* Concurrent ALTER TABLE operations on an InnoDB table could
raise an assertion.
(Bug#48782: http://bugs.mysql.com/bug.php?id=48782)
* During query execution, ranges could be merged incorrectly for
OR operations and return an incorrect result.
(Bug#48665: http://bugs.mysql.com/bug.php?id=48665)
* The InnoDB Table Monitor reported the FLOAT and DOUBLE data
types incorrectly.
(Bug#48526: http://bugs.mysql.com/bug.php?id=48526)
* With row-based binary logging, the server crashed for
statements of the form CREATE TABLE IF NOT EXISTS
existing_view LIKE temporary_table. This occurred because the
server handled the existing view as a table when logging the
statement. (Bug#48506: http://bugs.mysql.com/bug.php?id=48506)
* The error message for ER_UPDATE_INFO was subject to buffer
overflow or truncation.
(Bug#48500: http://bugs.mysql.com/bug.php?id=48500)
* DISTINCT was ignored for queries with GROUP BY WITH ROLLUP and
only const tables.
(Bug#48475: http://bugs.mysql.com/bug.php?id=48475)
* Loose index scan was inappropriately chosen for some WHERE
conditions.
(Bug#48472: http://bugs.mysql.com/bug.php?id=48472)
* If the InnoDB tablespace was configured with too small a
value, the server could crash and corrupt the tablespace.
(Bug#48469: http://bugs.mysql.com/bug.php?id=48469)
* Parts of the range optimizer could be initialized incorrectly,
resulting in Valgrind errors.
(Bug#48459: http://bugs.mysql.com/bug.php?id=48459)
* A bad typecast could cause query execution to allocate large
amounts of memory.
(Bug#48458: http://bugs.mysql.com/bug.php?id=48458)
* On Windows, InnoDB could not be built as a statically linked
library. (Bug#48317: http://bugs.mysql.com/bug.php?id=48317)
* mysql_secure_installation did not work on Solaris.
(Bug#48086: http://bugs.mysql.com/bug.php?id=48086)
* When running mysql_secure_installation, the command would fail
if the root password contained multiple spaces, \, # or quote
characters.
(Bug#48031: http://bugs.mysql.com/bug.php?id=48031)
* MATCH IN BOOLEAN MODE searches could return too many results
inside a subquery.
(Bug#47930: http://bugs.mysql.com/bug.php?id=47930)
* User-defined collations with an ID less then 256 were not
initialized correctly when loaded and caused a server crash.
(Bug#47756: http://bugs.mysql.com/bug.php?id=47756)
* If a session held a global read lock acquired with FLUSH
TABLES WITH READ LOCK, a lock for one table acquired with LOCK
TABLES, and issued an INSERT DELAYED statement for another
table, deadlock could occur.
(Bug#47682: http://bugs.mysql.com/bug.php?id=47682)
* The mysql client status command displayed an incorrect value
for the server character set.
(Bug#47671: http://bugs.mysql.com/bug.php?id=47671)
* Connecting to a 4.1.x server from a 5.1.x or higher mysql
client resulted in a memory-free error when disconnecting.
(Bug#47655: http://bugs.mysql.com/bug.php?id=47655)
* Assignment of a system variable sharing the same base name as
a declared stored program variable in the same context could
lead to a crash.
(Bug#47627: http://bugs.mysql.com/bug.php?id=47627)
* On Solaris, no stack trace was printed to the error log after
a crash. (Bug#47391: http://bugs.mysql.com/bug.php?id=47391)
* The innodb_file_format_check system variable could not be set
at runtime to DEFAULT or to the value of a user-defined
variable. (Bug#47167: http://bugs.mysql.com/bug.php?id=47167)
* After a binary upgrade to MySQL 5.1 from a MySQL 5.0
installation that contains ARCHIVE tables, accessing those
tables caused the server to crash, even if you had run
mysql_upgrade or CHECK TABLE ... FOR UPGRADE.
To work around this problem, use mysqldump to dump all ARCHIVE
tables before upgrading, and reload them into MySQL 5.1 after
upgrading. The same problem occurs for binary downgrades from
MySQL 5.1 to 5.0.
(Bug#47012: http://bugs.mysql.com/bug.php?id=47012)
* The IGNORE clause on a DELETE statement masked an SQL
statement error that occurred during trigger processing.
(Bug#46425: http://bugs.mysql.com/bug.php?id=46425)
* Valgrind errors for InnoDB Plugin were corrected.
(Bug#45992: http://bugs.mysql.com/bug.php?id=45992,
Bug#46656: http://bugs.mysql.com/bug.php?id=46656)
* The return value was not checked for some my_hash_insert()
calls. (Bug#45613: http://bugs.mysql.com/bug.php?id=45613)
* It was possible for init_available_charsets() not to
initialize correctly.
(Bug#45058: http://bugs.mysql.com/bug.php?id=45058)
* GROUP BY on a constant (single-row) InnoDB table joined to
other tables caused a server crash.
(Bug#44886: http://bugs.mysql.com/bug.php?id=44886)
* For YEAR(2) values, MIN(), MAX(), and comparisons could yield
incorrect results.
(Bug#43668: http://bugs.mysql.com/bug.php?id=43668)
* Comparison with NULL values sometimes did not produce a
correct result.
(Bug#42760: http://bugs.mysql.com/bug.php?id=42760)
* In debug builds, killing a LOAD XML INFILE statement raised an
assertion. (Bug#42520: http://bugs.mysql.com/bug.php?id=42520)
* The server could crash when attempting to access a
non-conformant mysql.proc system table. For example, the
server could crash when invoking stored procedure-related
statements after an upgrade from MySQL 5.0 to 5.1 without
running mysql_upgrade.
(Bug#41726: http://bugs.mysql.com/bug.php?id=41726)
* The mysql_upgrade command would create three additional fields
to the mysql.proc table (character_set_client,
collation_connection, and db_collation), but did not populate
the fields with correct values. This would lead to error
messages reported during stored procedure execution.
(Bug#41569: http://bugs.mysql.com/bug.php?id=41569)
* Use of InnoDB monitoring (SHOW ENGINE INNODB STATUS or one of
the InnoDB Monitor tables) could cause a server crash due to
invalid access to a shared variable in a concurrent
environment.
(Bug#38883: http://bugs.mysql.com/bug.php?id=38883)
* When compressed MyISAM files were opened, they were always
memory mapped, sometimes causing memory-swapping problems. To
deal with this, a new system variable, myisam_mmap_size, was
added to limit the amount of memory used for memory mapping of
MyISAM files.
(Bug#37408: http://bugs.mysql.com/bug.php?id=37408)
* When running mysql_secure_installation on Windows, the command
would fail to load a required module, Term::ReadKey, which was
required for correct operation.
(Bug#35106: http://bugs.mysql.com/bug.php?id=35106)
* If the --log-bin server option was set to a directory name
with a trailing component separator character, the basename of
the binary log files was empty so that the created files were
named .000001 and .index. The same thing occurred with the
--log-bin-index, --relay-log, and --relay-log-index options.
Now the server reports and error and exits.
(Bug#34739: http://bugs.mysql.com/bug.php?id=34739)
* If a comparison involved a constant value that required type
conversion, the converted value might not be cached, resulting
in repeated conversion and poorer performance.
(Bug#34384: http://bugs.mysql.com/bug.php?id=34384)
* Using the SHOW ENGINE INNODB STATUS statement when using
partitions in InnoDB tables caused Invalid (old?) table or
database name errors to be logged.
(Bug#32430: http://bugs.mysql.com/bug.php?id=32430)
* Output from mysql --html did not encode the <, >, or &
characters.
(Bug#27884: http://bugs.mysql.com/bug.php?id=27884)
* Under heavy load with a large query cache, invalidating part
of the cache could cause the server to freeze (that is, to be
unable to service other operations until the invalidation was
complete). (Bug#21074: http://bugs.mysql.com/bug.php?id=21074)
See also Bug#39253: http://bugs.mysql.com/bug.php?id=39253.
* On some Windows systems, InnoDB could report Operating system
error number 995 in a file operation due to transient driver
or hardware problems. InnoDB now retries the operation and
adds Retry attempt is made to the error message.
(Bug#3139: http://bugs.mysql.com/bug.php?id=3139)
MySQL Server 5.5.1-m2, a new version of the popular Open Source
Database Management System, has been released.
The "-m2" suffix tells this belongs to the second milestone according
to our "milestone" release model, also called "Betony".
You can read more about the release model and the planned milestones at
http://forge.mysql.com/wiki/Development_Cycle
The new features in this release are of beta quality. As with any
other pre-production release, caution should be taken when installing on
production level systems or systems with critical data.
For production level systems using 5.1, we would like to direct your
attention to the product description of MySQL Enterprise at:
http://mysql.com/products/enterprise/
MySQL 5.5 is based on MySQL 5.4, which won't get any further updates.
So MySQL 5.5 includes several high-impact changes to address scalability
and performance issues in MySQL Server. These changes exploit advances
in hardware and CPU design and enable better utilization of existing
hardware.
For an overview of what's new in MySQL 5.5, please see the
section "What Is New in MySQL 5.5" below, or view it online at
http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html
For information on installing MySQL 5.5.1-m2 on new servers,
please see the MySQL installation documentation at
http://dev.mysql.com/doc/refman/5.5/en/installing.html
For upgrading from previous MySQL releases, please see the
important upgrade considerations at
http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html
MySQL Server is available in source and binary form for a
number of platforms from our download pages at
http://dev.mysql.com/downloads/
Not all mirror sites may be up to date at this point in
time, so if you can't find this version on some mirror,
please try again later or choose another download site.
We welcome and appreciate your feedback, bug reports, bug
fixes, patches, etc.:
http://forge.mysql.com/wiki/Contributing
Following the "What Is New" section, this mail lists the changes
in the MySQL source code of MySQL 5.5.1-m2.
The list of all "Bugs Fixed" may also be viewed online at
http://dev.mysql.com/doc/refman/5.5/en/news-5-5-1.html
When the publishing process for 5.5.1-m2 was already running,
the MySQL team was informed about a security problem
in the SSL connect area (a possibility to crash the server).
The problem is caused by a buffer overflow in the YaSSL library,
MySQL Servers using OpenSSL are not affected.
It can only occur when SSL (using YaSSL) is enabled.
This problem is still under detailed investigation with the various
versions, configurations, and platforms.
When that has finished, the problem will be fixed ASAP,
and new binaries for the affected versions will be released.
Obviously, building and testing these binaries in the various
configurations on the various platforms will take some time.
The bug is tracked with a CVE ID already:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4484
The related bug report is currently marked private, it will be made
public once the new binaries are out:
http://bugs.mysql.com/50227
In the meantime, we repeat the general security hint:
If it is not *absolutely* necessary that external machines can
connect to your database instance, we recommend that the server's
connection port be blocked by a firewall to prevent any such
illegitimate accesses.
Enjoy!
On behalf of the MySQL Build Team at Sun Microsystems:
Jörg Brühe,
Senior Production Engineer
-----
What Is New in MySQL 5.5
The following features have been added to MySQL 5.5:
* Support for an interface for semisynchronous replication:
A commit performed on the master side blocks before returning
to the session that performed the transaction until at least
one slave acknowledges that it has received and logged the events
for the transaction.
Semisynchronous replication is implemented through an optional
plugin component. See Section 16.2.8, "Semisynchronous Replication"
* Support for the SQL standard SIGNAL and RESIGNAL statements.
See Section 12.8.8, "SIGNAL and RESIGNAL".
* Enhancements to XML functionality, including a new LOAD XML
statement.
* Two new types of user-defined partitioning:
RANGE COLUMNS partitioning is an extension to RANGE partitioning;
LIST COLUMNS partitioning is an extension to LIST partitioning.
Each of these extensions provides two enhancements to MySQL
partitioning capabilities:
1. It is possible to define partitioning ranges or lists based on
DATE, DATETIME, or string values (such as CHAR or VARCHAR).
You can also define ranges or lists based on multiple column
values when partitioning tables by RANGE COLUMNS or LIST COLUMNS,
respectively. Such a range or list may refer to up to 16 columns.
2. For tables defined using these partitioning types, partition
pruning can now optimize queries with WHERE conditions that use
multiple comparisons between (different) column values and
constants, such as
a = 10 AND b > 5 or a < "2005-11-25" AND b = 10 AND c = 50.
For more information, see Section 17.2.1, "RANGE Partitioning",
and Section 17.2.2, "LIST Partitioning".
* It is now possible to delete all rows from one or more partitions
of a partitioned table using the ALTER TABLE ... TRUNCATE
PARTITION statement. Executing the statement deletes rows without
affecting the structure of the table. The partitions named in the
TRUNCATE PARTITION clause do not have to be contiguous.
* Key caches are now supported for indexes on partitioned MyISAM
tables, using the CACHE INDEX and LOAD INDEX INTO CACHE statements.
In addition, a key cache can be defined for and loaded with indexes
from an entire partitioned table, or for one or more partitions.
In the latter case, the partitions are not required to be contiguous.
* The TO_SECONDS() function is added. This function converts a date or
datetime expression to a number of seconds since the year 0. You may
use this function in partitioning expressions, and partition pruning
is supported for table defined using such expressions.
The following constructs are deprecated and will be removed in a future
MySQL release. Where alternatives are shown, applications should be
updated to use them.
* The table_type system variable (use storage_engine).
The TYPE table option to specify the storage engine for
CREATE TABLE or ALTER TABLE (use ENGINE).
The SHOW TABLE TYPES SQL statement (use SHOW ENGINES).
* The log_bin_trust_routine_creators variable
(use log_bin_trust_function_creators).
* TIMESTAMP(N): The ability to specify a display width of N
(use without N).
* The SHOW INNODB STATUS and SHOW MUTEX STATUS SQL statements
(use SHOW ENGINE INNODB STATUS for both of these).
* The LOAD TABLE ... FROM MASTER and LOAD DATA FROM MASTER SQL
statements.
* The SHOW PLUGIN SQL statement (use SHOW PLUGINS).
* The BACKUP TABLE and the RESTORE TABLE SQL statements.
* The --master-xxx server options to set replication parameters
(use the CHANGE MASTER TO statement instead):
--master-host, --master-user, --master-password, --master-port,
--master-connect-retry, --master-ssl, --master-ssl-ca,
--master-ssl-capath, --master-ssl-cert, --master-ssl-cipher,
--master-ssl-key.
-----
Changes in MySQL 5.5.1-m2:
RPM Notes:
* The version information in RPM package files has been changed:
+ The "level" field of a MySQL version number is now also
included in the RPM version and in the package file name.
+ The RPM "release" value now starts to count from 1, not 0.
For example, the generic x86 server RPM file of 5.5.1-m2 is
named MySQL-server-5.5.1_m2-1.glibc23.i386.rpm. This improves
consistency with other formats that also include the level
(for this version: "m2") in the file name. For example, the
tar.gz filename is mysql-5.5.1-m2-linux-i686-glibc23.tar.gz.
The different separator, underscore '_' for RPM, is required
by the syntax of RPM.
InnoDB Plugin Notes:
* InnoDB Plugin has been upgraded to version 1.0.6. This version
is considered of Release Candidate (RC) quality. The InnoDB
Plugin Change History
(http://www.innodb.com/doc/innodb_plugin-1.0/innodb-changes.ht
ml) may contain information in addition to those changes
reported here.
Functionality added or changed:
* Partitioning: The UNIX_TIMESTAMP() function is now supported
in partitioning expressions using TIMESTAMP columns. For
example, it now possible to create a partitioned table such as
this one:
CREATE TABLE t (c TIMESTAMP)
PARTITION BY RANGE ( UNIX_TIMESTAMP(c) ) (
PARTITION p0 VALUES LESS THAN (631148400),
PARTITION p1 VALUES LESS THAN (946681200),
PARTITION p2 VALUES LESS THAN (MAXVALUE)
);
All other expressions involving TIMESTAMP values are now
rejected with an error when attempting to create a new
partitioned table or to alter an existing partitioned table.
When accessing an existing partitioned table having a
timezone-dependent partitioning function (where the table was
using a previous version of MySQL), a warning rather than an
error is issued. In such cases, you should fix the table. One
way of doing this is to alter the table's partitioning
expression so that it uses UNIX_TIMESTAMP().
(Bug#42849: http://bugs.mysql.com/bug.php?id=42849)
Bugs fixed:
* Performance: When the query cache is fragmented, the size of
the free block lists in the memory bins grows, which causes
query cache invalidation to become slow. There is now a 50ms
timeout for a SELECT statement waiting for the query cache
lock. If the timeout expires, the statement executes without
using the query cache.
(Bug#39253: http://bugs.mysql.com/bug.php?id=39253)
See also Bug#21074: http://bugs.mysql.com/bug.php?id=21074.
* Important Change: Replication: The following functions have
been marked unsafe for statement-based replication:
+ GET_LOCK()
+ IS_FREE_LOCK()
+ IS_USED_LOCK()
+ MASTER_POS_WAIT()
+ RELEASE_LOCK()
+ SLEEP()
+ SYSDATE()
+ VERSION()
None of the functions just listed are guaranteed to replicate
correctly when using the statement-based format, because they
can produce different results on the master and the slave. The
use of any of these functions while binlog_format is set to
STATEMENT is logged with the warning, Statement is not safe to
log in statement format. When binlog_format is set to MIXED,
the binary logging format is automatically switched to the
row-based format whenever one of these functions is used.
(Bug#47995: http://bugs.mysql.com/bug.php?id=47995)
* Partitioning: When SHOW CREATE TABLE was invoked for a table
that had been created using the COLUMNS keyword or the
TO_SECONDS() function, the output contained the wrong MySQL
version number in the conditional comments.
(Bug#49591: http://bugs.mysql.com/bug.php?id=49591)
* Partitioning: A query that searched on a ucs2 column failed if
the table was partitioned.
(Bug#48737: http://bugs.mysql.com/bug.php?id=48737)
* Partitioning: In some cases, it was not possible to add a new
column to a table that had subpartitions.
(Bug#48276: http://bugs.mysql.com/bug.php?id=48276)
* Partitioning: SELECT COUNT(*) from a partitioned table failed
when using the ONLY_FULL_GROUP_BY SQL mode.
(Bug#46923: http://bugs.mysql.com/bug.php?id=46923)
This regression was introduced by
Bug#45807: http://bugs.mysql.com/bug.php?id=45807.
* Partitioning: SUBPARTITION BY KEY failed with DEFAULT
CHARSET=utf8.
(Bug#45904: http://bugs.mysql.com/bug.php?id=45904)
* Replication: When using row-based logging, TRUNCATE TABLE was
written to the binary log even if the affected table was
temporary, causing replication to fail.
(Bug#48350: http://bugs.mysql.com/bug.php?id=48350)
* Cluster Replication: When expire_logs_days was set, the thread
performing the purge of the log files could deadlock, causing
all binary log operations to stop.
(Bug#49536: http://bugs.mysql.com/bug.php?id=49536)
* For debug builds on Windows, SAFEMALLOC was defined
inconsistently, leading to mismatches when using my_malloc()
and my_free().
(Bug#49811: http://bugs.mysql.com/bug.php?id=49811)
* The mysql.server script had incorrect shutdown logic.
(Bug#49772: http://bugs.mysql.com/bug.php?id=49772)
* The result of comparison between nullable BIGINT and INT
columns was inconsistent.
(Bug#49517: http://bugs.mysql.com/bug.php?id=49517)
* A Valgrind error in make_cond_for_table_from_pred() was
corrected. Thanks to Sergey Petrunya for the patch to fix this
bug. (Bug#49506: http://bugs.mysql.com/bug.php?id=49506)
* When compiling on Windows, an error in the CMake definitions
for InnoDB would cause the engine to be built incorrectly.
(Bug#49502: http://bugs.mysql.com/bug.php?id=49502)
* Incorrect cache initialization prevented storage of converted
constant values and could produce incorrect comparison
results. (Bug#49489: http://bugs.mysql.com/bug.php?id=49489)
* Comparisons involving YEAR values could produce incorrect
results. (Bug#49480: http://bugs.mysql.com/bug.php?id=49480)
See also Bug#43668: http://bugs.mysql.com/bug.php?id=43668.
* Valgrind warnings for CHECKSUM TABLE were corrected.
(Bug#49465: http://bugs.mysql.com/bug.php?id=49465)
* Specifying an index algorithm (such as BTREE) for SPATIAL or
FULLTEXT indexes caused a server crash. These index types do
not support algorithm specification, and it is now disallowed
to do so. (Bug#49250: http://bugs.mysql.com/bug.php?id=49250)
* The optimizer sometimes incorrectly handled conditions of the
form WHERE col_name='const1' AND col_name='const2'.
(Bug#49199: http://bugs.mysql.com/bug.php?id=49199)
* Execution of DECODE() and ENCODE() could be inefficient
because multiple executions within a single statement
reinitialized the random generator multiple times even with
constant parameters.
(Bug#49141: http://bugs.mysql.com/bug.php?id=49141)
* The LIKE operator did not work correctly when using an index
for a ucs2 column.
(Bug#49028: http://bugs.mysql.com/bug.php?id=49028)
* check_key_in_view() was missing a DBUG_RETURN in one code
branch, causing a crash in debug builds.
(Bug#48995: http://bugs.mysql.com/bug.php?id=48995)
* If a query involving a table was terminated with KILL, a
subsequent SHOW CREATE TABLE for that table caused a server
crash. (Bug#48985: http://bugs.mysql.com/bug.php?id=48985)
* Privileges for stored routines were ignored for mixed-case
routine names.
(Bug#48872: http://bugs.mysql.com/bug.php?id=48872)
See also Bug#41049: http://bugs.mysql.com/bug.php?id=41049.
* Concurrent ALTER TABLE operations on an InnoDB table could
raise an assertion.
(Bug#48782: http://bugs.mysql.com/bug.php?id=48782)
* During query execution, ranges could be merged incorrectly for
OR operations and return an incorrect result.
(Bug#48665: http://bugs.mysql.com/bug.php?id=48665)
* The InnoDB Table Monitor reported the FLOAT and DOUBLE data
types incorrectly.
(Bug#48526: http://bugs.mysql.com/bug.php?id=48526)
* With row-based binary logging, the server crashed for
statements of the form CREATE TABLE IF NOT EXISTS
existing_view LIKE temporary_table. This occurred because the
server handled the existing view as a table when logging the
statement. (Bug#48506: http://bugs.mysql.com/bug.php?id=48506)
* The error message for ER_UPDATE_INFO was subject to buffer
overflow or truncation.
(Bug#48500: http://bugs.mysql.com/bug.php?id=48500)
* DISTINCT was ignored for queries with GROUP BY WITH ROLLUP and
only const tables.
(Bug#48475: http://bugs.mysql.com/bug.php?id=48475)
* Loose index scan was inappropriately chosen for some WHERE
conditions.
(Bug#48472: http://bugs.mysql.com/bug.php?id=48472)
* If the InnoDB tablespace was configured with too small a
value, the server could crash and corrupt the tablespace.
(Bug#48469: http://bugs.mysql.com/bug.php?id=48469)
* Parts of the range optimizer could be initialized incorrectly,
resulting in Valgrind errors.
(Bug#48459: http://bugs.mysql.com/bug.php?id=48459)
* A bad typecast could cause query execution to allocate large
amounts of memory.
(Bug#48458: http://bugs.mysql.com/bug.php?id=48458)
* On Windows, InnoDB could not be built as a statically linked
library. (Bug#48317: http://bugs.mysql.com/bug.php?id=48317)
* mysql_secure_installation did not work on Solaris.
(Bug#48086: http://bugs.mysql.com/bug.php?id=48086)
* When running mysql_secure_installation, the command would fail
if the root password contained multiple spaces, \, # or quote
characters.
(Bug#48031: http://bugs.mysql.com/bug.php?id=48031)
* MATCH IN BOOLEAN MODE searches could return too many results
inside a subquery.
(Bug#47930: http://bugs.mysql.com/bug.php?id=47930)
* User-defined collations with an ID less then 256 were not
initialized correctly when loaded and caused a server crash.
(Bug#47756: http://bugs.mysql.com/bug.php?id=47756)
* If a session held a global read lock acquired with FLUSH
TABLES WITH READ LOCK, a lock for one table acquired with LOCK
TABLES, and issued an INSERT DELAYED statement for another
table, deadlock could occur.
(Bug#47682: http://bugs.mysql.com/bug.php?id=47682)
* The mysql client status command displayed an incorrect value
for the server character set.
(Bug#47671: http://bugs.mysql.com/bug.php?id=47671)
* Connecting to a 4.1.x server from a 5.1.x or higher mysql
client resulted in a memory-free error when disconnecting.
(Bug#47655: http://bugs.mysql.com/bug.php?id=47655)
* Assignment of a system variable sharing the same base name as
a declared stored program variable in the same context could
lead to a crash.
(Bug#47627: http://bugs.mysql.com/bug.php?id=47627)
* On Solaris, no stack trace was printed to the error log after
a crash. (Bug#47391: http://bugs.mysql.com/bug.php?id=47391)
* The innodb_file_format_check system variable could not be set
at runtime to DEFAULT or to the value of a user-defined
variable. (Bug#47167: http://bugs.mysql.com/bug.php?id=47167)
* After a binary upgrade to MySQL 5.1 from a MySQL 5.0
installation that contains ARCHIVE tables, accessing those
tables caused the server to crash, even if you had run
mysql_upgrade or CHECK TABLE ... FOR UPGRADE.
To work around this problem, use mysqldump to dump all ARCHIVE
tables before upgrading, and reload them into MySQL 5.1 after
upgrading. The same problem occurs for binary downgrades from
MySQL 5.1 to 5.0.
(Bug#47012: http://bugs.mysql.com/bug.php?id=47012)
* The IGNORE clause on a DELETE statement masked an SQL
statement error that occurred during trigger processing.
(Bug#46425: http://bugs.mysql.com/bug.php?id=46425)
* Valgrind errors for InnoDB Plugin were corrected.
(Bug#45992: http://bugs.mysql.com/bug.php?id=45992,
Bug#46656: http://bugs.mysql.com/bug.php?id=46656)
* The return value was not checked for some my_hash_insert()
calls. (Bug#45613: http://bugs.mysql.com/bug.php?id=45613)
* It was possible for init_available_charsets() not to
initialize correctly.
(Bug#45058: http://bugs.mysql.com/bug.php?id=45058)
* GROUP BY on a constant (single-row) InnoDB table joined to
other tables caused a server crash.
(Bug#44886: http://bugs.mysql.com/bug.php?id=44886)
* For YEAR(2) values, MIN(), MAX(), and comparisons could yield
incorrect results.
(Bug#43668: http://bugs.mysql.com/bug.php?id=43668)
* Comparison with NULL values sometimes did not produce a
correct result.
(Bug#42760: http://bugs.mysql.com/bug.php?id=42760)
* In debug builds, killing a LOAD XML INFILE statement raised an
assertion. (Bug#42520: http://bugs.mysql.com/bug.php?id=42520)
* The server could crash when attempting to access a
non-conformant mysql.proc system table. For example, the
server could crash when invoking stored procedure-related
statements after an upgrade from MySQL 5.0 to 5.1 without
running mysql_upgrade.
(Bug#41726: http://bugs.mysql.com/bug.php?id=41726)
* The mysql_upgrade command would create three additional fields
to the mysql.proc table (character_set_client,
collation_connection, and db_collation), but did not populate
the fields with correct values. This would lead to error
messages reported during stored procedure execution.
(Bug#41569: http://bugs.mysql.com/bug.php?id=41569)
* Use of InnoDB monitoring (SHOW ENGINE INNODB STATUS or one of
the InnoDB Monitor tables) could cause a server crash due to
invalid access to a shared variable in a concurrent
environment.
(Bug#38883: http://bugs.mysql.com/bug.php?id=38883)
* When compressed MyISAM files were opened, they were always
memory mapped, sometimes causing memory-swapping problems. To
deal with this, a new system variable, myisam_mmap_size, was
added to limit the amount of memory used for memory mapping of
MyISAM files.
(Bug#37408: http://bugs.mysql.com/bug.php?id=37408)
* When running mysql_secure_installation on Windows, the command
would fail to load a required module, Term::ReadKey, which was
required for correct operation.
(Bug#35106: http://bugs.mysql.com/bug.php?id=35106)
* If the --log-bin server option was set to a directory name
with a trailing component separator character, the basename of
the binary log files was empty so that the created files were
named .000001 and .index. The same thing occurred with the
--log-bin-index, --relay-log, and --relay-log-index options.
Now the server reports and error and exits.
(Bug#34739: http://bugs.mysql.com/bug.php?id=34739)
* If a comparison involved a constant value that required type
conversion, the converted value might not be cached, resulting
in repeated conversion and poorer performance.
(Bug#34384: http://bugs.mysql.com/bug.php?id=34384)
* Using the SHOW ENGINE INNODB STATUS statement when using
partitions in InnoDB tables caused Invalid (old?) table or
database name errors to be logged.
(Bug#32430: http://bugs.mysql.com/bug.php?id=32430)
* Output from mysql --html did not encode the <, >, or &
characters.
(Bug#27884: http://bugs.mysql.com/bug.php?id=27884)
* Under heavy load with a large query cache, invalidating part
of the cache could cause the server to freeze (that is, to be
unable to service other operations until the invalidation was
complete). (Bug#21074: http://bugs.mysql.com/bug.php?id=21074)
See also Bug#39253: http://bugs.mysql.com/bug.php?id=39253.
* On some Windows systems, InnoDB could report Operating system
error number 995 in a file operation due to transient driver
or hardware problems. InnoDB now retries the operation and
adds Retry attempt is made to the error message.
(Bug#3139: http://bugs.mysql.com/bug.php?id=3139)
MySQL Community Server 5.1.42 has been released (no replies)
Dear MySQL users,
MySQL Community Server 5.1.42, a new version of the popular Open
Source Database Management System, has been released. MySQL 5.1.42 is
recommended for use on production systems.
For an overview of what's new in MySQL 5.1, please see
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
For information on installing MySQL 5.1.42 on new servers or upgrading
to MySQL 5.1.42 from previous MySQL releases, please see
http://dev.mysql.com/doc/refman/5.1/en/installing.html
MySQL Server is available in source and binary form for a number of
platforms from our download pages at
http://dev.mysql.com/downloads/
Not all mirror sites may be up to date at this point in time, so if
you can't find this version on some mirror, please try again later or
choose another download site.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:
http://forge.mysql.com/wiki/Contributing
For information on open issues in MySQL 5.1, please see the errata
list at
http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html
The following section lists the changes in the MySQL source code since
the previous released version of MySQL 5.1. It may also be viewed
online at
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-42.html
Enjoy!
======================================================================= Changes in MySQL 5.1.42 Release availability: * MySQL Server 5.1 is available on the following new platforms starting with the 5.1.42 release: + Mac OS X 10.6 x86/x64 + HP-UX 11.31 IA64 + SLES 11 x86/x64 Important Change: Replication: The following functions have been marked unsafe for statement-based replication: + GET_LOCK() + IS_FREE_LOCK() + IS_USED_LOCK() + MASTER_POS_WAIT() + RELEASE_LOCK() + SLEEP() + SYSDATE() + VERSION() None of the functions just listed are guaranteed to replicate correctly when using the statement-based format, because they can produce different results on the master and the slave. The use of any of these functions while binlog_format is set to STATEMENT is logged with the warning, Statement is not safe to log in statement format. When binlog_format is set to MIXED, the binary logging format is automatically switched to the row-based format whenever one of these functions is used. (Bug#47995: http://bugs.mysql.com/bug.php?id=47995) InnoDB Plugin Notes: * InnoDB Plugin has been upgraded to version 1.0.6. This version is considered of Release Candidate (RC) quality. The InnoDB Plugin Change History (http://www.innodb.com/doc/innodb_plugin-1.0/innodb-changes.html) may contain information in addition to those changes reported here. Bugs fixed: * Performance: When the query cache is fragmented, the size of the free block lists in the memory bins grows, which causes query cache invalidation to become slow. There is now a 50ms timeout for a SELECT statement waiting for the query cache lock. If the timeout expires, the statement executes without using the query cache. (Bug#39253: http://bugs.mysql.com/bug.php?id=39253) * Partitioning: In some cases, it was not possible to add a new column to a table that had subpartitions. (Bug#48276: http://bugs.mysql.com/bug.php?id=48276) * Partitioning: SELECT COUNT(*) from a partitioned table failed when using the ONLY_FULL_GROUP_BY SQL mode. (Bug#46923: http://bugs.mysql.com/bug.php?id=46923) This regression was introduced by Bug#45807: http://bugs.mysql.com/bug.php?id=45807. * Partitioning: SUBPARTITION BY KEY failed with DEFAULT CHARSET=utf8. (Bug#45904: http://bugs.mysql.com/bug.php?id=45904) * Replication: When using row-based logging, TRUNCATE TABLE was written to the binary log even if the affected table was temporary, causing replication to fail. (Bug#48350: http://bugs.mysql.com/bug.php?id=48350) * Replication: Replicating TEXT or VARCHAR columns declared as NULL on the master but NOT NULL on the slave caused the slave to crash. (Bug#43789: http://bugs.mysql.com/bug.php?id=43789) See also Bug#38850: http://bugs.mysql.com/bug.php?id=38850, Bug#43783: http://bugs.mysql.com/bug.php?id=43783, Bug#43785: http://bugs.mysql.com/bug.php?id=43785, Bug#47741: http://bugs.mysql.com/bug.php?id=47741, Bug#48091: http://bugs.mysql.com/bug.php?id=48091. * InnoDB did not reset table AUTO_INCREMENT values to the last used values after a server restart. (Bug#49032: http://bugs.mysql.com/bug.php?id=49032) * Privileges for stored routines were ignored for mixed-case routine names. (Bug#48872: http://bugs.mysql.com/bug.php?id=48872) See also Bug#41049: http://bugs.mysql.com/bug.php?id=41049. * Building MySQL on Fedora Core 12 64-bit would due to errors in comp_err. (Bug#48864: http://bugs.mysql.com/bug.php?id=48864) * Concurrent ALTER TABLE operations on an InnoDB table could raise an assertion. (Bug#48782: http://bugs.mysql.com/bug.php?id=48782) * During query execution, ranges could be merged incorrectly for OR operations and return an incorrect result. (Bug#48665: http://bugs.mysql.com/bug.php?id=48665) * The InnoDB Table Monitor reported the FLOAT and DOUBLE data types incorrectly. (Bug#48526: http://bugs.mysql.com/bug.php?id=48526) * With row-based binary logging, the server crashed for statements of the form CREATE TABLE IF NOT EXISTS existing_view LIKE temporary_table. This occurred because the server handled the existing view as a table when logging the statement. (Bug#48506: http://bugs.mysql.com/bug.php?id=48506) * DISTINCT was ignored for queries with GROUP BY WITH ROLLUP and only const tables. (Bug#48475: http://bugs.mysql.com/bug.php?id=48475) * Loose index scan was inappropriately chosen for some WHERE conditions. (Bug#48472: http://bugs.mysql.com/bug.php?id=48472) * A bad typecast could cause query execution to allocate large amounts of memory. (Bug#48458: http://bugs.mysql.com/bug.php?id=48458) * On Windows, InnoDB could not be built as a statically linked library. (Bug#48317: http://bugs.mysql.com/bug.php?id=48317) * When running mysql_secure_installation, the command would fail if the root password contained multiple spaces, \, # or quote characters. (Bug#48031: http://bugs.mysql.com/bug.php?id=48031) * MATCH IN BOOLEAN MODE searches could return too many results inside a subquery. (Bug#47930: http://bugs.mysql.com/bug.php?id=47930) * Connecting to a 4.1.x server from a 5.1.x or higher mysql client resulted in a memory-free error when disconnecting. (Bug#47655: http://bugs.mysql.com/bug.php?id=47655) * Assignment of a system variable sharing the same base name as a declared stored program variable in the same context could lead to a crash. (Bug#47627: http://bugs.mysql.com/bug.php?id=47627) * The innodb_file_format_check system variable could not be set at runtime to DEFAULT or to the value of a user-defined variable. (Bug#47167: http://bugs.mysql.com/bug.php?id=47167) * Valgrind errors for InnoDB Plugin were corrected. (Bug#45992: http://bugs.mysql.com/bug.php?id=45992, Bug#46656: http://bugs.mysql.com/bug.php?id=46656) * On 64-bit systems, --skip-innodb did not skip InnoDB startup. (Bug#46043: http://bugs.mysql.com/bug.php?id=46043) * Truncation of DECIMAL values could lead to assertion failures; for example, when deducing the type of a table column from a literal DECIMAL value. (Bug#45261: http://bugs.mysql.com/bug.php?id=45261) See also Bug#48370: http://bugs.mysql.com/bug.php?id=48370. * For YEAR(2) values, MIN(), MAX(), and comparisons could yield incorrect results. (Bug#43668: http://bugs.mysql.com/bug.php?id=43668) * The server could crash when attempting to access a non-conformant mysql.proc system table. For example, the server could crash when invoking stored procedure-related statements after an upgrade from MySQL 5.0 to 5.1 without running mysql_upgrade. (Bug#41726: http://bugs.mysql.com/bug.php?id=41726) * When running mysql_secure_installation on Windows, the command would fail to load a required module, Term::ReadKey, which was required for correct operation. (Bug#35106: http://bugs.mysql.com/bug.php?id=35106) * If the --log-bin server option was set to a directory name with a trailing component separator character, the basename of the binary log files was empty so that the created files were named .000001 and .index. The same thing occurred with the --log-bin-index, --relay-log, and --relay-log-index options. Now the server reports and error and exits. (Bug#34739: http://bugs.mysql.com/bug.php?id=34739) * On some Windows systems, InnoDB could report Operating system error number 995 in a file operation due to transient driver or hardware problems. InnoDB now retries the operation and adds Retry attempt is made to the error message. (Bug#3139: http://bugs.mysql.com/bug.php?id=3139) * Replication: When using row-based format, replication failed with the error Could not execute Write_rows event on table ...; Field '...' doesn't have a default value when an INSERT was made on the master without specifying a value for a column having no default, even if strict server SQL mode was not in use and the statement would otherwise have succeeded on the master. Now the SQL mode is checked, and the statement is replicated unless strict mode is in effect. For more information, see Section 5.1.8, "Server SQL Modes." (Bug#38173: http://bugs.mysql.com/bug.php?id=38173) See also Bug#38262: http://bugs.mysql.com/bug.php?id=38262, Bug#43992: http://bugs.mysql.com/bug.php?id=43992. * The result of comparison between nullable BIGINT and INT columns was inconsistent. (Bug#49517: http://bugs.mysql.com/bug.php?id=49517) * Incorrect cache initialization prevented storage of converted constant values and could produce incorrect comparison results. (Bug#49489: http://bugs.mysql.com/bug.php?id=49489) * Comparisons involving YEAR values could produce incorrect results. (Bug#49480: http://bugs.mysql.com/bug.php?id=49480) See also Bug#43668: http://bugs.mysql.com/bug.php?id=43668. * If a query involving a table was terminated with KILL, a subsequent SHOW CREATE TABLE for that table caused a server crash. (Bug#48985: http://bugs.mysql.com/bug.php?id=48985) * If the InnoDB tablespace was configured with too small a value, the server could crash and corrupt the tablespace. (Bug#48469: http://bugs.mysql.com/bug.php?id=48469) * Parts of the range optimizer could be initialized incorrectly, resulting in Valgrind errors. (Bug#48459: http://bugs.mysql.com/bug.php?id=48459) * On Windows, InnoDB could not be built as a statically linked library. (Bug#48317: http://bugs.mysql.com/bug.php?id=48317) * mysql_secure_installation did not work on Solaris. (Bug#48086: http://bugs.mysql.com/bug.php?id=48086) * Using REPLACE to update a previously inserted negative value in an AUTO_INCREMENT coumn in an InnoDB table caused the table auto-increment value to be updated to 2147483647. (Bug#47720: http://bugs.mysql.com/bug.php?id=47720) * If a session held a global read lock acquired with FLUSH TABLES WITH READ LOCK, a lock for one table acquired with LOCK TABLES, and issued an INSERT DELAYED statement for another table, deadlock could occur. (Bug#47682: http://bugs.mysql.com/bug.php?id=47682) * The mysql client status command displayed an incorrect value for the server character set. (Bug#47671: http://bugs.mysql.com/bug.php?id=47671) * After a binary upgrade to MySQL 5.1 from a MySQL 5.0 installation that contains ARCHIVE tables, accessing those tables caused the server to crash, even if you had run mysql_upgrade or CHECK TABLE ... FOR UPGRADE. To work around this problem, use mysqldump to dump all ARCHIVE tables before upgrading, and reload them into MySQL 5.1 after upgrading. The same problem occurs for binary downgrades from MySQL 5.1 to 5.0. (Bug#47012: http://bugs.mysql.com/bug.php?id=47012) * The IGNORE clause on a DELETE statement masked an SQL statement error that occurred during trigger processing. (Bug#46425: http://bugs.mysql.com/bug.php?id=46425) * The return value was not checked for some my_hash_insert() calls. (Bug#45613: http://bugs.mysql.com/bug.php?id=45613) * Use of InnoDB monitoring (SHOW ENGINE INNODB STATUS or one of the InnoDB Monitor tables) could cause a server crash due to invalid access to a shared variable in a concurrent environment. This is a further fix for a regression introduced in MySQL 5.1.38 to the original fix in MySQL 5.1.31. (Bug#38883: http://bugs.mysql.com/bug.php?id=38883) * If a comparison involved a constant value that required type conversion, the converted value might not be cached, resulting in repeated conversion and poorer performance. (Bug#34384: http://bugs.mysql.com/bug.php?id=34384) * Using the SHOW ENGINE INNODB STATUS statement when using partitions in InnoDB tables caused Invalid (old?) table or database name errors to be logged. (Bug#32430: http://bugs.mysql.com/bug.php?id=32430) * The Mac OS X 10.6 MySQL preference panel now contains x86 64-bit binaries. (Bug#46935: http://bugs.mysql.com/bug.php?id=46935) Thanks,
MySQL RE Team
Kent Boortz, Hery Ramilison, Karen Langford, MySQL Release Engineers
Database Group, Sun Microsystem Inc.
MySQL Community Server 5.1.42, a new version of the popular Open
Source Database Management System, has been released. MySQL 5.1.42 is
recommended for use on production systems.
For an overview of what's new in MySQL 5.1, please see
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
For information on installing MySQL 5.1.42 on new servers or upgrading
to MySQL 5.1.42 from previous MySQL releases, please see
http://dev.mysql.com/doc/refman/5.1/en/installing.html
MySQL Server is available in source and binary form for a number of
platforms from our download pages at
http://dev.mysql.com/downloads/
Not all mirror sites may be up to date at this point in time, so if
you can't find this version on some mirror, please try again later or
choose another download site.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:
http://forge.mysql.com/wiki/Contributing
For information on open issues in MySQL 5.1, please see the errata
list at
http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html
The following section lists the changes in the MySQL source code since
the previous released version of MySQL 5.1. It may also be viewed
online at
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-42.html
Enjoy!
======================================================================= Changes in MySQL 5.1.42 Release availability: * MySQL Server 5.1 is available on the following new platforms starting with the 5.1.42 release: + Mac OS X 10.6 x86/x64 + HP-UX 11.31 IA64 + SLES 11 x86/x64 Important Change: Replication: The following functions have been marked unsafe for statement-based replication: + GET_LOCK() + IS_FREE_LOCK() + IS_USED_LOCK() + MASTER_POS_WAIT() + RELEASE_LOCK() + SLEEP() + SYSDATE() + VERSION() None of the functions just listed are guaranteed to replicate correctly when using the statement-based format, because they can produce different results on the master and the slave. The use of any of these functions while binlog_format is set to STATEMENT is logged with the warning, Statement is not safe to log in statement format. When binlog_format is set to MIXED, the binary logging format is automatically switched to the row-based format whenever one of these functions is used. (Bug#47995: http://bugs.mysql.com/bug.php?id=47995) InnoDB Plugin Notes: * InnoDB Plugin has been upgraded to version 1.0.6. This version is considered of Release Candidate (RC) quality. The InnoDB Plugin Change History (http://www.innodb.com/doc/innodb_plugin-1.0/innodb-changes.html) may contain information in addition to those changes reported here. Bugs fixed: * Performance: When the query cache is fragmented, the size of the free block lists in the memory bins grows, which causes query cache invalidation to become slow. There is now a 50ms timeout for a SELECT statement waiting for the query cache lock. If the timeout expires, the statement executes without using the query cache. (Bug#39253: http://bugs.mysql.com/bug.php?id=39253) * Partitioning: In some cases, it was not possible to add a new column to a table that had subpartitions. (Bug#48276: http://bugs.mysql.com/bug.php?id=48276) * Partitioning: SELECT COUNT(*) from a partitioned table failed when using the ONLY_FULL_GROUP_BY SQL mode. (Bug#46923: http://bugs.mysql.com/bug.php?id=46923) This regression was introduced by Bug#45807: http://bugs.mysql.com/bug.php?id=45807. * Partitioning: SUBPARTITION BY KEY failed with DEFAULT CHARSET=utf8. (Bug#45904: http://bugs.mysql.com/bug.php?id=45904) * Replication: When using row-based logging, TRUNCATE TABLE was written to the binary log even if the affected table was temporary, causing replication to fail. (Bug#48350: http://bugs.mysql.com/bug.php?id=48350) * Replication: Replicating TEXT or VARCHAR columns declared as NULL on the master but NOT NULL on the slave caused the slave to crash. (Bug#43789: http://bugs.mysql.com/bug.php?id=43789) See also Bug#38850: http://bugs.mysql.com/bug.php?id=38850, Bug#43783: http://bugs.mysql.com/bug.php?id=43783, Bug#43785: http://bugs.mysql.com/bug.php?id=43785, Bug#47741: http://bugs.mysql.com/bug.php?id=47741, Bug#48091: http://bugs.mysql.com/bug.php?id=48091. * InnoDB did not reset table AUTO_INCREMENT values to the last used values after a server restart. (Bug#49032: http://bugs.mysql.com/bug.php?id=49032) * Privileges for stored routines were ignored for mixed-case routine names. (Bug#48872: http://bugs.mysql.com/bug.php?id=48872) See also Bug#41049: http://bugs.mysql.com/bug.php?id=41049. * Building MySQL on Fedora Core 12 64-bit would due to errors in comp_err. (Bug#48864: http://bugs.mysql.com/bug.php?id=48864) * Concurrent ALTER TABLE operations on an InnoDB table could raise an assertion. (Bug#48782: http://bugs.mysql.com/bug.php?id=48782) * During query execution, ranges could be merged incorrectly for OR operations and return an incorrect result. (Bug#48665: http://bugs.mysql.com/bug.php?id=48665) * The InnoDB Table Monitor reported the FLOAT and DOUBLE data types incorrectly. (Bug#48526: http://bugs.mysql.com/bug.php?id=48526) * With row-based binary logging, the server crashed for statements of the form CREATE TABLE IF NOT EXISTS existing_view LIKE temporary_table. This occurred because the server handled the existing view as a table when logging the statement. (Bug#48506: http://bugs.mysql.com/bug.php?id=48506) * DISTINCT was ignored for queries with GROUP BY WITH ROLLUP and only const tables. (Bug#48475: http://bugs.mysql.com/bug.php?id=48475) * Loose index scan was inappropriately chosen for some WHERE conditions. (Bug#48472: http://bugs.mysql.com/bug.php?id=48472) * A bad typecast could cause query execution to allocate large amounts of memory. (Bug#48458: http://bugs.mysql.com/bug.php?id=48458) * On Windows, InnoDB could not be built as a statically linked library. (Bug#48317: http://bugs.mysql.com/bug.php?id=48317) * When running mysql_secure_installation, the command would fail if the root password contained multiple spaces, \, # or quote characters. (Bug#48031: http://bugs.mysql.com/bug.php?id=48031) * MATCH IN BOOLEAN MODE searches could return too many results inside a subquery. (Bug#47930: http://bugs.mysql.com/bug.php?id=47930) * Connecting to a 4.1.x server from a 5.1.x or higher mysql client resulted in a memory-free error when disconnecting. (Bug#47655: http://bugs.mysql.com/bug.php?id=47655) * Assignment of a system variable sharing the same base name as a declared stored program variable in the same context could lead to a crash. (Bug#47627: http://bugs.mysql.com/bug.php?id=47627) * The innodb_file_format_check system variable could not be set at runtime to DEFAULT or to the value of a user-defined variable. (Bug#47167: http://bugs.mysql.com/bug.php?id=47167) * Valgrind errors for InnoDB Plugin were corrected. (Bug#45992: http://bugs.mysql.com/bug.php?id=45992, Bug#46656: http://bugs.mysql.com/bug.php?id=46656) * On 64-bit systems, --skip-innodb did not skip InnoDB startup. (Bug#46043: http://bugs.mysql.com/bug.php?id=46043) * Truncation of DECIMAL values could lead to assertion failures; for example, when deducing the type of a table column from a literal DECIMAL value. (Bug#45261: http://bugs.mysql.com/bug.php?id=45261) See also Bug#48370: http://bugs.mysql.com/bug.php?id=48370. * For YEAR(2) values, MIN(), MAX(), and comparisons could yield incorrect results. (Bug#43668: http://bugs.mysql.com/bug.php?id=43668) * The server could crash when attempting to access a non-conformant mysql.proc system table. For example, the server could crash when invoking stored procedure-related statements after an upgrade from MySQL 5.0 to 5.1 without running mysql_upgrade. (Bug#41726: http://bugs.mysql.com/bug.php?id=41726) * When running mysql_secure_installation on Windows, the command would fail to load a required module, Term::ReadKey, which was required for correct operation. (Bug#35106: http://bugs.mysql.com/bug.php?id=35106) * If the --log-bin server option was set to a directory name with a trailing component separator character, the basename of the binary log files was empty so that the created files were named .000001 and .index. The same thing occurred with the --log-bin-index, --relay-log, and --relay-log-index options. Now the server reports and error and exits. (Bug#34739: http://bugs.mysql.com/bug.php?id=34739) * On some Windows systems, InnoDB could report Operating system error number 995 in a file operation due to transient driver or hardware problems. InnoDB now retries the operation and adds Retry attempt is made to the error message. (Bug#3139: http://bugs.mysql.com/bug.php?id=3139) * Replication: When using row-based format, replication failed with the error Could not execute Write_rows event on table ...; Field '...' doesn't have a default value when an INSERT was made on the master without specifying a value for a column having no default, even if strict server SQL mode was not in use and the statement would otherwise have succeeded on the master. Now the SQL mode is checked, and the statement is replicated unless strict mode is in effect. For more information, see Section 5.1.8, "Server SQL Modes." (Bug#38173: http://bugs.mysql.com/bug.php?id=38173) See also Bug#38262: http://bugs.mysql.com/bug.php?id=38262, Bug#43992: http://bugs.mysql.com/bug.php?id=43992. * The result of comparison between nullable BIGINT and INT columns was inconsistent. (Bug#49517: http://bugs.mysql.com/bug.php?id=49517) * Incorrect cache initialization prevented storage of converted constant values and could produce incorrect comparison results. (Bug#49489: http://bugs.mysql.com/bug.php?id=49489) * Comparisons involving YEAR values could produce incorrect results. (Bug#49480: http://bugs.mysql.com/bug.php?id=49480) See also Bug#43668: http://bugs.mysql.com/bug.php?id=43668. * If a query involving a table was terminated with KILL, a subsequent SHOW CREATE TABLE for that table caused a server crash. (Bug#48985: http://bugs.mysql.com/bug.php?id=48985) * If the InnoDB tablespace was configured with too small a value, the server could crash and corrupt the tablespace. (Bug#48469: http://bugs.mysql.com/bug.php?id=48469) * Parts of the range optimizer could be initialized incorrectly, resulting in Valgrind errors. (Bug#48459: http://bugs.mysql.com/bug.php?id=48459) * On Windows, InnoDB could not be built as a statically linked library. (Bug#48317: http://bugs.mysql.com/bug.php?id=48317) * mysql_secure_installation did not work on Solaris. (Bug#48086: http://bugs.mysql.com/bug.php?id=48086) * Using REPLACE to update a previously inserted negative value in an AUTO_INCREMENT coumn in an InnoDB table caused the table auto-increment value to be updated to 2147483647. (Bug#47720: http://bugs.mysql.com/bug.php?id=47720) * If a session held a global read lock acquired with FLUSH TABLES WITH READ LOCK, a lock for one table acquired with LOCK TABLES, and issued an INSERT DELAYED statement for another table, deadlock could occur. (Bug#47682: http://bugs.mysql.com/bug.php?id=47682) * The mysql client status command displayed an incorrect value for the server character set. (Bug#47671: http://bugs.mysql.com/bug.php?id=47671) * After a binary upgrade to MySQL 5.1 from a MySQL 5.0 installation that contains ARCHIVE tables, accessing those tables caused the server to crash, even if you had run mysql_upgrade or CHECK TABLE ... FOR UPGRADE. To work around this problem, use mysqldump to dump all ARCHIVE tables before upgrading, and reload them into MySQL 5.1 after upgrading. The same problem occurs for binary downgrades from MySQL 5.1 to 5.0. (Bug#47012: http://bugs.mysql.com/bug.php?id=47012) * The IGNORE clause on a DELETE statement masked an SQL statement error that occurred during trigger processing. (Bug#46425: http://bugs.mysql.com/bug.php?id=46425) * The return value was not checked for some my_hash_insert() calls. (Bug#45613: http://bugs.mysql.com/bug.php?id=45613) * Use of InnoDB monitoring (SHOW ENGINE INNODB STATUS or one of the InnoDB Monitor tables) could cause a server crash due to invalid access to a shared variable in a concurrent environment. This is a further fix for a regression introduced in MySQL 5.1.38 to the original fix in MySQL 5.1.31. (Bug#38883: http://bugs.mysql.com/bug.php?id=38883) * If a comparison involved a constant value that required type conversion, the converted value might not be cached, resulting in repeated conversion and poorer performance. (Bug#34384: http://bugs.mysql.com/bug.php?id=34384) * Using the SHOW ENGINE INNODB STATUS statement when using partitions in InnoDB tables caused Invalid (old?) table or database name errors to be logged. (Bug#32430: http://bugs.mysql.com/bug.php?id=32430) * The Mac OS X 10.6 MySQL preference panel now contains x86 64-bit binaries. (Bug#46935: http://bugs.mysql.com/bug.php?id=46935) Thanks,
MySQL RE Team
Kent Boortz, Hery Ramilison, Karen Langford, MySQL Release Engineers
Database Group, Sun Microsystem Inc.
MySQL Connector/Net 6.2.2 GA has been released (no replies)
MySQL Connector/Net 6.2.2, a new version of the all-managed .NET driver for MySQL has been released.This is our latest GA release and is suitable for use in all scenarios against servers ranging from version 4.1 to 5.4!
It is now available in source and binary form from [http://dev.mysql.com/downloads/connector/net/6.2.html] and mirror sites
(note that not all mirror sites may be up to date at this point of time - if you can't find this version on some mirror, please try again later or choose another download site.)
The new features or changes in this release are:
- Connection pool cleanup timer. We now utilize a timer that cleans idle connections that are no longer connected every 3 minutes
- We are now using stream and TCP-based timeouts to handle command timeouts. This is more inline with what SqlClient does and should be more reliable than our old timer based approach
- Completely refactored MySqlConnectionStringBuilder
- We now support the TableDirect query type
- Completely refactored our logging system. Our trace data is now published using TraceSource and has a specific format so to allow third party listeners to be created.
- Lots of bug fixes
Please let us know what else we broke and how we can make it better!
It is now available in source and binary form from [http://dev.mysql.com/downloads/connector/net/6.2.html] and mirror sites
(note that not all mirror sites may be up to date at this point of time - if you can't find this version on some mirror, please try again later or choose another download site.)
The new features or changes in this release are:
- Connection pool cleanup timer. We now utilize a timer that cleans idle connections that are no longer connected every 3 minutes
- We are now using stream and TCP-based timeouts to handle command timeouts. This is more inline with what SqlClient does and should be more reliable than our old timer based approach
- Completely refactored MySqlConnectionStringBuilder
- We now support the TableDirect query type
- Completely refactored our logging system. Our trace data is now published using TraceSource and has a specific format so to allow third party listeners to be created.
- Lots of bug fixes
Please let us know what else we broke and how we can make it better!
MySQL Community Server 5.0.89 has been released (no replies)
Dear MySQL users,
MySQL Community Server 5.0.89, a new version of the popular Open Source
Database Management System, has been released. This Community release shares the
version number with its MySQL Enterprise Server counterpart. Please note this is
the last release of 5.0 before it exits active maintenance.
The release 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 in time, so if you can't find this version on some mirror,
please try again later or choose another download site.
We welcome and appreciate your feedback, bug reports, bug fixes,
patches etc.:
http://forge.mysql.com/wiki/Contributing
This section documents all changes and bugfixes that have been
applied since the last MySQL Community Server release (5.0.88).
http://dev.mysql.com/doc/refman/5.0/en/news-5-0-89.html
If you would like to receive more fine-grained and personalized
update alerts about fixes that are relevant to the version and
features you use, please consider subscribing to MySQL Enterprise
(a commercial MySQL offering). For more details please see
http://www.mysql.com/products/enterprise/advisors.html.
Enjoy!
------------------------------------------------------------------------------
C.1.1. Changes in MySQL 5.0.89
Bugs fixed:
* Privileges for stored routines were ignored for mixed-case
routine names.
(Bug#48872: http://bugs.mysql.com/bug.php?id=48872)
See also Bug#41049: http://bugs.mysql.com/bug.php?id=41049.
* Building MySQL on Fedora Core 12 64-bit would fail due to errors in
comp_err. (Bug#48864: http://bugs.mysql.com/bug.php?id=48864)
* DISTINCT was ignored for queries with GROUP BY WITH ROLLUP and
only const tables.
(Bug#48475: http://bugs.mysql.com/bug.php?id=48475)
* Loose index scan was inappropriately chosen for some WHERE
conditions.
(Bug#48472: http://bugs.mysql.com/bug.php?id=48472)
* A bad typecast could cause query execution to allocate large
amounts of memory.
(Bug#48458: http://bugs.mysql.com/bug.php?id=48458)
* When running mysql_secure_installation, the command would fail
if the root password contained multiple spaces, \, # or quote
characters.
(Bug#48031: http://bugs.mysql.com/bug.php?id=48031)
* Output from mysql --html did not encode the <, >, or &
characters.
(Bug#27884: http://bugs.mysql.com/bug.php?id=27884)
Thanks,
MySQL RE Team
Hery Ramilison, Karen Langford, MySQL Release Engineers
Database Group, Sun Microsystem Inc.
EOL of MySQL Query Browser, MySQL Administrator, MySQL Migration Toolkit (no replies)
EOL (End-of-life) of MySQL Query Browser, MySQL Administrator, MySQL Migration Toolkit
by Michael G. Zinner
http://wb.mysql.com/?p=470
by Michael G. Zinner
http://wb.mysql.com/?p=470
MySQL Workbench 5.2.11 (BETA 3): Upgrade from MySQL Administrator, MySQL Query Browser (no replies)
MySQL Workbench 5.2.11 (BETA 3): Upgrade from MySQL Administrator, MySQL Query Browser
http://wb.mysql.com/?p=463
WB 5.2 includes:
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
WB Downloads: http://dev.mysql.com/downloads/workbench/
WB Forums: http://forums.mysql.com/index.php?151
WB Blogs: http://wb.mysql.com/
http://wb.mysql.com/?p=463
WB 5.2 includes:
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
WB Downloads: http://dev.mysql.com/downloads/workbench/
WB Forums: http://forums.mysql.com/index.php?151
WB Blogs: http://wb.mysql.com/
MySQL 5.5.0 has been released (no replies)
Dear MySQL users,
MySQL Server 5.5.0-m2, a new version of the popular Open Source
Database Management System, has been released.
The "-m2" suffix tells this is the second milestone according to our
"milestone" release model, also called "Betony".
You can read more about the release model and the planned milestones at
http://forge.mysql.com/wiki/Development_Cycle
The new features in this release are of beta quality. As with any
other pre-production release, caution should be taken when installing on
production level systems or systems with critical data.
For production level systems using 5.1, we would like to direct your
attention to the product description of MySQL Enterprise at:
http://mysql.com/products/enterprise/
MySQL 5.5 is based on MySQL 5.4, which won't get any further updates.
So MySQL 5.5 includes several high-impact changes to address scalability
and performance issues in MySQL Server. These changes exploit advances
in hardware and CPU design and enable better utilization of existing
hardware.
For an overview of what's new in MySQL 5.5, please see the
section "What Is New in MySQL 5.5" below, or view it online at
http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html
For information on installing MySQL 5.5.0 on new servers,
please see the MySQL installation documentation at
http://dev.mysql.com/doc/refman/5.5/en/installing.html
For upgrading from previous MySQL releases, please see the
important upgrade considerations at
http://dev.mysql.com/doc/mysql-5.5-features/en/index.html
Some other pointers you might like to follow are
http://dev.mysql.com/doc/refman/5.5/en/configuration-changes-5-5.html
http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html
MySQL Server is available in source and binary form for a
number of platforms from our download pages at
http://dev.mysql.com/downloads/
Not all mirror sites may be up to date at this point in
time, so if you can't find this version on some mirror,
please try again later or choose another download site.
We welcome and appreciate your feedback, bug reports, bug
fixes, patches, etc.:
http://forge.mysql.com/wiki/Contributing
Following the "What Is New" section, this mail lists the important
changes in the MySQL source code of MySQL 5.5.0.
The complete list of all "Bugs Fixed" is not included, because it would
exceed the length restrictions imposed on these mailing lists.
It may be viewed online at
http://dev.mysql.com/doc/refman/5.5/en/news-5-5-0.html
Enjoy!
On behalf of the MySQL Build Team at Sun Microsystems:
Jörg Brühe,
Senior Production Engineer
-----
What Is New in MySQL 5.5
The following features have been added to MySQL 5.5:
* Support for an interface for semisynchronous replication:
A commit performed on the master side blocks before returning
to the session that performed the transaction until at least
one slave acknowledges that it has received and logged the events
for the transaction.
Semisynchronous replication is implemented through an optional
plugin component. See Section 16.2.8, "Semisynchronous Replication"
* Support for the SQL standard SIGNAL and RESIGNAL statements.
See Section 12.8.8, "SIGNAL and RESIGNAL".
* Enhancements to XML functionality, including a new LOAD XML
statement.
* Two new types of user-defined partitioning:
RANGE COLUMNS partitioning is an extension to RANGE partitioning;
LIST COLUMNS partitioning is an extension to LIST partitioning.
Each of these extensions provides two enhancements to MySQL
partitioning capabilities:
1. It is possible to define partitioning ranges or lists based on
DATE, DATETIME, or string values (such as CHAR or VARCHAR).
You can also define ranges or lists based on multiple column
values when partitioning tables by RANGE COLUMNS or LIST COLUMNS,
respectively. Such a range or list may refer to up to 16 columns.
2. For tables defined using these partitioning types, partition
pruning can now optimize queries with WHERE conditions that use
multiple comparisons between (different) column values and
constants, such as
a = 10 AND b > 5 or a < "2005-11-25" AND b = 10 AND c = 50.
For more information, see Section 17.2.1, "RANGE Partitioning",
and Section 17.2.2, "LIST Partitioning".
* It is now possible to delete all rows from one or more partitions
of a partitioned table using the ALTER TABLE ... TRUNCATE
PARTITION statement. Executing the statement deletes rows without
affecting the structure of the table. The partitions named in the
TRUNCATE PARTITION clause do not have to be contiguous.
* Key caches are now supported for indexes on partitioned MyISAM
tables, using the CACHE INDEX and LOAD INDEX INTO CACHE statements.
In addition, a key cache can be defined for and loaded with indexes
from an entire partitioned table, or for one or more partitions.
* The TO_SECONDS() function is added. You may use this function in
partitioning expressions, and partition pruning is supported for
table defined using such expressions.
The following constructs are deprecated and will be removed in a future
MySQL release. Where alternatives are shown, applications should be
updated to use them.
* The table_type system variable (use storage_engine).
The TYPE table option to specify the storage engine for
CREATE TABLE or ALTER TABLE (use ENGINE).
The SHOW TABLE TYPES SQL statement (use SHOW ENGINES).
* The log_bin_trust_routine_creators variable
(use log_bin_trust_function_creators).
* TIMESTAMP(N): The ability to specify a display width of N
(use without N).
* The SHOW INNODB STATUS and SHOW MUTEX STATUS SQL statements
(use SHOW ENGINE INNODB STATUS for both of these).
* The LOAD TABLE ... FROM MASTER and LOAD DATA FROM MASTER SQL
statements.
* The SHOW PLUGIN SQL statement (use SHOW PLUGINS).
* The BACKUP TABLE and the RESTORE TABLE SQL statements.
* The --master-xxx server options to set replication parameters
(use the CHANGE MASTER TO statement instead):
--master-host, --master-user, --master-password, --master-port,
--master-connect-retry, --master-ssl, --master-ssl-ca,
--master-ssl-capath, --master-ssl-cert, --master-ssl-cipher,
--master-ssl-key.
-----
Changes in MySQL 5.5.0
InnoDB Plugin Notes:
* The InnoDB Plugin is included in MySQL 5.5 releases as the
built-in version of InnoDB. The version of the InnoDB Plugin
in this release is 1.0.5 and is considered of Release
Candidate (RC) quality.
The InnoDB Plugin offers new features, improved performance
and scalability, enhanced reliability and new capabilities for
flexibility and ease of use. Among the features of the InnoDB
Plugin are "Fast index creation," table and index compression,
file format management, new INFORMATION_SCHEMA tables,
capacity tuning, multiple background I/O threads, and group
commit.
For information about these features, see the InnoDB Plugin
Manual at
http://www.innodb.com/products/innodb_plugin/plugin-documentation
For general information about using InnoDB in MySQL, see
Section 13.6, "The InnoDB Storage Engine."
Functionality added or changed:
* Incompatible Change: A change has been made to the way that
the server handles prepared statements. This affects prepared
statements processed at the SQL level (using the PREPARE
statement) and those processed using the binary client-server
protocol (using the mysql_stmt_prepare() C API function).
Previously, changes to metadata of tables or views referred to
in a prepared statement could cause a server crash when the
statement was next executed, or perhaps an error at execute
time with a crash occurring later. For example, this could
happen after dropping a table and recreating it with a
different definition.
Now metadata changes to tables or views referred to by
prepared statements are detected and cause automatic
repreparation of the statement when it is next executed.
Metadata changes occur for DDL statements such as those that
create, drop, alter, rename, or truncate tables, or that
analyze, optimize, or repair tables. Repreparation also occurs
after referenced tables or views are flushed from the table
definition cache, either implicitly to make room for new
entries in the cache, or explicitly due to FLUSH TABLES.
Repreparation is automatic, but to the extent that it occurs,
performance of prepared statements is diminished.
Table content changes (for example, with INSERT or UPDATE) do
not cause repreparation, nor do SELECT statements.
An incompatibility with previous versions of MySQL is that a
prepared statement may now return a different set of columns
or different column types from one execution to the next. For
example, if the prepared statement is SELECT * FROM t1,
altering t1 to contain a different number of columns causes
the next execution to return a number of columns different
from the previous execution.
Older versions of the client library cannot handle this change
in behavior. For applications that use prepared statements
with the new server, an upgrade to the new client library is
strongly recommended.
Along with this change to statement repreparation, the default
value of the table_definition_cache system variable has been
increased from 128 to 256. The purpose of this increase is to
lessen the chance that prepared statements will need
repreparation due to referred-to tables/views having been
flushed from the cache to make room for new entries.
A new status variable, Com_stmt_reprepare, has been introduced
to track the number of repreparations.
(Bug#27420: http://bugs.mysql.com/bug.php?id=27420,
Bug#27430: http://bugs.mysql.com/bug.php?id=27430,
Bug#27690: http://bugs.mysql.com/bug.php?id=27690)
* Incompatible Change: Several changes have been made regarding
the language and character set of error messages:
+ The --language option for specifying the directory for
the error message file is now deprecated. The new
--lc-messages-dir and --lc-messages options should be
used instead, and --language is handled as an alias for
--lc-messages-dir.
+ The language system variable has been removed and
replaced with the new lc_messages_dir and lc_messages
system variables. lc_messages_dir has only a global value
and is read only. lc_messages has global and session
values and can be modified at runtime, so the error
message language can be changed while the server is
running, and individual clients each can have a different
error message language by changing their session
lc_messages value to a different locale name.
+ Error messages previously were constructed in a mix of
character sets. This issue is resolved by constructing
error messages internally within the server using UTF-8
and returning them to the client in the character set
specified by the character_set_results system variable.
The content of error messages therefore may in some cases
differ from the messages returned previously.
For more information, see Section 9.3, "Setting the Error
Message Language," and Section 9.1.6, "Character Set for Error
Messages."
See also Bug#46218: http://bugs.mysql.com/bug.php?id=46218,
Bug#46236: http://bugs.mysql.com/bug.php?id=46236.
* Partitioning: New PARTITION BY RANGE COLUMNS(column_list) and
PARTITION BY LIST COLUMNS(column_list) options are added for
the CREATE TABLE and ALTER TABLE statements.
A major benefit of RANGE COLUMNS and LIST COLUMNS partitioning
is that they make it possible to define ranges or lists based
on column values that use string, date, or datetime values.
These new extensions also broaden the scope of partition
pruning to provide better coverage for queries using
comparisons on multiple columns in the WHERE clause, some
examples being WHERE a = 1 AND b < 10 and WHERE a = 1 AND b =
10 AND c < 10.
For more information, see Section 17.2.1, "RANGE
Partitioning," Section 17.2.2, "LIST Partitioning," and
Section 17.4, "Partition Pruning."
* Partitioning: A new ALTER TABLE option, TRUNCATE PARTITION,
makes it possible to delete rows from one or more selected
partitions only. Unlike the case with ALTER TABLE ... DROP
PARTITION, ALTER TABLE ... TRUNCATE PARTITION merely deletes
all rows from the specified partition or partitions, and does
not change the definition of the table.
* Partitioning: It is now possible to assign indexes on
partitioned MyISAM tables to key caches using the CACHE INDEX
and to preload such indexes into the cache using LOAD INDEX
INTO CACHE statements. Cache assignment and preloading of
indexes for such tables can be performed for one, several, or
all partitions of the table.
This functionality is supported for only those partitioned
tables that employ the MyISAM storage engine.
* Cluster Replication: Replication: A replication heartbeat
mechanism has been added to facilitate monitoring. This
provides an alternative to checking log files, making it
possible to detect in real time when a slave has failed.
Configuration of heartbeats is done via a new
MASTER_HEARTBEAT_PERIOD = interval clause for the CHANGE
MASTER TO statement (see Section 12.6.2.1, "CHANGE MASTER TO
Syntax"); monitoring can be done by checking the values of the
status variables Slave_heartbeat_period and
Slave_received_heartbeats (see Section 5.1.7, "Server Status
Variables").
The addition of replication heartbeats addresses a number of
issues:
+ Relay logs were rotated every slave_net_timeout seconds
even if no statements were being replicated.
+ SHOW SLAVE STATUS displayed an incorrect value for
Seconds_Behind_Master following a FLUSH LOGS statement.
+ Replication master-slave connections used
slave_net_timeout for connection timeouts.
(Bug#20435: http://bugs.mysql.com/bug.php?id=20435,
Bug#29309: http://bugs.mysql.com/bug.php?id=29309,
Bug#30932: http://bugs.mysql.com/bug.php?id=30932)
* Replication: The global server variable sync_relay_log is
introduced for use on replication slaves. Setting this
variable to a nonzero integer value N causes the slave to
synchronize the relay log to disk after every N events. Setting
its value to 0 allows the operating system to handle
synchronization of the file. The action of this variable, when
enabled, is analogous to how the sync_binlog variable works
with regard to binary logs on a replication master.
The global server variables sync_master_info and
sync_relay_log_info are introduced for use on replication
slaves to control synchronization of, respectively, the
master.info and relay.info files.
In each case, setting the variable to a nonzero integer value
N causes the slave to synchronize the corresponding file to
disk after every N events. Setting its value to 0 allows the
operating system to handle synchronization of the file instead.
The actions of these variables, when enabled, are analogous to
how the sync_binlog variable works with regard to binary logs
on a replication master.
An additional system variable relay_log_recovery is also now
available. When enabled, this variable causes a replication
slave to discard relay log files obtained from the replication
master following a crash.
These variables can also be set in my.cnf, or by using the
--sync-relay-log, --sync-master-info, --sync-relay-log-info,
and --relay-log-recovery server options.
For more information, see Section 16.1.3.3, "Replication Slave
Options and Variables."
(Bug#31665: http://bugs.mysql.com/bug.php?id=31665,
Bug#35542: http://bugs.mysql.com/bug.php?id=35542,
Bug#40337: http://bugs.mysql.com/bug.php?id=40337)
* Replication: Because SHOW BINLOG EVENTS cannot be used to read
events from relay log files, a new SHOW RELAYLOG EVENTS
statement has been added for this purpose.
(Bug#28777: http://bugs.mysql.com/bug.php?id=28777)
* Replication: In circular replication, it was sometimes
possible for an event to propagate such that it would be
reapplied on all servers. This could occur when the
originating server was removed from the replication circle and
so could no longer act as the terminator of its own events, as
normally happens in circular replication.
In order to prevent this from occurring, a new
IGNORE_SERVER_IDS option is introduced for the CHANGE MASTER
TO statement. This option takes a list of replication server
IDs; events having a server ID which appears in this list are
ignored and not applied. For more information, see Section
12.6.2.1, "CHANGE MASTER TO Syntax."
In conjunction with the introduction of IGNORE_SERVER_IDS,
SHOW SLAVE STATUS has a new field Replicate_Ignore_Server_Ids
that displays information about ignored servers.
(Bug#25998: http://bugs.mysql.com/bug.php?id=25998)
See also Bug#27808: http://bugs.mysql.com/bug.php?id=27808.
* With semisynchronous replication, for each transaction, the
master waits until timeout for acknowledgement of receipt from
some semisynchronous slave. If no response occurs during this
period, the master reverts to normal replication. A new system
variable, rpl_semi_sync_master_wait_no_slave, controls whether
the master waits for the timeout to expire before reverting to
normal replication even if the slave count drops to zero
during the timeout period.
If the value is ON (the default), it is allowable for the
slave count to drop to zero during the timeout period (for
example, if slaves disconnect). The master still waits for the
timeout, so as long as some slave reconnects and acknowledges
the transaction within the timeout interval, semisynchronous
replication continues.
If the value is OFF, the master reverts to normal replication
if the slave count drops to zero during the timeout period.
(Bug#47298: http://bugs.mysql.com/bug.php?id=47298)
* The InnoDB buffer pool is divided into two sublists: A new
sublist containing blocks that are heavily used by queries,
and an old sublist containing less-used blocks and from which
candidates for eviction are taken. In the default operation of
the buffer pool, a block when read in is loaded at the
midpoint and then moved immediately to the head of the new
sublist as soon as an access occurs. In the case of a table
scan (such as performed for a mysqldump operation), each block
read by the scan ends up moving to the head of the new sublist
because multiple rows are accessed from each block. This
occurs even for a one-time scan, where the blocks are not
otherwise used by other queries. Blocks may also be loaded by
the read-ahead background thread and then moved to the head of
the new sublist by a single access. These effects can be
disadvantageous because they push blocks that are in heavy use
by other queries out of the new sublist to the old sublist
where they become subject to eviction.
InnoDB Plugin now provides two system variables that enable
LRU algorithm tuning:
+ innodb_old_blocks_pct
Specifies the approximate percentage of the buffer pool
used for the old block sublist. The range of values is 5
to 95. The default value is 37 (that is, 3/8 of the
pool).
+ innodb_old_blocks_time
Specifies how long in milliseconds (ms) a block inserted
into the old sublist must stay there after its first
access before it can be moved to the new sublist. The
default value is 0: A block inserted into the old sublist
moves immediately to the new sublist the first time it is
accessed, no matter how soon after insertion the access
occurs. If the value is greater than 0, blocks remain in
the old sublist until an access occurs at least that many
ms after the first access. For example, a value of 1000
causes blocks to stay in the old sublist for 1 second
after the first access before they become eligible to
move to the new sublist. See Section 7.4.6, "The InnoDB
Buffer Pool"
For additional information, see Section 7.4.6, "The InnoDB
Buffer Pool."
(Bug#45015: http://bugs.mysql.com/bug.php?id=45015)
* Two new status variables have been added to SHOW STATUS
output. Innodb_buffer_pool_read_ahead and
Innodb_buffer_pool_read_ahead_evicted indicate the number of
pages read in by the InnoDB read-ahead background thread, and
the number of such pages evicted without ever being accessed,
respectively. Also, the status variables
Innodb_buffer_pool_read_ahead_rnd
(http://dev.mysql.com/doc/refman/5.4/en/server-status-variables.html#statvar_Innodb_buffer_pool_read_ahead_rnd)
and Innodb_buffer_pool_read_ahead_seq
(http://dev.mysql.com/doc/refman/5.4/en/server-status-variables.html#statvar_Innodb_buffer_pool_read_ahead_seq)
have been removed.
(Bug#42885: http://bugs.mysql.com/bug.php?id=42885)
* Columns that provide a catalog value in INFORMATION_SCHEMA
tables (for example, TABLES.TABLE_CATALOG) now have a value of
def rather than NULL.
(Bug#35427: http://bugs.mysql.com/bug.php?id=35427)
* The deprecated --default-table-type
(http://dev.mysql.com/doc/refman/5.4/en/server-options.html#op
tion_mysqld_default-table-type) server option has been
removed. (Bug#34818: http://bugs.mysql.com/bug.php?id=34818)
* Previously, mysqldump would not dump the INFORMATION_SCHEMA
database and ignored it if it was named on the command line.
Now, mysqldump will dump INFORMATION_SCHEMA if it is named on
the command line. Currently, this requires that the
--skip-lock-tables (or --skip-opt) option be given.
(Bug#33762: http://bugs.mysql.com/bug.php?id=33762)
* Several undocumented C API functions were removed:
mysql_manager_close(), mysql_manager_command(), mysql_manager_connect(), mysql_manager_fetch_line(), mysql_manager_init(), mysql_disable_reads_from_master(), mysql_disable_rpl_parse(), mysql_enable_reads_from_master(), mysql_enable_rpl_parse(), mysql_master_query(), mysql_master_send_query(), mysql_reads_from_master_enabled(), mysql_rpl_parse_enabled(), mysql_rpl_probe(), mysql_rpl_query_type(), mysql_set_master(), mysql_slave_query(), and mysql_slave_send_query(). (Bug#31952: http://bugs.mysql.com/bug.php?id=31952,
Bug#31954: http://bugs.mysql.com/bug.php?id=31954)
* Sinhala collations utf8_sinhala_ci and ucs2_sinhala_ci were
added for the utf8 and ucs2 character sets.
(Bug#26474: http://bugs.mysql.com/bug.php?id=26474)
* If the value of the --log-warnings option is greater than 1,
the server now writes access-denied errors for new connection
attempts to the error log (for example, if a client user name
or password is incorrect).
(Bug#25822: http://bugs.mysql.com/bug.php?id=25822)
* On Windows, use of POSIX I/O interfaces in mysys was replaced
with Win32 API calls (CreateFile(), WriteFile(), and so forth)
and the default maximum number of open files has been
increased to 16384. The maximum can be increased further by
using the --open-files-limit=N option at server startup.
(Bug#24509: http://bugs.mysql.com/bug.php?id=24509)
* The TRADITIONAL SQL mode now includes NO_ENGINE_SUBSTITUTION.
(Bug#21099: http://bugs.mysql.com/bug.php?id=21099)
* MySQL now implements the SQL standard SIGNAL and RESIGNAL
statements. See Section 12.8.8, "SIGNAL and RESIGNAL."
(Bug#11661: http://bugs.mysql.com/bug.php?id=11661)
* The undocumented, deprecated, and not useful SHOW COLUMN TYPES
statement has been removed.
(Bug#5299: http://bugs.mysql.com/bug.php?id=5299)
* Dynamic plugins now need to be linked with the
libmysqlservices.a library. For an example showing what
Makefile.am should look like, see Section 21.2.3.3, "Creating
a Plugin Library."
* The FORMAT() function now supports an optional third parameter
that enables a locale to be specified to be used for the
result number's decimal point, thousands separator, and
grouping between separators. Allowable locale values are the
same as the legal values for the lc_time_names system variable
(see Section 9.8, "MySQL Server Locale Support"). For example,
the result from FORMAT(1234567.89,2,'de_DE') is 1.234.567,89.
If no locale is specified, the default is 'en_US'.
* The Greek locale 'el_GR' is now an allowable value for the
lc_time_names system variable.
* Previously, in the absence of other information, the MySQL
client programs mysql, mysqladmin, mysqlcheck, mysqlimport,
and mysqlshow use the compiled-in default character set,
usually latin1.
Now these clients can autodetect which character set to use
based on the operating system setting, such as the value of
the LANG or LC_ALL locale environment language on Unix system
or the code page setting on Windows systems. For systems on
which the locale is available from the OS, the client uses it
to set the default character set rather than using the
compiled-in default. Thus, users can configure the locale in
their environment for use by MySQL clients. For example,
setting LANG to ru_RU.KOI8-R causes the koi8r character set to
be used. The OS character set is mapped to the closest MySQL
character set if there is no exact match. If the client does
not support the matching character set, it uses the
compiled-in default. (For example, ucs2 is not supported as a
connection character set.)
Third-party applications that wish to use character set
autodetection based on the OS setting can use the following
mysql_options() call before connecting to the server:
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, MYSQL_AUTODETECT_CHARSET_NAME); See Section 9.1.4, "Connection Character Sets and Collations."
* mysql_upgrade now has an --upgrade-system-tables option that
causes only the system tables to be upgraded. With this
option, data upgrades are not performed.
* MySQL now supports an interface for semisynchronous
replication: A commit performed on the master side blocks
before returning to the session that performed the transaction
until at least one slave acknowledges that it has received and
logged the events for the transaction. Semisynchronous
replication is implemented through an optional plugin
component. See Section 16.2.8, "Semisynchronous Replication."
* The CREATE TABLESPACE privilege has been introduced. This
privilege exists at the global (superuser) level and enables
you to create, alter, and drop tablespaces and logfile groups.
* The server now supports a Debug Sync facility for thread
synchronization during testing and debugging. To compile in
this facility, configure MySQL with the --enable-debug-sync
option. The debug_sync system variable provides the user
interface Debug Sync. mysqld and mysql-test-run.pl support a
--debug-sync-timeout option to enable the facility and set the
default synchronization point timeout.
* Added the TO_SECONDS() function, which converts a date or
datetime value to a number of seconds since the year 0.
* Parser performance was improved for identifier scanning and
conversion of ASCII string literals.
* The LOAD XML INFILE statement was added. This statement makes
it possible to read data directly from XML files into database
tables. For more information, see Section 12.2.7, "LOAD XML
Syntax."
--
Joerg Bruehe, MySQL Build Team, Joerg.Bruehe@Sun.COM
MySQL Server 5.5.0-m2, a new version of the popular Open Source
Database Management System, has been released.
The "-m2" suffix tells this is the second milestone according to our
"milestone" release model, also called "Betony".
You can read more about the release model and the planned milestones at
http://forge.mysql.com/wiki/Development_Cycle
The new features in this release are of beta quality. As with any
other pre-production release, caution should be taken when installing on
production level systems or systems with critical data.
For production level systems using 5.1, we would like to direct your
attention to the product description of MySQL Enterprise at:
http://mysql.com/products/enterprise/
MySQL 5.5 is based on MySQL 5.4, which won't get any further updates.
So MySQL 5.5 includes several high-impact changes to address scalability
and performance issues in MySQL Server. These changes exploit advances
in hardware and CPU design and enable better utilization of existing
hardware.
For an overview of what's new in MySQL 5.5, please see the
section "What Is New in MySQL 5.5" below, or view it online at
http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html
For information on installing MySQL 5.5.0 on new servers,
please see the MySQL installation documentation at
http://dev.mysql.com/doc/refman/5.5/en/installing.html
For upgrading from previous MySQL releases, please see the
important upgrade considerations at
http://dev.mysql.com/doc/mysql-5.5-features/en/index.html
Some other pointers you might like to follow are
http://dev.mysql.com/doc/refman/5.5/en/configuration-changes-5-5.html
http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html
MySQL Server is available in source and binary form for a
number of platforms from our download pages at
http://dev.mysql.com/downloads/
Not all mirror sites may be up to date at this point in
time, so if you can't find this version on some mirror,
please try again later or choose another download site.
We welcome and appreciate your feedback, bug reports, bug
fixes, patches, etc.:
http://forge.mysql.com/wiki/Contributing
Following the "What Is New" section, this mail lists the important
changes in the MySQL source code of MySQL 5.5.0.
The complete list of all "Bugs Fixed" is not included, because it would
exceed the length restrictions imposed on these mailing lists.
It may be viewed online at
http://dev.mysql.com/doc/refman/5.5/en/news-5-5-0.html
Enjoy!
On behalf of the MySQL Build Team at Sun Microsystems:
Jörg Brühe,
Senior Production Engineer
-----
What Is New in MySQL 5.5
The following features have been added to MySQL 5.5:
* Support for an interface for semisynchronous replication:
A commit performed on the master side blocks before returning
to the session that performed the transaction until at least
one slave acknowledges that it has received and logged the events
for the transaction.
Semisynchronous replication is implemented through an optional
plugin component. See Section 16.2.8, "Semisynchronous Replication"
* Support for the SQL standard SIGNAL and RESIGNAL statements.
See Section 12.8.8, "SIGNAL and RESIGNAL".
* Enhancements to XML functionality, including a new LOAD XML
statement.
* Two new types of user-defined partitioning:
RANGE COLUMNS partitioning is an extension to RANGE partitioning;
LIST COLUMNS partitioning is an extension to LIST partitioning.
Each of these extensions provides two enhancements to MySQL
partitioning capabilities:
1. It is possible to define partitioning ranges or lists based on
DATE, DATETIME, or string values (such as CHAR or VARCHAR).
You can also define ranges or lists based on multiple column
values when partitioning tables by RANGE COLUMNS or LIST COLUMNS,
respectively. Such a range or list may refer to up to 16 columns.
2. For tables defined using these partitioning types, partition
pruning can now optimize queries with WHERE conditions that use
multiple comparisons between (different) column values and
constants, such as
a = 10 AND b > 5 or a < "2005-11-25" AND b = 10 AND c = 50.
For more information, see Section 17.2.1, "RANGE Partitioning",
and Section 17.2.2, "LIST Partitioning".
* It is now possible to delete all rows from one or more partitions
of a partitioned table using the ALTER TABLE ... TRUNCATE
PARTITION statement. Executing the statement deletes rows without
affecting the structure of the table. The partitions named in the
TRUNCATE PARTITION clause do not have to be contiguous.
* Key caches are now supported for indexes on partitioned MyISAM
tables, using the CACHE INDEX and LOAD INDEX INTO CACHE statements.
In addition, a key cache can be defined for and loaded with indexes
from an entire partitioned table, or for one or more partitions.
* The TO_SECONDS() function is added. You may use this function in
partitioning expressions, and partition pruning is supported for
table defined using such expressions.
The following constructs are deprecated and will be removed in a future
MySQL release. Where alternatives are shown, applications should be
updated to use them.
* The table_type system variable (use storage_engine).
The TYPE table option to specify the storage engine for
CREATE TABLE or ALTER TABLE (use ENGINE).
The SHOW TABLE TYPES SQL statement (use SHOW ENGINES).
* The log_bin_trust_routine_creators variable
(use log_bin_trust_function_creators).
* TIMESTAMP(N): The ability to specify a display width of N
(use without N).
* The SHOW INNODB STATUS and SHOW MUTEX STATUS SQL statements
(use SHOW ENGINE INNODB STATUS for both of these).
* The LOAD TABLE ... FROM MASTER and LOAD DATA FROM MASTER SQL
statements.
* The SHOW PLUGIN SQL statement (use SHOW PLUGINS).
* The BACKUP TABLE and the RESTORE TABLE SQL statements.
* The --master-xxx server options to set replication parameters
(use the CHANGE MASTER TO statement instead):
--master-host, --master-user, --master-password, --master-port,
--master-connect-retry, --master-ssl, --master-ssl-ca,
--master-ssl-capath, --master-ssl-cert, --master-ssl-cipher,
--master-ssl-key.
-----
Changes in MySQL 5.5.0
InnoDB Plugin Notes:
* The InnoDB Plugin is included in MySQL 5.5 releases as the
built-in version of InnoDB. The version of the InnoDB Plugin
in this release is 1.0.5 and is considered of Release
Candidate (RC) quality.
The InnoDB Plugin offers new features, improved performance
and scalability, enhanced reliability and new capabilities for
flexibility and ease of use. Among the features of the InnoDB
Plugin are "Fast index creation," table and index compression,
file format management, new INFORMATION_SCHEMA tables,
capacity tuning, multiple background I/O threads, and group
commit.
For information about these features, see the InnoDB Plugin
Manual at
http://www.innodb.com/products/innodb_plugin/plugin-documentation
For general information about using InnoDB in MySQL, see
Section 13.6, "The InnoDB Storage Engine."
Functionality added or changed:
* Incompatible Change: A change has been made to the way that
the server handles prepared statements. This affects prepared
statements processed at the SQL level (using the PREPARE
statement) and those processed using the binary client-server
protocol (using the mysql_stmt_prepare() C API function).
Previously, changes to metadata of tables or views referred to
in a prepared statement could cause a server crash when the
statement was next executed, or perhaps an error at execute
time with a crash occurring later. For example, this could
happen after dropping a table and recreating it with a
different definition.
Now metadata changes to tables or views referred to by
prepared statements are detected and cause automatic
repreparation of the statement when it is next executed.
Metadata changes occur for DDL statements such as those that
create, drop, alter, rename, or truncate tables, or that
analyze, optimize, or repair tables. Repreparation also occurs
after referenced tables or views are flushed from the table
definition cache, either implicitly to make room for new
entries in the cache, or explicitly due to FLUSH TABLES.
Repreparation is automatic, but to the extent that it occurs,
performance of prepared statements is diminished.
Table content changes (for example, with INSERT or UPDATE) do
not cause repreparation, nor do SELECT statements.
An incompatibility with previous versions of MySQL is that a
prepared statement may now return a different set of columns
or different column types from one execution to the next. For
example, if the prepared statement is SELECT * FROM t1,
altering t1 to contain a different number of columns causes
the next execution to return a number of columns different
from the previous execution.
Older versions of the client library cannot handle this change
in behavior. For applications that use prepared statements
with the new server, an upgrade to the new client library is
strongly recommended.
Along with this change to statement repreparation, the default
value of the table_definition_cache system variable has been
increased from 128 to 256. The purpose of this increase is to
lessen the chance that prepared statements will need
repreparation due to referred-to tables/views having been
flushed from the cache to make room for new entries.
A new status variable, Com_stmt_reprepare, has been introduced
to track the number of repreparations.
(Bug#27420: http://bugs.mysql.com/bug.php?id=27420,
Bug#27430: http://bugs.mysql.com/bug.php?id=27430,
Bug#27690: http://bugs.mysql.com/bug.php?id=27690)
* Incompatible Change: Several changes have been made regarding
the language and character set of error messages:
+ The --language option for specifying the directory for
the error message file is now deprecated. The new
--lc-messages-dir and --lc-messages options should be
used instead, and --language is handled as an alias for
--lc-messages-dir.
+ The language system variable has been removed and
replaced with the new lc_messages_dir and lc_messages
system variables. lc_messages_dir has only a global value
and is read only. lc_messages has global and session
values and can be modified at runtime, so the error
message language can be changed while the server is
running, and individual clients each can have a different
error message language by changing their session
lc_messages value to a different locale name.
+ Error messages previously were constructed in a mix of
character sets. This issue is resolved by constructing
error messages internally within the server using UTF-8
and returning them to the client in the character set
specified by the character_set_results system variable.
The content of error messages therefore may in some cases
differ from the messages returned previously.
For more information, see Section 9.3, "Setting the Error
Message Language," and Section 9.1.6, "Character Set for Error
Messages."
See also Bug#46218: http://bugs.mysql.com/bug.php?id=46218,
Bug#46236: http://bugs.mysql.com/bug.php?id=46236.
* Partitioning: New PARTITION BY RANGE COLUMNS(column_list) and
PARTITION BY LIST COLUMNS(column_list) options are added for
the CREATE TABLE and ALTER TABLE statements.
A major benefit of RANGE COLUMNS and LIST COLUMNS partitioning
is that they make it possible to define ranges or lists based
on column values that use string, date, or datetime values.
These new extensions also broaden the scope of partition
pruning to provide better coverage for queries using
comparisons on multiple columns in the WHERE clause, some
examples being WHERE a = 1 AND b < 10 and WHERE a = 1 AND b =
10 AND c < 10.
For more information, see Section 17.2.1, "RANGE
Partitioning," Section 17.2.2, "LIST Partitioning," and
Section 17.4, "Partition Pruning."
* Partitioning: A new ALTER TABLE option, TRUNCATE PARTITION,
makes it possible to delete rows from one or more selected
partitions only. Unlike the case with ALTER TABLE ... DROP
PARTITION, ALTER TABLE ... TRUNCATE PARTITION merely deletes
all rows from the specified partition or partitions, and does
not change the definition of the table.
* Partitioning: It is now possible to assign indexes on
partitioned MyISAM tables to key caches using the CACHE INDEX
and to preload such indexes into the cache using LOAD INDEX
INTO CACHE statements. Cache assignment and preloading of
indexes for such tables can be performed for one, several, or
all partitions of the table.
This functionality is supported for only those partitioned
tables that employ the MyISAM storage engine.
* Cluster Replication: Replication: A replication heartbeat
mechanism has been added to facilitate monitoring. This
provides an alternative to checking log files, making it
possible to detect in real time when a slave has failed.
Configuration of heartbeats is done via a new
MASTER_HEARTBEAT_PERIOD = interval clause for the CHANGE
MASTER TO statement (see Section 12.6.2.1, "CHANGE MASTER TO
Syntax"); monitoring can be done by checking the values of the
status variables Slave_heartbeat_period and
Slave_received_heartbeats (see Section 5.1.7, "Server Status
Variables").
The addition of replication heartbeats addresses a number of
issues:
+ Relay logs were rotated every slave_net_timeout seconds
even if no statements were being replicated.
+ SHOW SLAVE STATUS displayed an incorrect value for
Seconds_Behind_Master following a FLUSH LOGS statement.
+ Replication master-slave connections used
slave_net_timeout for connection timeouts.
(Bug#20435: http://bugs.mysql.com/bug.php?id=20435,
Bug#29309: http://bugs.mysql.com/bug.php?id=29309,
Bug#30932: http://bugs.mysql.com/bug.php?id=30932)
* Replication: The global server variable sync_relay_log is
introduced for use on replication slaves. Setting this
variable to a nonzero integer value N causes the slave to
synchronize the relay log to disk after every N events. Setting
its value to 0 allows the operating system to handle
synchronization of the file. The action of this variable, when
enabled, is analogous to how the sync_binlog variable works
with regard to binary logs on a replication master.
The global server variables sync_master_info and
sync_relay_log_info are introduced for use on replication
slaves to control synchronization of, respectively, the
master.info and relay.info files.
In each case, setting the variable to a nonzero integer value
N causes the slave to synchronize the corresponding file to
disk after every N events. Setting its value to 0 allows the
operating system to handle synchronization of the file instead.
The actions of these variables, when enabled, are analogous to
how the sync_binlog variable works with regard to binary logs
on a replication master.
An additional system variable relay_log_recovery is also now
available. When enabled, this variable causes a replication
slave to discard relay log files obtained from the replication
master following a crash.
These variables can also be set in my.cnf, or by using the
--sync-relay-log, --sync-master-info, --sync-relay-log-info,
and --relay-log-recovery server options.
For more information, see Section 16.1.3.3, "Replication Slave
Options and Variables."
(Bug#31665: http://bugs.mysql.com/bug.php?id=31665,
Bug#35542: http://bugs.mysql.com/bug.php?id=35542,
Bug#40337: http://bugs.mysql.com/bug.php?id=40337)
* Replication: Because SHOW BINLOG EVENTS cannot be used to read
events from relay log files, a new SHOW RELAYLOG EVENTS
statement has been added for this purpose.
(Bug#28777: http://bugs.mysql.com/bug.php?id=28777)
* Replication: In circular replication, it was sometimes
possible for an event to propagate such that it would be
reapplied on all servers. This could occur when the
originating server was removed from the replication circle and
so could no longer act as the terminator of its own events, as
normally happens in circular replication.
In order to prevent this from occurring, a new
IGNORE_SERVER_IDS option is introduced for the CHANGE MASTER
TO statement. This option takes a list of replication server
IDs; events having a server ID which appears in this list are
ignored and not applied. For more information, see Section
12.6.2.1, "CHANGE MASTER TO Syntax."
In conjunction with the introduction of IGNORE_SERVER_IDS,
SHOW SLAVE STATUS has a new field Replicate_Ignore_Server_Ids
that displays information about ignored servers.
(Bug#25998: http://bugs.mysql.com/bug.php?id=25998)
See also Bug#27808: http://bugs.mysql.com/bug.php?id=27808.
* With semisynchronous replication, for each transaction, the
master waits until timeout for acknowledgement of receipt from
some semisynchronous slave. If no response occurs during this
period, the master reverts to normal replication. A new system
variable, rpl_semi_sync_master_wait_no_slave, controls whether
the master waits for the timeout to expire before reverting to
normal replication even if the slave count drops to zero
during the timeout period.
If the value is ON (the default), it is allowable for the
slave count to drop to zero during the timeout period (for
example, if slaves disconnect). The master still waits for the
timeout, so as long as some slave reconnects and acknowledges
the transaction within the timeout interval, semisynchronous
replication continues.
If the value is OFF, the master reverts to normal replication
if the slave count drops to zero during the timeout period.
(Bug#47298: http://bugs.mysql.com/bug.php?id=47298)
* The InnoDB buffer pool is divided into two sublists: A new
sublist containing blocks that are heavily used by queries,
and an old sublist containing less-used blocks and from which
candidates for eviction are taken. In the default operation of
the buffer pool, a block when read in is loaded at the
midpoint and then moved immediately to the head of the new
sublist as soon as an access occurs. In the case of a table
scan (such as performed for a mysqldump operation), each block
read by the scan ends up moving to the head of the new sublist
because multiple rows are accessed from each block. This
occurs even for a one-time scan, where the blocks are not
otherwise used by other queries. Blocks may also be loaded by
the read-ahead background thread and then moved to the head of
the new sublist by a single access. These effects can be
disadvantageous because they push blocks that are in heavy use
by other queries out of the new sublist to the old sublist
where they become subject to eviction.
InnoDB Plugin now provides two system variables that enable
LRU algorithm tuning:
+ innodb_old_blocks_pct
Specifies the approximate percentage of the buffer pool
used for the old block sublist. The range of values is 5
to 95. The default value is 37 (that is, 3/8 of the
pool).
+ innodb_old_blocks_time
Specifies how long in milliseconds (ms) a block inserted
into the old sublist must stay there after its first
access before it can be moved to the new sublist. The
default value is 0: A block inserted into the old sublist
moves immediately to the new sublist the first time it is
accessed, no matter how soon after insertion the access
occurs. If the value is greater than 0, blocks remain in
the old sublist until an access occurs at least that many
ms after the first access. For example, a value of 1000
causes blocks to stay in the old sublist for 1 second
after the first access before they become eligible to
move to the new sublist. See Section 7.4.6, "The InnoDB
Buffer Pool"
For additional information, see Section 7.4.6, "The InnoDB
Buffer Pool."
(Bug#45015: http://bugs.mysql.com/bug.php?id=45015)
* Two new status variables have been added to SHOW STATUS
output. Innodb_buffer_pool_read_ahead and
Innodb_buffer_pool_read_ahead_evicted indicate the number of
pages read in by the InnoDB read-ahead background thread, and
the number of such pages evicted without ever being accessed,
respectively. Also, the status variables
Innodb_buffer_pool_read_ahead_rnd
(http://dev.mysql.com/doc/refman/5.4/en/server-status-variables.html#statvar_Innodb_buffer_pool_read_ahead_rnd)
and Innodb_buffer_pool_read_ahead_seq
(http://dev.mysql.com/doc/refman/5.4/en/server-status-variables.html#statvar_Innodb_buffer_pool_read_ahead_seq)
have been removed.
(Bug#42885: http://bugs.mysql.com/bug.php?id=42885)
* Columns that provide a catalog value in INFORMATION_SCHEMA
tables (for example, TABLES.TABLE_CATALOG) now have a value of
def rather than NULL.
(Bug#35427: http://bugs.mysql.com/bug.php?id=35427)
* The deprecated --default-table-type
(http://dev.mysql.com/doc/refman/5.4/en/server-options.html#op
tion_mysqld_default-table-type) server option has been
removed. (Bug#34818: http://bugs.mysql.com/bug.php?id=34818)
* Previously, mysqldump would not dump the INFORMATION_SCHEMA
database and ignored it if it was named on the command line.
Now, mysqldump will dump INFORMATION_SCHEMA if it is named on
the command line. Currently, this requires that the
--skip-lock-tables (or --skip-opt) option be given.
(Bug#33762: http://bugs.mysql.com/bug.php?id=33762)
* Several undocumented C API functions were removed:
mysql_manager_close(), mysql_manager_command(), mysql_manager_connect(), mysql_manager_fetch_line(), mysql_manager_init(), mysql_disable_reads_from_master(), mysql_disable_rpl_parse(), mysql_enable_reads_from_master(), mysql_enable_rpl_parse(), mysql_master_query(), mysql_master_send_query(), mysql_reads_from_master_enabled(), mysql_rpl_parse_enabled(), mysql_rpl_probe(), mysql_rpl_query_type(), mysql_set_master(), mysql_slave_query(), and mysql_slave_send_query(). (Bug#31952: http://bugs.mysql.com/bug.php?id=31952,
Bug#31954: http://bugs.mysql.com/bug.php?id=31954)
* Sinhala collations utf8_sinhala_ci and ucs2_sinhala_ci were
added for the utf8 and ucs2 character sets.
(Bug#26474: http://bugs.mysql.com/bug.php?id=26474)
* If the value of the --log-warnings option is greater than 1,
the server now writes access-denied errors for new connection
attempts to the error log (for example, if a client user name
or password is incorrect).
(Bug#25822: http://bugs.mysql.com/bug.php?id=25822)
* On Windows, use of POSIX I/O interfaces in mysys was replaced
with Win32 API calls (CreateFile(), WriteFile(), and so forth)
and the default maximum number of open files has been
increased to 16384. The maximum can be increased further by
using the --open-files-limit=N option at server startup.
(Bug#24509: http://bugs.mysql.com/bug.php?id=24509)
* The TRADITIONAL SQL mode now includes NO_ENGINE_SUBSTITUTION.
(Bug#21099: http://bugs.mysql.com/bug.php?id=21099)
* MySQL now implements the SQL standard SIGNAL and RESIGNAL
statements. See Section 12.8.8, "SIGNAL and RESIGNAL."
(Bug#11661: http://bugs.mysql.com/bug.php?id=11661)
* The undocumented, deprecated, and not useful SHOW COLUMN TYPES
statement has been removed.
(Bug#5299: http://bugs.mysql.com/bug.php?id=5299)
* Dynamic plugins now need to be linked with the
libmysqlservices.a library. For an example showing what
Makefile.am should look like, see Section 21.2.3.3, "Creating
a Plugin Library."
* The FORMAT() function now supports an optional third parameter
that enables a locale to be specified to be used for the
result number's decimal point, thousands separator, and
grouping between separators. Allowable locale values are the
same as the legal values for the lc_time_names system variable
(see Section 9.8, "MySQL Server Locale Support"). For example,
the result from FORMAT(1234567.89,2,'de_DE') is 1.234.567,89.
If no locale is specified, the default is 'en_US'.
* The Greek locale 'el_GR' is now an allowable value for the
lc_time_names system variable.
* Previously, in the absence of other information, the MySQL
client programs mysql, mysqladmin, mysqlcheck, mysqlimport,
and mysqlshow use the compiled-in default character set,
usually latin1.
Now these clients can autodetect which character set to use
based on the operating system setting, such as the value of
the LANG or LC_ALL locale environment language on Unix system
or the code page setting on Windows systems. For systems on
which the locale is available from the OS, the client uses it
to set the default character set rather than using the
compiled-in default. Thus, users can configure the locale in
their environment for use by MySQL clients. For example,
setting LANG to ru_RU.KOI8-R causes the koi8r character set to
be used. The OS character set is mapped to the closest MySQL
character set if there is no exact match. If the client does
not support the matching character set, it uses the
compiled-in default. (For example, ucs2 is not supported as a
connection character set.)
Third-party applications that wish to use character set
autodetection based on the OS setting can use the following
mysql_options() call before connecting to the server:
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, MYSQL_AUTODETECT_CHARSET_NAME); See Section 9.1.4, "Connection Character Sets and Collations."
* mysql_upgrade now has an --upgrade-system-tables option that
causes only the system tables to be upgraded. With this
option, data upgrades are not performed.
* MySQL now supports an interface for semisynchronous
replication: A commit performed on the master side blocks
before returning to the session that performed the transaction
until at least one slave acknowledges that it has received and
logged the events for the transaction. Semisynchronous
replication is implemented through an optional plugin
component. See Section 16.2.8, "Semisynchronous Replication."
* The CREATE TABLESPACE privilege has been introduced. This
privilege exists at the global (superuser) level and enables
you to create, alter, and drop tablespaces and logfile groups.
* The server now supports a Debug Sync facility for thread
synchronization during testing and debugging. To compile in
this facility, configure MySQL with the --enable-debug-sync
option. The debug_sync system variable provides the user
interface Debug Sync. mysqld and mysql-test-run.pl support a
--debug-sync-timeout option to enable the facility and set the
default synchronization point timeout.
* Added the TO_SECONDS() function, which converts a date or
datetime value to a number of seconds since the year 0.
* Parser performance was improved for identifier scanning and
conversion of ASCII string literals.
* The LOAD XML INFILE statement was added. This statement makes
it possible to read data directly from XML files into database
tables. For more information, see Section 12.2.7, "LOAD XML
Syntax."
--
Joerg Bruehe, MySQL Build Team, Joerg.Bruehe@Sun.COM
MySQL Workbench 5.2.10 (BETA 2): Upgrade from MySQL Administrator, MySQL Query Browser (no replies)
WB 5.2.10 includes:
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
Download WB 5.2:
http://dev.mysql.com/downloads/workbench/
- Model (upgrade from DBDesigner)
- Query (upgrade from MySQL Query Browser)
- Admin (upgrade from MySQL Administrator)
- SSH-Tunnel (new)
Quick-Start Tutorial:
http://wb.mysql.com/?p=406
Download WB 5.2:
http://dev.mysql.com/downloads/workbench/
MySQL Connector/Python 0.1.0-devel: first development snapshot (no replies)
MySQL Connector/Python 0.1.0-devel: first development snapshot
Today we're releasing MySQL Connector/Python 0.1.0-devel. This is the first in a serie of development snapshots aimed to get more people trying it out and reporting problems. This is not a production-ready release, but it should work on all Unixes and Windows which has Python 2.4 or later installed. (No, no Py3K, yet!)
http://blog.some-abstract-type.com/2009/11/mysql-connectorpython-010-devel-first.html
Discussion:
http://forums.mysql.com/list.php?50
Today we're releasing MySQL Connector/Python 0.1.0-devel. This is the first in a serie of development snapshots aimed to get more people trying it out and reporting problems. This is not a production-ready release, but it should work on all Unixes and Windows which has Python 2.4 or later installed. (No, no Py3K, yet!)
http://blog.some-abstract-type.com/2009/11/mysql-connectorpython-010-devel-first.html
Discussion:
http://forums.mysql.com/list.php?50

