End of Product LifecycleActive development and support for MySQL Database Server versions 3.23, 4.0, and 4.1 has ended. For details, see http://www.mysql.com/about/legal/lifecycle/#calendar. Please consider upgrading to a recent version. Further updates to the content of this manual will be minimal. All formats of this manual will continue to be available until 31 Dec 2010.
Functionality Added or Changed
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), permitting the timestamp length to indicate the desired number of digits of fractions of a second.
Replication: Replication now
works with RAND() and user
variables @var.
The --opt option for
mysqldump now is enabled by default, as are
all the options implied by
--opt.
SLAVE START and SLAVE
STOP are no longer accepted by the query parser; use
START SLAVE and
STOP SLAVE instead.
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.
If one creates a too long
CHAR/VARCHAR
it is now automatically changed to
TEXT or
BLOB; One get a warning in this
case.
BTREE index on MEMORY
(HEAP) tables.
New CRC32() function to compute
cyclic redundancy check value.
Added new
mysql_get_server_version() C
API client function.
Character sets to be defined per column, table and database.
SHOW FULL COLUMNS FROM
shows column
comments.
tbl_name
Permit empty index lists to be specified for USE
INDEX, IGNORE INDEX, and
FORCE INDEX.
Server side help for all MySQL functions. One can now type
help week in the mysql
client and get help for the WEEK()
function.
EXPLAIN
SELECT now can be killed. See
Section 12.4.6.3, “KILL Syntax”.
SELECT ... FROM DUAL is an alias for
SELECT .... (To be compatible with some
other database systems).
New function IS_USED_LOCK() for
determining the connection identifier of the client that holds
a given advisory lock.
SERIAL DEFAULT VALUE added as an alias for
AUTO_INCREMENT.
One can add a comment per column in
CREATE TABLE.
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)
SELECT .. LIMIT 0 did not return the proper
row count for SQL_CALC_FOUND_ROWS.
DROP TEMPORARY TABLE now drops only
temporary tables and doesn't end transactions.
Added --compatible option to
mysqldump for producing output that is
compatible with other database systems or with older MySQL
servers.
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;
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.
TRUE and FALSE added as
alias for 1 and 0, respectively.
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.
Subqueries: SELECT * from t1 where t1.a=(SELECT t2.b
FROM t2).
New more secure client authentication based on 45-byte
passwords in the user table.
(CVE-2000-0981)
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.
The mysql command-line client attempted
to interpret quotation marks within comments. (Bug #539)
In CREATE TABLE the attribute
SERIAL is now an alias for BIGINT
UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
Added old-password command to
mysqladmin for changing password but
storing it using the old password-hashing format.
New CONVERT(... USING ...)
syntax for converting string values between character sets.
Multi-line queries: You can now issue several queries at once and then read the results in one go.
One can specify a data type for a column in
CREATE TABLE ...
SELECT by defining the column in the
CREATE TABLE part.
CREATE TABLE foo (a TINYINT NOT NULL) SELECT b+1 AS a FROM bar;
New operators integer MOD integer and
integer DIV integer. DIV
is now a reserved word.
SHOW [COUNT(*)] WARNINGS shows warnings
from the last command.
Added support for UNION in
derived tables.
VARCHARACTER is an alias for
VARCHAR.
CHAR BYTE is an alias for the
CHAR BINARY data type.
In CREATE TABLE
foo (a INT not null primary key) the
PRIMARY word is now optional.
Added new
VARIANCE(
function that returns the variance of
expr)expr
New CHARSET() and
COLLATION() functions to return
the character set and collation of a string.
Added record_in_range() method to
MERGE tables to be able to choose the
correct index when there are many to choose from.
REPAIR TABLE and
OPTIMIZE TABLE now can be
killed. See Section 12.4.6.3, “KILL Syntax”.
Support for GIS (Geometrical data). See Chapter 16, Spatial Extensions.
libmysqlclient did not always fetch column
default values correctly.
Aliases are now forced in derived tables, as per standard SQL.
New faster client/server protocol that supports prepared statements, bound parameters, and bound result columns, binary transfer of data, warnings.
One can specify many temporary directories to be used in a
round-robin fashion with:
--tmpdir=dirname1:dirname2:dirname3.
Faster embedded server (new internal communication protocol).
Permit the ANSI_QUOTES SQL
mode to be changed on the fly.
Unicode (UTF8) support.
Renamed SHOW
MASTER LOGS statement to SHOW
BINARY LOGS.
Added database and real table name (in case of alias) to the
MYSQL_FIELD structure.
Permit
DEFAULT(
in expressions; it produces the column's default value.
col_name)
Permit index type to be specified explicitly for some storage
engines using USING
syntax in index
definition.
type_name

User Comments
Add your own comment.