MySQL Lists are EOL. Please join:

List:Announcements« Previous MessageNext Message »
From:Lenz Grimmer Date:July 1 2004 2:49pm
Subject:MySQL 4.1.3-beta has been released
View as plain text  
Hash: SHA1


MySQL 4.1.3, a new version of the popular Open Source/Free Software
Database Management System, has been released. It is now available in
source and binary form for a number of platforms from our download pages
at and mirror sites.

Note that not all mirror sites may be up to date at this point in time -
if you can't find this version on some mirror, please try again later or
choose another download site.

This is the first beta development release, adding new features
and fixing recently discovered bugs. The change to "beta" level indicates, 
that all planned major features for MySQL 4.1 have been implemented by 
now. The focus is now on testing and stabilizing these new features and
the rest of the code base.

Please refer to our bug database at for more
details about the individual bugs fixed in this version.

News from the ChangeLog:

   Functionality added or changed:
     * Language-specific collations were added for the ucs2 and utf8
       Unicode character sets: Icelandic, Latvian, Romanian, Slovenian,
       Polish, Estonian, Swedish, Turkish, Czech, Danish, Lithuanian,
       Slovak, Spanish, Traditional Spanish.
     * Support for per-connection time zones was added. Now you can
       select current time zone for connection by setting system
       @@time_zone variable to a value such as '+10:00' or
       'Europe/Moscow' (where 'Europe/Moscow' is the name of one of the
       time zones described in the system tables). Functions like
       CURRENT_TIMESTAMP, UNIX_TIMESTAMP, and so forth honor this time
       zone. Values of TIMESTAMP type are also interpreted as values in
       this time zone (so now our TIMESTAMP type behaves similar to
       Oracle's TIMESTAMP WITH LOCAL TIME ZONE, that is, values stored in
       such a column are normalized towards UTC and converted back to the
       current connection time zone when they are retrieved from such a
     * Basic datetime with time zone conversion function CONVERT_TZ() was
       added. It assumes that its first argument is a datetime value in
       the time zone specified by its second argument and returns
       equivalent datetime value in time zone specified by its third
     * CHECK TABLE now can be killed. See section "KILL Syntax" in the
     * Warning: Incompatible change! C API change: mysql_shutdown() now
       requires a second argument. This is a source-level incompatibility
       that affects how you compile client programs; it does not affect
       the ability of compiled clients to communicate with older servers.
       See section "mysql_shutdown()" in the manual.
     * OPTIMIZE TABLE for InnoDB tables is now mapped to ALTER TABLE
       instead of ANALYZE TABLE.
     * sync_frm is now a settable global variable (not only a startup
     * Added the sync-binlog=N global variable and startup option, which
       makes the MySQL server synchronize its binary log to disk
       (fdatasync()) after every Nth write to the binary log.
     * Changed the slave SQL thread to print fewer useless error messages
       (no more message duplication; no more messages when an error is
       skipped (because of slave-skip-errors).
       and single-table UPDATE are now written to the binary log even if
       they changed nothing on the master (for example, even if the
       DELETE matched no row). The old behavior sometimes caused bad
       surprises in replication setups.
     * Replication and mysqlbinlog now have better support for the case
       that the session character set and collation variables are changed
       within a given session. See section "Replication Features and
       Known Problems" in the manual.
     * Added --innodb-safe-binlog server option, which adds consistency
       guarantees between the content of InnoDB tables and the binary
       log. See section "The Binary Log" in the manual.
     * LIKE now supports the use of a prepared statement parameter or
       delimited constant expression as the argument to ESCAPE (Bug #4200).

   Bugs fixed:
     * Added missing root user to Windows version of mysqld. (Bug #4242)
     * Fixed bug in prepared EXPLAIN statement which led to server crash.
       (Bug #4271)
     * Fixed a bug of using parameters in some prepared statements via
       SQL syntax. (Bug #4280)
     * Fixed a bug in MERGE tables created with INSERT_METHOD=LAST, that
       were not able to report a key number that caused "Duplicate entry"
       error for UNIQUE key in INSERT. As a result, error message was not
       precise enough (error 1022 instead of error 1062) and INSERT ...
       ON DUPLICATE KEY UPDATE did not work. (Bug #4008)
     * Fixed a bug in DELETE from a table with FULLTEXT indexes which
       under rare circumstances could result in a corrupted table, if
       words of different lengths may be considered equal (which is
       possible in some collations, e.g. in utf8_general_ci or
       latin1_german2_ci.) (Bug #3808)
     * Fixed too early unlocking tables if we have subquery in HAVING
       clause. (Bug #3984)
     * Fixed a bug in mysqldump when it didn't return an error if the
       output device was filled (Bug #1851)
     * Fixed a bug in client side conversion of string column to
       MYSQL_TIME application buffer (prepared statements API). (Bug
     * Fixed a bug with server crash on attempt to execute a non-prepared
       statement. (Bug #4236)
     * Fixed a bug with server crash on attempt to prepare a statement
       with character set introducer. (Bug #4105)
     * Fixed bug which caused different number of warnings to be
       generated when bad datetime as string or as number was inserted
       into DATETIME or TIMESTAMP column. (Bug #2336)
     * Fixed some byte order bugs with prepared statements on machines
       with high-byte-first. (Bug #4173)
     * Fixed unlikely bug in the range optimzer when using many IN()
       queries on different key parts. (Bug #4157)
     * Fixed problem with NULL and derived tables. (Bug #4097)
     * Fixed wrong UNION results if display length of fields for numeric
       types was set less then real length of values in them. (Bug #4067)
     * Fixed a bug in mysql_stmt_close(), which hung up when attempting
       to close statement after failed mysql_stmt_fetch(). (Bug #4079)
     * Fixed bug of re-execution optimized COUNT(*), MAX() and MIN()
       functions in prepared statements. (Bug #2687)
     * Fixed a bug with COUNT(DISTINCT) performance degradation in cases
       like COUNT(DISTINCT a TEXT, b CHAR(1)) (no index used). (Bug
     * Fixed a bug in MATCH ... AGAINST(... IN BOOLEAN MODE) that under
       rare circumstances could cause wrong results if in the data's
       collation one byte could match many (like in utf8_general_ci or
       latin1_german2_ci.) (Bug #3964)
     * Fixed a bug in prepared statements protocol, when microseconds
       part of MYSQL_TYPE_TIME/MYSQL_TYPE_DATETIME columns was not sent
       to the client. (Bug #4026)
     * Fixed a bug that using --with-charset with configure didn't affect
       the MySQL client library. (Bug #3990)
     * Fixed a bug in authentication code that allowed a malicious user
       to bypass password verification with specially crafted packets
       (using a modified client library).
     * Fixed bug with wrong result of CONCAT(?, column) in prepared
       statements. (Bug #3796)
     * mysql_fix_privilege_tables didn't correctly handle the argument of
       its --password=# option. (Bug #4240)
     * Fixed potential memory overrun in mysql_real_connect() (which
       required a compromised DNS server and certain operating systems).
       (Bug #4017)
     * During the installation process of the server RPM on Linux, mysqld
       was run as the root system user, and if you had
       --log-bin=<somewhere_out_of_var_lib_mysql> it created binary log
       files owned by root in this directory, which remained owned by
       root after the installation. This is now fixed by starting mysqld
       as the mysql system user instead. (Bug #4038)
     * Made DROP DATABASE honor the value of lower_case_table_names. (Bug
     * The slave SQL thread refused to replicate INSERT ... SELECT if it
       examined more than 4 billion rows. (Bug #3871)
     * mysqlbinlog didn't escape the string content of user variables,
       and did not deal well when these variables were in non-ASCII
       character sets; this is now fixed by always printing the string
       content of user variables in hexadecimal. The character set and
       collation of the string is now also printed. (Bug #3875)

Additional notes:

 * Please note that a few binary packages (e.g. the "Max" packages) are 
   missing from the initial release. These will be made available as soon 
   as they are ready.

- -- 
 Lenz Grimmer <lenz@stripped>
 Senior Production Engineer
 MySQL GmbH,
 Hamburg, Germany
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: For info see

MySQL 4.1.3-beta has been releasedLenz Grimmer1 Jul