4.16.1 Mise à jour de a 3.22 vers 3.23

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 mysqldumps 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