You can create in-memory HEAP tables which are extremely fast for
lookups.
Support for big files (63 bit) on OSes that support big files.
New function LOAD_FILE(filename) to get the contents of a file as a
string value.
New operator <=> which will act as = but will return 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(4) or FLOAT(8) are not rounded
on storage and may be in scientific notation (1.0 E+10) when retrieved.
REPLACE is now faster than before.
Changed LIKE character comparison to behave as =;
This means that 'e' LIKE 'é' is now true.
SHOW TABLE STATUS returns a lot of information about the tables.
Added LIKE to the SHOW STATUS command.
Added privilege column to SHOW COLUMNS.
Added columns packed and comment to SHOW INDEX.
Added comments to tables (with CREATE TABLE ... COMMENT "xxx").
Added UNIQUE, as in
CREATE TABLE table_name (col int not null UNIQUE)
New create syntax: CREATE TABLE 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 will describe 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 case sensitively.
Added option --skip-show-databases to mysqld.
Check if a row has changed in an UPDATE now also works with
BLOB/TEXT columns.
Added the INNER join syntax. NOTE: This made INNER
an reserved word!
Added support for netmasks to the hostname in the MySQL 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 will
ensure 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) second fraction part from DATETIME.
Added the LOW_PRIORITY attribute to LOAD DATA INFILE.
The default index name now uses the same case as the used column name.
Changed default number of connections to 100.
Use bigger buffers when using LOAD DATA INFILE.
DECIMAL(x,y) now works according to ANSI SQL.
Added aggregate UDF functions. Thanks to Andreas F. Bobak
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 not sorted anymore.
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 LIBEWRAP; Patch by Henning P . Schmiedehausen.
Don't allow AUTO_INCREMENT for other than numerical columns.
Using AUTO_INCREMENT will now automatically make 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 enchancement was contributed by David
Fox (dsfox@cogsci.ucsd.edu).
Added a --enable-large-files/--disable-large-files switch to
configure. See `configure.in' for some systems where this is
automatically turned off because of broken implementations.