New keywords used: INTERVAL, EXPLAIN, READ,
WRITE, BINARY.
Added ODBC function CHAR(num,...).
New operator IN. This uses a binary search to find a match.
New command LOCK TABLES nom_table [AS alias] {READ|WRITE} ...
Added --log-update option to mysqld, to get a log suitable for
incremental updates.
New command EXPLAIN SELECT ... to get information about how the
optimizer will do the join.
For easier client code, the client should no longer use
FIELD_TYPE_TINY_BLOB, FIELD_TYPE_MEDIUM_BLOB,
FIELD_TYPE_LONG_BLOB or FIELD_TYPE_VAR_STRING (as
previously returned by mysql_list_fields). You should instead only use
FIELD_TYPE_BLOB or FIELD_TYPE_STRING. If you want exact
types, you should use the command SHOW FIELDS.
Added varbinary syntax: 0x###### which can be used as a string
(default) or a number.
FIELD_TYPE_CHAR is renamed to FIELD_TYPE_TINY.
Changed all fields to C++ classes.
Removed FORM struct.
Fields with DEFAULT values no longer need to be NOT NULL.
New field types:
ENUM
A string which can take only a couple of defined values. The value is
stored as a 1-3 byte number that is mapped automatically to a string.
This is sorted according to string positions!
SET
A string which may have one or many string values separated with ','.
The string is stored as a 1-, 2-, 3-, 4- or 8-byte number where each bit stands
for a specific set member. This is sorted according to the unsigned value
of the stored packed number.
Now all function calculation is done with double or long long.
This will provide the full 64-bit range with bit functions and fix some
conversions that previously could result in precision losses. One should
avoid using unsigned long long columns with full 64-bit range
(numbers bigger than 9223372036854775807) because calculations are done
with signed long long.
ORDER BY will now put NULL field values first. GROUP BY
will also work with NULL values.
Full WHERE with expressions.
New range optimizer that can resolve ranges when some keypart prefix is
constant. Example:
mysql> SELECT * FROM nom_table
WHERE key_part_1="customer"
AND key_part_2>=10 AND key_part_2<=10;