End of Product Lifecycle. Active development and support for MySQL database server versions 3.23, 4.0, and 4.1 has ended. However, for MySQL 4.0 and 4.1, there is still extended support available. For details, see http://www.mysql.com/company/legal/lifecycle/#calendar. According to the MySQL Lifecycle Policy (see http://www.mysql.com/company/legal/lifecycle/#policy), only Security and Severity Level 1 issues will still be fixed for MySQL 4.0 and 4.1. Please consider upgrading to a recent version (MySQL 5.0 or 5.1).
Functionality added or changed:
Warning: Incompatible change:
TIMESTAMP is now returned as a string of
type 'YYYY-MM-DD HH:MM:SS' and different
timestamp lengths are not supported.
This change was necessary for SQL standards compliance. In a future version, a further change will be made (backward compatible with this change), allowing the timestamp length to indicate the desired number of digits of fractions of a second.
Renamed SHOW MASTER LOGS statement to
SHOW BINARY LOGS.
Allow
DEFAULT(
in expressions; it produces the column's default value.
col_name)
Added --compatible option to
mysqldump for producing output that is
compatible with other database systems or with older MySQL
servers.
The --opt option for
mysqldump now is enabled by default, as are
all the options implied by --opt.
New CHARSET() and
COLLATION() functions to return the
character set and collation of a string.
Allow index type to be specified explicitly for some storage
engines via USING type_name syntax in index
definition.
New function IS_USED_LOCK() for determining
the connection identifier of the client that holds a given
advisory lock.
New more secure client authentication based on 45-byte
passwords in the user table.
(CVE-2000-0981)
Added old-password command to
mysqladmin for changing password but
storing it using the old password-hashing format.
New CRC32() function to compute cyclic
redundancy check value.
On Windows, we are now using shared memory to communicate
between server and client when they are running on the same
machine and you are connecting to
localhost.
REPAIR TABLE of MyISAM
tables now uses less temporary disk space when sorting char
columns.
DATE/DATETIME checking
is now a bit stricter to support the ability to automatically
distinguish between date, datetime, and time with
microseconds. For example, dates of type YYYYMMDD
HHMMDD are no longer supported; you must either have
separators between each
DATE/TIME part or not at
all.
Server side help for all MySQL functions. One can now type
help week in the mysql
client and get help for the week()
function.
Added new mysql_get_server_version() C API
client function.
Fixed bug in libmysqlclient that fetched
column defaults.
Fixed bug in mysql command-line client in
interpreting quotes within comments. (Bug#539)
Added record_in_range() method to
MERGE tables to be able to choose the right
index when there are many to choose from.
Replication now works with RAND() and user
variables @var.
Allow one to change mode for ANSI_QUOTES on
the fly.
EXPLAIN SELECT now can be killed. See
Section 13.5.5.3, “KILL Syntax”.
REPAIR TABLE and OPTIMIZE
TABLE now can be killed. See Section 13.5.5.3, “KILL Syntax”.
Allow empty index lists to be specified for USE
INDEX, IGNORE INDEX, and
FORCE INDEX.
DROP TEMPORARY TABLE now drops only
temporary tables and doesn't end transactions.
Added support for UNION in derived tables.
New faster client/server protocol that supports prepared statements, bound parameters, and bound result columns, binary transfer of data, warnings.
Added database and real table name (in case of alias) to the
MYSQL_FIELD structure.
Multi-line queries: You can now issue several queries at once and then read the results in one go.
In CREATE TABLE foo (a INT not null primary
key) the PRIMARY word is now
optional.
In CREATE TABLE the attribute
SERIAL is now an alias for BIGINT
UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
SELECT ... FROM DUAL is an alias for
SELECT .... (To be compatible with some
other database systems).
If one creates a too long
CHAR/VARCHAR it's now
automatically changed to TEXT or
BLOB; One get a warning in this case.
One can specify the different
BLOB/TEXT types with the
syntax
BLOB( and
length)TEXT(.
MySQL automatically changes it to one of the internal
length)BLOB/TEXT types.
CHAR BYTE is an alias for the CHAR
BINARY data type.
VARCHARACTER is an alias for
VARCHAR.
New operators integer MOD integer and
integer DIV integer. DIV
is now a reserved word.
SERIAL DEFAULT VALUE added as an alias for
AUTO_INCREMENT.
TRUE and FALSE added as
alias for 1 and 0, respectively.
Aliases are now forced in derived tables, as per standard SQL.
Fixed SELECT .. LIMIT 0 to return proper
row count for SQL_CALC_FOUND_ROWS.
One can specify many temporary directories to be used in a
round-robin fashion with:
--tmpdir=dirname1:dirname2:dirname3.
Subqueries: SELECT * from t1 where t1.a=(SELECT t2.b
FROM t2).
Derived tables:
SELECT a.col1, b.col2
FROM (SELECT MAX(col1) AS col1 FROM root_table) a,
other_table b
WHERE a.col1=b.col1;
Character sets to be defined per column, table and database.
Unicode (UTF8) support.
New CONVERT(... USING ...) syntax for
converting string values between character sets.
BTREE index on MEMORY
(HEAP) tables.
Faster embedded server (new internal communication protocol).
One can add a comment per column in CREATE
TABLE.
SHOW FULL COLUMNS FROM
shows column
comments.
tbl_name
ALTER DATABASE.
Support for GIS (Geometrical data). See Chapter 16, Spatial Extensions.
SHOW [COUNT(*)] WARNINGS shows warnings
from the last command.
One can specify a data type for a column in CREATE
TABLE ... SELECT by defining the column in the
CREATE part.
CREATE TABLE foo (a TINYINT NOT NULL) SELECT b+1 AS a FROM bar;
same as
expr SOUNDS LIKE
exprSOUNDEX(.
expr)=SOUNDEX(expr)
Added new
VARIANCE(
function returns the variance of
expr)expr
One can create a table from the existing table using
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
. The table can be
either normal or temporary.
table (LIKE
table)
New options --reconnect and
--skip-reconnect for the
mysql client, to reconnect automatically or
not if the connection is lost.
START SLAVE (STOP SLAVE)
no longer returns an error if the slave is started (stopped);
it returns a warning instead.
SLAVE START and SLAVE
STOP are no longer accepted by the query parser; use
START SLAVE and STOP
SLAVE instead.

User Comments
Add your own comment.