|
The major difference between release 3.23 and releases 3.22 and 3.21 is that
3.23 contains a new ISAM library (MyISAM), which is more tuned for SQL
than the old ISAM was.
The 3.23 release is under development, and things will be added at a
fast pace to it. For the moment we recommend this version only for
users that desperately need a new feature that is found only in this
release (like big file support and machine-independent tables). (Note
that all new functionality in MySQL 3.23 is extensively tested, but as
this release involves much new code, it's difficult to test everything). This
version should start to stabilize as soon as we get subselects included
in it.
-
Fixed some Y2K problems in the new date handling in 3.23.
-
Fixed problem with
SELECT DISTINCT ... ORDER BY RAND() .
-
Added patches by Sergei A. Golubchik for text searching on the MyISAM level.
-
Fixed cache overflow problem when using full joins without keys.
-
Fixed some configure issues.
-
Some small changes to make parsing faster.
-
ALTER TABLE + adding a column after the last field didn't work.
-
Fixed problem when using an auto_increment column in two keys
-
One can now with MyISAM have the auto_increment part as a sub part:
CREATE TABLE foo (a int not null auto_increment, b char(5), primary key (b,a))
-
Fixed bug in MyISAM with packed char keys that could be NULL.
-
AS on fieldname with CREATE TABLE table_name SELECT ... didn't
work.
-
Allow use of
NATIONAL and NCHAR when defining character columns.
This is the same as not using BINARY .
-
Don't allow
NULL columns in a PRIMARY KEY (only in UNIQUE
keys).
-
Clear
LAST_INSERT_ID if in uses this in ODBC:
WHERE auto_increment_column IS NULL . This seams to fix some problems
with Access.
-
SET SQL_AUTO_IS_NULL=0|1 now turns off/on the handling of
searching after the last inserted row with WHERE
auto_increment_column IS NULL .
-
Added new mysqld variable
concurrency for Solaris.
-
Added option
--relative to mysqladmin to make
extended-status more useful to monitor changes.
-
Fixed bug when using
COUNT(DISTINCT..) on an empty table.
-
Added support for the Chinese character set GBK.
-
Fixed problem with
LOAD DATA INFILE and BLOB columns.
-
Added bit operator
~ (negation).
-
Inserting a
DATETIME into a TIME column will not anymore
try to store 'days' in it.
-
Fixed problem with storage of float/double on low endian machines.
(This affected
SUM() .)
-
Added connect timeout on TCP/IP connections.
-
Fixed problem with
LIKE "%" on a index that may have NULL values.
-
REVOKE ALL PRIVILEGES didn't revoke all privileges.
-
Allow creation of temporary tables with same name as the original table.
-
When granting a user a grant option for a database, he couldn't grant
privileges to other users.
-
New command:
SHOW GRANTS FOR user (by Sinisa).
-
New
date_add syntax: date/datetime + INTERVAL # interval_type .
By Joshua Chamas.
-
Fixed privilege check for
LOAD DATA REPLACE .
-
Automatic fixing of broken include files on Solaris 2.7
-
Some configure issues to fix problems with big file system detection.
-
REGEXP is now case insensitive if you use not binary strings.
Added patches for MIT-pthreads on NetBSD.
-
Fixed range bug in MyISAM.
-
ASC is now the default again for ORDER BY .
-
Added
LIMIT to UPDATE .
-
New client function:
mysql_change_user() .
-
Added character set to
SHOW VARIABLES .
-
Added support of
--[whitespace] comments.
-
Allow
INSERT into tbl_name VALUES () , that is, you may now specify
an empty value list to insert a row in which each column is set to its
default value.
-
Changed
SUBSTRING(text FROM pos) to conform to ANSI SQL. (Before this
construct returned the rightmost 'pos' characters).
-
SUM(..) with GROUP BY returned 0 on some systems.
-
Changed output for
SHOW TABLE STATUS .
-
Added
DELAY_KEY_WRITE option to CREATE TABLE .
-
Allow
AUTO_INCREMENT on any key part.
-
Fixed problem with
YEAR(NOW()) and YEAR(CURDATE()) .
-
Added
CASE construct.
-
New function
COALESCE() .
-
Fixed range optimizer bug:
SELECT * FROM table_name WHERE
key_part1 >= const AND (key_part2 = const OR key_part2 = const) . The
bug was that some rows could be duplicated in the result.
-
Running
myisamchk without -a updated the index
distribution wrong.
-
SET SQL_LOW_PRIORITY_UPDATES=1 gave parse error before.
-
You can now update indexes columns that are used in the
WHERE clause.
UPDATE tbl_name SET KEY=KEY+1 WHERE KEY > 100
-
Date handling should now be a bit faster.
-
Added handling of fuzzy dates (dates where day or month is 0):
(Like: 1999-01-00)
-
Fixed optimization of
SELECT ... WHERE key_part1=const1 AND
key_part_2=const2 AND key_part1=const4 AND key_part2=const4 ; Indextype
should be range instead of ref .
-
Fixed
egcs 1.1.2 optimizer bug (when using BLOB s) on Linux Alpha.
-
Fixed problem with
LOCK TABLES combined with DELETE FROM table .
-
MyISAM tables now allow keys on
NULL and BLOB/TEXT columns.
-
The following join is now much faster:
SELECT ... FROM t1 LEFT JOIN t2 ON ... WHERE t2.not_null_column IS NULL .
-
ORDER BY and GROUP BY can be done on functions.
-
Changed handling of 'const_item' to allow handling of
ORDER BY RAND() .
-
Indexes are now used for
WHERE key_column = function .
-
Indexes are now used for
WHERE key_column = column_name even if
the columns are not identically packed.
-
Indexes are now used for
WHERE column_name IS NULL .
-
Changed heap tables to be stored in low_byte_first order (to make it easy
to convert to MyISAM tables)
-
Automatic change of HEAP temporary tables to MyISAM tables in case of
'table is full' errors.
-
Added option
--init-file=file_name to mysqld .
-
COUNT(DISTINCT value,[value,...])
-
CREATE TEMPORARY TABLE now creates a temporary table, in its own
namespace, that is automatically deleted if connection is dropped.
-
New keywords (required for
CASE ): CASE, THEN, WHEN, ELSE and END .
-
New functions
EXPORT_SET() and MD5() .
-
Support for the GB2312 Chinese character set.
-
Fixed some compilation problems.
|