D.1.2 Modifications de la version 3.23.2

  • 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 nom_table 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 BLOBs) 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.