Released on 1 Sep 2000
MySQL 3.23.23 Changelog

End of Product Lifecycle. Active development and support for MySQL Database Server versions 3.23, 4.0, and 4.1 has ended. For details, see Please consider upgrading to a recent version. Further updates to the content of this manual will be minimal. All formats of this manual will continue to be available until 31 Dec 2010.

  • Changed sort order for 'German'; all tables created with 'German' sortorder must be repaired with REPAIR TABLE or myisamchk before use!

  • Added --core-file option to mysqld to get a core file on Linux if mysqld dies on the SIGSEGV signal.

  • MySQL client mysql now starts with option --no-named-commands (-g) by default. This option can be disabled with --enable-named-commands (-G). This may cause incompatibility problems in some cases, for example, in SQL scripts that use named commands without a semicolon! Long format commands still work from the first line.

  • Fixed a problem when using many pending DROP TABLE statements at the same time.

  • Optimizer didn't use keys properly when using LEFT JOIN on an empty table.

  • Added shorter help text when invoking mysqld with incorrect options.

  • Fixed nonfatal free() bug in mysqlimport.

  • Fixed bug in MyISAM index handling of DECIMAL/NUMERIC keys.

  • Fixed a bug in concurrent insert in MyISAM tables. In some contexts, usage of MIN(key_part) or MAX(key_part) returned an empty set.

  • Updated mysqlhotcopy to use the new FLUSH TABLES table_list syntax. Only tables which are being backed up are flushed now.

  • Changed behavior of --enable-thread-safe-client so that both nonthreaded (-lmysqlclient) and threaded (-lmysqlclient_r) libraries are built. Users who linked against a threaded -lmysqlclient need to link against -lmysqlclient_r now.

  • Added atomic RENAME TABLE command.

  • Do not count NULL values in COUNT(DISTINCT ...).

  • Changed ALTER TABLE, LOAD DATA INFILE on empty tables and INSERT ... SELECT ... on empty tables to create nonunique indexes in a separate batch with sorting. This makes these statements much faster when you have many indexes.

  • ALTER TABLE now logs the first used insert_id correctly.

  • Fixed crash when adding a default value to a BLOB column.

  • Fixed a bug with DATE_ADD/DATE_SUB where it returned a datetime instead of a date.

  • Fixed a problem with the thread cache which made some threads show up as ***DEAD*** in SHOW PROCESSLIST.

  • Fixed a lock in our thr_rwlock code, which could make selects that run at the same time as concurrent inserts crash. This affects only systems that don't have the pthread_rwlock_rdlock code.

  • When deleting rows with a nonunique key in a HEAP table, all rows weren't always deleted.

  • Fixed bug in range optimizer for HEAP tables for searches on a part index.

  • Fixed SELECT on part keys to work with BDB tables.

  • Fixed INSERT INTO bdb_table ... SELECT to work with BDB tables.

  • CHECK TABLE now updates key statistics for the table.

  • ANALYZE TABLE now only updates tables that have been changed since the last ANALYZE TABLE. Note that this is a new feature and tables are not marked to be analyzed until they are updated in any way with 3.23.23 or newer. For older tables, you have to do CHECK TABLE to update the key distribution.

  • Fixed some minor privilege problems with CHECK TABLE, ANALYZE TABLE, REPAIR TABLE and SHOW CREATE statements.

  • Added CHANGE MASTER TO statement.

  • Added FAST, QUICK EXTENDED check types to CHECK TABLES.

  • Changed myisamchk so that --fast and --check-only-changed are also honored with --sort-index and --analyze.

  • Fixed fatal bug in LOAD TABLE FROM MASTER that did not lock the table during index re-build.

  • LOAD DATA INFILE broke replication if the database was excluded from replication.


  • SLAVE STOP now does not return until the slave thread actually exits.

  • Full-text search using the MATCH() function and FULLTEXT index type (for MyISAM files). This makes FULLTEXT a reserved word.