News


News

Showing articles from http://forums.mysql.com/rss.php?3 External_link

[235 total ]
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 ... [More] , 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 [Less]

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/

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. ... [More] 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 [Less]

MySQL Community Server 5.0.88 has been released (no replies)

Dear MySQL users,

MySQL Community Server 5.0.88, a new version of the popular Open Source
Database Management System, has been released. This and future releases
in the MySQL Community Server 5.0 series share version numbers ... [More] with
their MySQL Enterprise Server counterparts.

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.87).

http://dev.mysql.com/doc/refman/5.0/en/news-5-0-88.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.88

Bugs fixed:

* Security Fix: MySQL clients linked against OpenSSL did not
check server certificates presented by a server linked against
yaSSL. (Bug#47320: http://bugs.mysql.com/47320)

* MySQL Cluster: When a data node had written its GCI marker to
the first page of a megabyte, and that node was later killed
during restart after having processed that page (marker) but
before completing a LCP, the data node could fail with
filesystem errors. (Bug#44952: http://bugs.mysql.com/44952)
See also Bug#42564: http://bugs.mysql.com/42564,
Bug#44291: http://bugs.mysql.com/44291.

* Replication: When a session was closed on the master,
temporary tables belonging to that session were logged with
the wrong database names when either of the following
conditions was true:

1. The length of the name of the database to which the
temporary table belonged was greater than the length of
the current database name.

2. The current database was not set.
(Bug#48216: http://bugs.mysql.com/48216)
See also Bug#46861: http://bugs.mysql.com/46861,
Bug#48297: http://bugs.mysql.com/48297.

* Error handling was missing for SELECT statements containing
subqueries in the WHERE clause and that assigned a SELECT
result to a user variable. The server could crash as a result.
(Bug#48291: http://bugs.mysql.com/48291)

* An assertion could fail if the optimizer used a SPATIAL index.
(Bug#48258: http://bugs.mysql.com/48258,
Bug#47019: http://bugs.mysql.com/47019)

* mysys/mf_keycache.c requires threading, but no test was made
for thread support. (Bug#47923: http://bugs.mysql.com/47923)

* If the first argument to GeomFromWKB() function was a geometry
value, the function just returned its value. However, it
failed to preserve the argument's null_value flag, which
caused an unexpected NULL value to be returned to the caller,
resulting in a server crash.
(Bug#47780: http://bugs.mysql.com/47780)

* The GPL and commercial license headers had different sizes, so
that error log, backtrace, core dump, and cluster trace file
line numbers could be off by one if they were not checked
against the version of the source used for the build. (For
example, checking a GPL build backtrace against commercial
sources.) (Bug#46216: http://bugs.mysql.com/46216)

* During the build of the Red Hat IA64 MySQL server RPM, the
system library link order was incorrect. This made the
resulting Red Hat IA64 RPM depend on
"libc.so.6.1(GLIBC_PRIVATE)(64bit)", thus preventing
installation of the package.
(Bug#45706: http://bugs.mysql.com/45706)

* Failure to treat BIT values as unsigned could lead to
unpredictable results.
(Bug#42803: http://bugs.mysql.com/42803)

Thanks,
MySQL RE Team

Hery Ramilison, Karen Langford, MySQL Release Engineers
Database Group, Sun Microsystem Inc. [Less]

MySQL Workbench 5.2.8 (BETA 1): Upgrade from MySQL Administrator, MySQL Query Browser (no replies)

WB 5.2.8 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/

MySQL Community Server 5.1.41 has been released (no replies)

Dear MySQL users,

MySQL Community Server 5.1.41, a new version of the popular Open
Source Database Management System, has been released. MySQL 5.1.41 is
recommended for use on production systems.

For an overview of what's ... [More] 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.41 on new servers or upgrading
to MySQL 5.1.41 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-41.html

Enjoy!

=======================================================================

C.1.1. Changes in MySQL 5.1.41

Functionality added or changed:

* In the default operation of the InnoDB buffer pool, a block is
loaded at the midpoint for the first access and then moved
immediately to the head of the list as soon as another 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 list 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 are 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 before it can be
moved to the new sublist. The default value is 0, so
after a block is inserted into the old sublist, it moves
immediately to the new sublist the next time it is
accessed, no matter how soon after insertion the next
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 initial insertion. For example, a
value of 1000 causes blocks to stay in the old sublist
for 1 second before moving to the new sublist.
For additional information, see Section 7.4.6, "The InnoDB
Buffer Pool." (Bug#45015: http://bugs.mysql.com/45015)

* For InnoDB Plugin, 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 and
Innodb_buffer_pool_read_ahead_seq status variables have been
removed.
The built-in version of InnoDB is not affected by these
changes. (Bug#42885: http://bugs.mysql.com/42885)

* InnoDB Plugin has been upgraded to version 1.0.5. This version
is considered of Release Candidate (RC) quality.

* 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.

Bugs fixed:

* Partitioning: An ALTER TABLE ... ADD PARTITION statement that
caused open_files_limit to be exceeded led to a crash of the
MySQL server. (Bug#46922: http://bugs.mysql.com/46922)
See also Bug#47343: http://bugs.mysql.com/47343.

* Partitioning: The cardinality of indexes on partitioned tables
was calculated using the first partition in the table, which
could result in suboptimal query execution plans being chosen.
Now the partition having the most records is used instead,
which should result in better use of indexes and thus improved
performance of queries against partitioned tables in many if
not most cases. (Bug#44059: http://bugs.mysql.com/44059)

* Replication: When using statement-based or mixed-format
replication, the database name was not written to the binary
log when executing a LOAD DATA statement. This caused problems
when the table being loaded belonged to a database other than
the current database; data could be loaded into the wrong
table (if a table having the same name existed in the current
database) or replication could fail (if no table having that
name existed in the current database). Now a table referenced
in a LOAD DATA statement is always logged using its fully
qualified name when the database to which it belongs is not
the current database.
This issue occurred in MySQL 5.1.40 only.
(Bug#48297: http://bugs.mysql.com/48297)

* Replication: When a session was closed on the master,
temporary tables belonging to that session were logged with
the wrong database names when either of the following
conditions was true:

1. The length of the name of the database to which the
temporary table belonged was greater than the length of
the current database name.

2. The current database was not set.
(Bug#48216: http://bugs.mysql.com/48216)
See also Bug#46861: http://bugs.mysql.com/46861,
Bug#48297: http://bugs.mysql.com/48297.

* Replication: When using row-based replication, changes to
non-transactional tables that occurred early in a transaction
were not immediately flushed upon committing a statement. This
behavior could break consistency since changes made to
non-transactional tables become immediately visible to other
connections. (Bug#47678: http://bugs.mysql.com/47678)
See also Bug#47287: http://bugs.mysql.com/47287,
Bug#46864: http://bugs.mysql.com/46864,
Bug#43929: http://bugs.mysql.com/43929,
Bug#46129: http://bugs.mysql.com/46129.

* Replication: When mysqlbinlog --verbose was used to read a
binary log that had been recorded using the row-based format,
the output for events that updated some but not all columns of
tables was not correct.
(Bug#47323: http://bugs.mysql.com/47323)

* Replication: When using the row-based format to replicate a
transaction involving both transactional and non-transactional
engines, which contained a DML statement affecting multiple
rows, the statement failed; if this transaction was followed
by a COMMIT, the master and the slave could diverge, because
the statement was correctly rolled back on the master, but was
applied on the slave. (Bug#47287: http://bugs.mysql.com/47287)
See also Bug#46864: http://bugs.mysql.com/46864.

* Replication: A problem with the BINLOG statement in the output
of mysqlbinlog could break replication; statements could be
logged with the server ID stored within events by the BINLOG
statement rather than the ID of the running server. With this
fix, the server ID of the server executing the statements can
no longer be overridden by the server ID stored in the binary
log's format description statement.
(Bug#46640: http://bugs.mysql.com/46640)
This regression was introduced by
Bug#32407: http://bugs.mysql.com/32407.

* Replication: When using statement-based replication and the
transaction isolation level was set to READ COMMITTED or a
less strict level, InnoDB returned an error even if the
statement in question was filtered out according to the
--binlog-do-db or --binlog-ignore-db rules in effect at the
time. (Bug#42829: http://bugs.mysql.com/42829)

* Replication: FLUSH LOGS did not actually close and reopen the
binary log index file.
(Bug#34582: http://bugs.mysql.com/34582)

* A build configured using the --without-server option did not
compile the yaSSL code, so if --with-ssl was also used, the
build failed. (Bug#47957: http://bugs.mysql.com/47957)

* mysys/mf_keycache.c requires threading, but no test was made
for thread support. (Bug#47923: http://bugs.mysql.com/47923)

* The mysys/mf_strip.c file, which defines the strip_sp has been
removed from the MySQL source. The function was no longer in
use within the main build, and the supplied function was
causing symbol errors on Windows builds.
(Bug#47857: http://bugs.mysql.com/47857)

* The Windows build for MySQL would compile the split.c and
debug.c files unnecessarily, causing additional symbols to be
included in mysqld. (Bug#47850: http://bugs.mysql.com/47850)

* When building storage engines on Windows it was not possible
to specify additional libraries within the CMake file required
for the build. An ${engine}_LIBS macro has been added to the
files to support these additional storage-engine specific
libraries. (Bug#47797: http://bugs.mysql.com/47797)

* When building a pluggable storage engine on Windows, the
engine name could be based on the directory name where the
engine was located, rather than the configured storage engine
name. (Bug#47795: http://bugs.mysql.com/47795)

* On Windows, when an idle named pipe connection was forcibly
closed with a KILL statement or because the server was being
shut down, the thread that was closing the connection would
hang infinitely. (Bug#47571: http://bugs.mysql.com/47571,
Bug#31621: http://bugs.mysql.com/31621)

* A simple SELECT with implicit grouping could return many rows
rather than a single row if the query was ordered by the
aggregated column in the select list.
(Bug#47280: http://bugs.mysql.com/47280)

* An assertion could be raised for CREATE TABLE if there was a
pending INSERT DELAYED or REPLACE DELAYED for the same table.
(Bug#47274: http://bugs.mysql.com/47274)

* Incorrect handling of predicates involving NULL by the range
optimizer could lead to to an infinite loop during query
execution. (Bug#47123: http://bugs.mysql.com/47123)

* Repair by sort or parallel repair of MyISAM tables could fail
to fail over to repair with key cache.
(Bug#47073: http://bugs.mysql.com/47073)

* If InnoDB reached its limit on the number of concurrent
transactions (1023), it wrote a descriptive message to the
error log but returned a misleading error message to the
client, or an assertion failure occurred.
(Bug#46672: http://bugs.mysql.com/46672)
See also Bug#18828: http://bugs.mysql.com/18828.

* Concurrent INSERT INTO ... SELECT statements for an InnoDB
table could cause an AUTO_INCREMENT assertion failure.
(Bug#46650: http://bugs.mysql.com/46650)

* Trailing spaces were not ignored for user-defined collations
that mapped spaces to a character other than 0x20.
(Bug#46448: http://bugs.mysql.com/46448)
See also Bug#29468: http://bugs.mysql.com/29468.

* The GPL and commercial license headers had different sizes, so
that error log, backtrace, core dump, and cluster trace file
line numbers could be off by one if they were not checked
against the version of the source used for the build. (For
example, checking a GPL build backtrace against commercial
sources.) (Bug#46216: http://bugs.mysql.com/46216)

* InnoDB did not disallow creation of an index with the name
GEN_CLUST_INDEX, which is used internally.
(Bug#46000: http://bugs.mysql.com/46000)

* During the build of the Red Hat IA64 MySQL server RPM, the
system library link order was incorrect. This made the
resulting Red Hat IA64 RPM depend on
"libc.so.6.1(GLIBC_PRIVATE)(64bit)", thus preventing
installation of the package.
(Bug#45706: http://bugs.mysql.com/45706)

* With InnoDB Plugin, renaming a table column and then creating
an index on the renamed column caused a server crash to to the
.frm file and the InnoDB data directory going out of sync. Now
InnoDB Plugin 1.0.5 returns an error instead: ERROR 1034
(HY000): Incorrect key file for table 'tbl_name'; try to
repair it. To work around the problem, create another table
with the same structure and copy the original table to it.
(Bug#44571: http://bugs.mysql.com/44571)

* An InnoDB error message incorrectly referred to the
nonexistent innodb_max_files_open variable rather than to
innodb_open_files. (Bug#44338: http://bugs.mysql.com/44338)

* The FORCE INDEX FOR ORDER BY index hint was ignored when join
buffering was used. (Bug#43029: http://bugs.mysql.com/43029)

* Incorrect handling of range predicates combined with OR
operators could yield incorrect results.
(Bug#42846: http://bugs.mysql.com/42846)

* Failure to treat BIT values as unsigned could lead to
unpredictable results.
(Bug#42803: http://bugs.mysql.com/42803)

* Previously, InnoDB performed REPLACE INTO T SELECT ... FROM S
WHERE ... by setting shared next-key locks on rows from S. Now
InnoDB selects rows from from S with shared locks or as a
consistent read, as for INSERT ... SELECT. This reduces lock
contention between sessions.
(Bug#37232: http://bugs.mysql.com/37232)

* When an InnoDB tablespace filled up, an error was logged to
the client, but not to the error log. Also, the error message
was misleading and did not indicate the real source of the
problem. (Bug#31183: http://bugs.mysql.com/31183)

* In mysql, using Control-C to kill the current query resulted
in a ERROR 1053 (08S01): Server shutdown in progress" message
if the query was waiting for a lock.
(Bug#28141: http://bugs.mysql.com/28141)

Thanks,
MySQL RE Team

Hery Ramilison, Karen Langford, MySQL Release Engineers
Database Group, Sun Microsystem Inc. [Less]

MySQL Connector/Net 6.1.3 has been released (no replies)

MySQL Connector/Net 6.1.3, 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 ... [More] in source and binary form from [http://dev.mysql.com/downloads/connector/net/6.1.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.)

This release builds on the cool new features introduced with 6.1.2 and adds the following changes/bugfixes.

- fixed session state provider table definition to allow more than 64K per-session data (bug#47339)
- fixed compilation problem in NativeDriver inside ExecuteDirect (bug #47354)
- fixed default collation bug with session provider table (bug #47332)
- in sessionState provider, timeout value was read from the wrong (root) web.config (bug#47815)
- fixed crash that can occur when oldGuids are used and binary(16) column used for GUID
contains a null value (thanks Troy!) (bug#47928)
- fixed indexes schema collection so that it still works with bad table names such as b``a`d (bug #48101)
- fixed guid type so that multi-byte character sets will not effect how it works. A column would be
considered a guid if it has a *character* length of 36, not a *byte* length of 36 (bug #47985)
- fixed unsigned types in views when used as entities (bug # 47872)
- now exposing the MySqlDecimal type along with GetMySqlDecimal methods on data reader (bug #48100)
- applied user-suggested patch to enable type-safe cloning (bug #48460)

Thank you for using our product! [Less]

MySQL Connector/Net 6.2.1 beta has been released (no replies)

MySQL Connector/Net 6.2.1, a new version of the all-managed .NET driver
for MySQL has been released. This is a beta release and is intended to
introduce you to the new features and enhancements we are planning. This
release should not be ... [More] used in a production environment.

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:

- fixed SessionProvider to be compatible with 4.x MySQL, replaced TIMESTAMPDIFF with TIME_TO_SEC
(bug#47219)
- implemented support for client SSL certificates
- fixed indexes schema collection so that it still works with bad table names such as b``a`d (bug #48101)
- fixed guid type so that multi-byte character sets will not effect how it works. A column would be
considered a guid if it has a *character* length of 36, not a *byte* length of 36 (bug #47985)
- fixed unsigned types in views when used as entities (bug # 47872)
- now exposing the MySqlDecimal type along with GetMySqlDecimal methods on data reader (bug #48100)
- applied user-suggested patch to enable type-safe cloning (bug #48460)
- fixed encrypt keyword that was no longer supported in connection strings. It is obsolete so
new code should use the 'ssl mode'. Encrypt will be removed entirely starting with 6.4 (bug #48290)
- implemented PossibleValues property on MySqlParameter for ENUM and Set types (48586)

What we know may be broken
----------------------------
- Documentation is not updated yet.

Please let us know what else we broke and how we can make it better! [Less]

MySql Connector/Net 6.0.5 has been released (no replies)

MySQL Connector/Net 6.0.5, a new version of the all-managed .NET driver
for MySQL has been released. This is a maintenance release and is approved for use
in all situations.

It is now available in source and binary form ... [More] from
[http://dev.mysql.com/downloads/connector/net/6.0.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.)

There are lots of bug fixes in this release so please review the changelog.

Thank you! [Less]

MySQL Connector/ODBC 5.1.6 is available! (no replies)

Dear MySQL users,

MySQL Connector/ODBC 5.1.6, a new version of the ODBC driver for the
MySQL database management system, has been released. This release is
the latest release of the 5.1 series and is suitable for use with ... [More] any
MySQL version since 4.1 (It will not work with 4.0 or earlier
releases.)

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/connector/odbc/5.1.html

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

Enjoy!

Kent Boortz
The MySQL build team at Sun Microsystems

==========

Functionality added or changed:

* Providing an empty string as the catalog argument to SQLTables()
will return an empty result set. A catalog must have a name.

* Remove use of "old" SQLLEN/SQLULEN types aliases. They are not
supported in unixODBC 2.2.13 and later 64-bit builds. Removed
SQLROWCOUNT, SQLROWSETSIZE, SQLTRANSID, SQLROWOFFSET.

* Connection parameters can be specified individually instead of
using OPTIONS bitflags. (See connection parameters documentation)

* Edit controls for INITSTMT and CHARSET DSN options are added to the native
Windows GUI. (Bug#40932)

* Length/Indicator pointer is now stored and used internally as pointer to
SQLLEN and not to SQLINTEGER. Using SQLINTEGER pointers as
StrLen_or_IndPtr parameter of SQLBindParameter/SQLBindCol may cause crash
on 64bit platforms.

* Query log is not overwritten, but appended instead. (Bug#44965)

* Fixed tab order in Windows datasource config dialog. (Bug#42905)

Bugs fixed:

* Add support for data-at-execution with positioned insert/update
(Bug#37649)

* Output string length from SQLDriverConnect() includes NULL-term
(Bug#38949)

* SQLGetInfo() returns 0 for SQL_CATALOG_USAGE info (Bug#39560)

* SQLDriverConnect() may truncate output string erroneously
(Bug#37278)

* SQLTables() doesn't properly handle empty strings to list catalogs
and tables. (Bug#39561)

* Calling SQLDriverConnect() with no output buffer will crash if not
prompting. (Bug#40316)

* SQLTables() doesn't return the catalog name if the table is given
and the catalog argument is NULL. (Bug#39957)

* Driver crashes when attempting to retrieve data in a character set
not compiled into libmysql. (Bug#39831)

* SQLGetTypeInfo() doesn't return any rows SQL_TIMESTAMP on an ODBC v2
connection. (Bug#30626)

* Positioned update with SQL_C_NUMERIC loses prec/scale values
(Bug#39961)

* ADO adUseServer cursor is lost after updating adLongVarWChar field
(Bug#26950)

* Calling SQLDescribeCol() with a NULL buffer and non-zero buffer
length causes a crash. (Bug#41942)

* NULL parameters don't work correctly with ADO. (Bug#41256)

* Unable to retrieve null DECIMAL fields in ADO. (Bug#41081)

* Fix positioned update using data-at-execution, bind offsets and
row-wise binding. (Bug#36071)

* SQLConfigDataSource may fail with: Cannot find driver (Bug#41796)

* FLAG_NO_BIGINT still returns bigint for SQLDescribeCol()
(Bug#17679)

* Random access violation exceptions (0xC0000005) in ASP scripts in the
SQLSetConnectAttrW. (Bug#44971)

* Binding SQL_C_BIT to an integer column didn't work. (Bug#39644)

* Inserting a new record using SQLSetPos if the table is from different than
current catalog. (Bug#41946)

Includes changes from Connector/ODBC 3.51.27.

Built against the client library from MySQL 5.1.34sp1. [Less]