 |

MySQL 3.23 supports tables of the new MyISAM type and
the old NISAM type. You don't have to convert your old tables to
use these with 3.23. By default, all new tables will be created with
type MyISAM (unless you start mysqld with the
--default-table-type=isam option. You can change an ISAM
table to a MyISAM table with ALTER TABLE or the Perl script
mysql_convert_table_format .
3.22 and 3.21 clients will work without any problems with a 3.23 server.
The following lists what you have to watch out for when upgrading to 3.23:
INNER and DELAYED are now reserved words.
FLOAT(4) and FLOAT(8) are now true floating point types.
- When declaring
DECIMAL(length,dec) the length argument no
longer includes a place for the sign or the decimal point.
- A
TIME string must now be of one of the following formats: [[[DAYS] [H]H:]MM:]SS[.fraction] or [[[[[H]H]H]H]MM]SS[.fraction]
LIKE now compares strings using the same character comparison rules as '=' .
If you require the old behavior, you can compile MySQL with
the CXXFLAGS=-DLIKE_CMP_TOUPPER flag.
- When you check/repair tables you should use
myisamchk for MyISAM
tables (.MYI ) and isamchk for ISAM (.ISM ) tables.
- If you want your
mysqldump s to be compatible between MySQL 3.22 and 3.23,
you should not use the --opt or --full option to
mysqldump .
- Check all your calls to
DATE_FORMAT() to make sure there is a `%'
before each format character.
-
mysql_fetch_fields_direct is now a function (it was a macro) and
it returns a pointer to a MYSQL_FIELD instead of a
MYSQL_FIELD .
-
mysql_num_fields() can no longer be used on a MYSQL* object (it's
now a function that takes MYSQL_RES* as an argument. You should now
use mysql_field_count() instead.
-
In
MySQL 3.22, the output of SELECT DISTINCT ... was
almost always sorted. In 3.23, you must use GROUP BY or
ORDER BY to obtain sorted output.
-
SUM() now returns NULL , instead of 0, if there is no matching
rows. This is according to ANSI SQL.
-
New restricted words:
CASE, THEN, WHEN, ELSE and END
|