List:Packagers« Previous MessageNext Message »
From:Lenz Grimmer Date:August 3 2004 9:38am
Subject:MySQL 5.0.1-alpha-snapshot has been released
View as plain text  
Hash: SHA1


MySQL 5.0.1, 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 a snapshot of the alpha development release, adding new features
and fixing recently discovered bugs. Most notably, this release introduces
basic support of read only and updateable VIEWs based on single table or
other updateable VIEWs, as well as a new "greedy" query optimizer and
various improvements in the stored procedure and replication code.

NOTE: This build passes our test suite and fixes a lot of reported bugs
found in the previous 5.0.0 release. However, please be aware that this is
not a 'standard MySQL release' in the sense as there are still some open
critical bugs in our bugs database ( that affect
this release as well. Therefore this is more of a "snapshot release" of
the current state of affairs. We are actively fixing these issues and will
make a new release where these are fixed as soon as possible. However,
this snapshot gives you an opportunity for testing and evaluating the new
MySQL 5.0 features for future products.

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

News from the ChangeLog:

   Functionality added or changed:
     * Added support of read only and updateable VIEWs based on single
       table or other updateable VIEWs.
     * Implemented a new ``greedy search'' optimizer that can
       significantly reduce the time spent on optimizing the query in
       some many-table joins. (You are affected if not only some
       particular SELECT is slow, but even using EXPLAIN for it takes a
       noticeable amount of time.) Two new system variables,
       optimizer_search_depth and optimizer_prune_level, can be used to
       fine-tune optimizer behavior.
     * 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.
     * A stored procedure is no longer "global" - i.e. it now belongs to a
       specific database:
        * When a database is dropped, all routines belonging to that
          database are also dropped.
        * Procedure names may be qualified, e.g. `db.p()'
        * When executed from another database an implicit "use db" is
          in effect.
        * Explicit "use db" is no longer allowed in a stored procedure.
     * Fixed SHOW TABLES output field name and values according to
       standard. Field name changed from Type to table_type, values are
       BASE TABLE, VIEW and ERROR. (Bug #4603)
     * Added sql_updatable_view_key system variable.
     * Added --replicate-same-server-id server option.
     * Added Last_query_cost status variable that reports optimizer cost
       for last compiled query.
     * Added option --to-last-log to mysqlbinlog, for use in conjunction
       with --read-from-remote-server.
     * 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.
     * 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
     * For replication of MEMORY (HEAP) tables: Made the master
       automatically write a DELETE FROM statement to its binary log when
       a MEMORY table is opened for the first time since master's
       startup. This is for the case where the slave has replicated a
       non-empty MEMORY table, then the master is shut down and
       restarted: the table is now empty on master; the DELETE FROM
       empties it on slave too. Note that even with this fix, between the
       master's restart and the first use of the table on master, the
       slave still has out-of-date data in the table. But if you use the
       --init-file option to populate the MEMORY table on the master at
       startup, it ensures that the failing time interval is zero. (Bug
     * When a session having open temporary tables terminates, the
       statement automatically written to the binary log is now DROP
       more robustness.
     * The MySQL server now returns an error if SET SQL_LOG_BIN is issued
       by a user without the SUPER privilege (in previous versions it
       just silently ignored the statement in this case).
     * Changed that when the MySQL server has binary logging disabled
       (that is, no log-bin option was used) then no transaction binlog
       cache is allocated for connections (this should save
       binlog_cache_size bytes of memory (32 kilobytes by default) for
       every connection).
     * 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 less useless error messages
       (no more message duplication; no more message 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.

   Bugs fixed:
     * Strange results with index (x, y) ... WHERE x=val_1 AND y>=val_2
       ORDER BY pk; (Bug #3155)
     * Subquery and order by (Bug #3118)
     * ALTER DATABASE caused the client to hang if the database did not
       exist. (Bug #2333)
     * SLAVE START (which is a deprecated syntax, START SLAVE should be
       used instead) could crash the slave. (Bug #2516)
     * Multiple-table DELETE statements were never replicated by the
       slave if there were any replicate-*-table options. (Bug #2527)
     * The MySQL server did not report any error if the query (submitted
       through mysql_real_query() or mysql_prepare()) was terminated by
       garbage characters (which can happen if you pass a wrong length
       parameter to mysql_real_query() or mysql_prepare()); the result
       was that the garbage characters were written into the binary log.
       (Bug #2703)
     * Replication: If a client connects to a slave server and issues an
       administrative statement for a table (for example, OPTIMIZE TABLE
       or REPAIR TABLE), this could sometimes stop the slave SQL thread.
       This does not lead to any corruption, but you must use START SLAVE
       to get replication going again. (Bug #1858)
     * Made clearer the error message which one gets when an update is
       refused because of the read-only option. (Bug #2757)
     * Fixed that replicate-wild-*-table rules apply to ALTER DATABASE
       when the table pattern is '%', like it is already the case for
     * Fixed that when a Rotate event is found by the slave SQL thread in
       the middle of a transaction, the value of Relay_Log_Pos in SHOW
       SLAVE STATUS remains correct. (Bug #3017)
     * Corrected the master's binary log position that InnoDB reports
       when it is doing a crash recovery on a slave server. (Bug #3015)
     * Changed the column Seconds_Behind_Master in SHOW SLAVE STATUS to
       never show a value of -1. (Bug #2826)
     * Changed that when a DROP TEMPORARY TABLE statement is
       automatically written to the binlog when a session ends, the
       statement is recorded with an error code of value zero (this
       ensures that killing a SELECT on the master does not result in a
       superfluous error on the slave). (Bug #3063)
     * Changed that when a thread handling INSERT DELAYED (also known as
       a delayed_insert thread) is killed, its statements are recorded
       with an error code of value zero (killing such a thread does not
       endanger replication, so we thus avoid a superfluous error on the
       slave). (Bug #3081)
     * Fixed deadlock when two START SLAVE commands were run at the same
       time. (Bug #2921)
     * Fixed that a statement never triggers a superfluous error on the
       slave, if it must be excluded given the replicate-* options. The
       bug was that if the statement had been killed on the master, the
       slave would stop. (Bug #2983)
     * The --local-load option of mysqlbinlog now requires an argument.
     * Fixed a segmentation fault when running LOAD DATA FROM MASTER
       after RESET SLAVE. (Bug #2922)
     * mysqlbinlog --read-from-remote-server read all binary logs
       following the one that was requested. It now stops at the end of
       the requested file, the same as it does when reading a local
       binary log. There is an option --to-last-log to get the old
       behavior. (Bug #3204)
     * Fixed mysqlbinlog --read-from-remote-server to print the exact
       positions of events in the "at #" lines. (Bug #3214)
     * Fixed a rare error condition that caused the slave SQL thread
       spuriously to print the message Binlog has bad magic number and
       stop when it was not necessary to do so. (Bug #3401)
     * Fixed mysqlbinlog not to forget to print a USE statement under
       rare circumstances where the binary log contained a LOAD DATA
       INFILE statement. (Bug #3415)
     * Fixed a memory corruption when replicating a LOAD DATA INFILE when
       the master had version 3.23. (Bug #3422)
     * Multiple-table DELETE statements were always replicated by the
       slave if there were some replicate-*-ignore-table options and no
       replicate-*-do-table options. (Bug #3461)
     * Fixed a crash of the MySQL slave server when it was built with
       --with-debug and replicating itself. (BUG #3568)
     * Fixed that in some replication error messages, a very long query
       caused the rest of the message to be invisible (truncated), by
       putting the query last in the message. (Bug #3357)
     * If server-id was not set using startup options but with SET
       GLOBAL, the replication slave still complained that it was not
       set. (Bug #3829)
     * 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 honour the value of lower_case_table_names.
       (Bug #4066)
     * 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)
     * Fixed incorrect destruction of expression which led to crash of
       server on complex AND/OR expressions if query was ignored (either
       by a replication server because of replicate-*-table rules, or by
       any MySQL server because of a syntax error). (Bug #3969, Bug

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

MySQL 5.0.1-alpha-snapshot has been releasedLenz Grimmer3 Aug