Changes in release 3.23.0
-------------------------
* A new table handler library (`MyISAM') with a lot of new features.
Note:MyISAM.
* 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(X)' is 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 'e''' (if the line doesn't display correctly, the
latter 'e' means a French 'e' with a dot above) 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 table_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 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-database' 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' a
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
<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
Version 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 enhancement 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.
* Upgraded `readline' to 4.0.
* New `CREATE TABLE' options: `PACK_KEYS' and `CHECKSUM'.
* Added `mysqld' option `--default-table-type'.