End of Product Lifecycle. Active 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.
A new storage engine library (MyISAM) with
a lot of new features. See
Section 13.1, “The MyISAM Storage Engine”.
You can create in-memory HEAP tables which
are extremely fast for lookups.
Support for big files (63-bit) on OSs that support big files.
New function
LOAD_FILE(filename) to get the
contents of a file as a string value.
New <=> operator that acts as
= but returns TRUE if both arguments are
NULL. This is useful for comparing changes
between tables.
Added the ODBC 3.0 EXTRACT(interval FROM
datetime) function.
Columns defined as
FLOAT( are not
rounded on storage and may be in scientific notation (1.0
E+10) when retrieved.
X)
REPLACE is now faster than
before.
Changed LIKE character comparison
to behave as =;
This means that 'e' LIKE 'é' is now true.
(If the line doesn't display correctly, the latter 'e' is a
French 'e' with an acute accent above.)
SHOW TABLE STATUS returns a lot
of information about the tables.
Added LIKE to the
SHOW STATUS command.
Added Privileges column to
SHOW COLUMNS.
Added Packed and Comment
columns to SHOW INDEX.
Added comments to tables (with CREATE TABLE ...
COMMENT ').
xxx'
Added UNIQUE, as in CREATE TABLE
tbl_name (col INT NOT NULL
UNIQUE)
New create syntax: CREATE TABLE
tbl_name SELECT ...
New create syntax: CREATE TABLE IF NOT EXISTS
...
Allow creation of CHAR(0) columns.
DATE_FORMAT() now requires
“%” before any format
character.
DELAYED is now a reserved word (sorry about
that :( ).
An example procedure is added: analyse,
file: sql_analyse.c. This describes the
data in your query. Try the following:
SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements,[max_memory]])
This procedure is extremely useful when you want to check the data in your table!
BINARY cast to force a string to be
compared in case-sensitive fashion.
Added --skip-show-database
option to mysqld.
Check whether a row has changed in an
UPDATE now also works with
BLOB/TEXT
columns.
Added the INNER join syntax. Note that this
change makes INNER a reserved word!
Added support for netmasks to the host name in the MySQL grant
tables. You can specify a netmask using the
IP/NETMASK syntax.
If you compare a NOT NULL DATE/DATETIME
column with IS NULL, this is
changed to a compare against 0 to satisfy
some ODBC applications. (By <shreeve@uci.edu>.)
NULL IN (...) now returns
NULL instead of 0. This
ensures that null_column NOT IN (...)
doesn't match NULL values.
Fix storage of floating-point values in
TIME columns.
Changed parsing of TIME strings
to be more strict. Now the fractional second part is detected
(and currently skipped). The following formats are supported:
[[DAYS] [H]H:]MM:]SS[.fraction]
[[[[[H]H]H]H]MM]SS[.fraction]
Detect (and ignore) fractional second part from
DATETIME.
Added the LOW_PRIORITY attribute to
LOAD DATA
INFILE.
The default index name now uses the same case as the column name on which the index name is based.
Changed default number of connections to 100.
Use bigger buffers when using
LOAD DATA
INFILE.
DECIMAL(x,y) now works according to
standard SQL.
Added aggregate user-defined functions. Thanks to Andreas F.
Bobak (<bobak@relog.ch>) for this!
LAST_INSERT_ID() is now updated
for INSERT INTO
... SELECT.
Some small changes to the join table optimizer to make some joins faster.
SELECT
DISTINCT is much faster; it uses the new
UNIQUE functionality in
MyISAM. One difference compared to MySQL
3.22 is that the output of DISTINCT is no
longer sorted.
All C client API macros are now functions to make shared
libraries more reliable. Because of this, you can no longer
call mysql_num_fields() on a
MYSQL object, you must use
mysql_field_count() instead.
Added use of LIBWRAP; patch by Henning P.
Schmiedehausen.
Do not allow AUTO_INCREMENT for other than
numerical columns.
Using AUTO_INCREMENT now automatically
makes the column NOT NULL.
Show NULL as the default value for
AUTO_INCREMENT columns.
Added SQL_BIG_RESULT;
SQL_SMALL_RESULT is now default.
Added a shared library RPM. This enhancement was contributed
by David Fox (<dsfox@cogsci.ucsd.edu>).
Added --enable-large-files and
--disable-large-files options to
configure. See
configure.in for some systems where this
is automatically turned off because of broken implementations.
Upgraded readline to 4.0.
New CREATE TABLE options:
PACK_KEYS and CHECKSUM.
Added the --default-table-type
option to mysqld.

User Comments
Add your own comment.