Changes in release 3.23.28
--------------------------
* Added new options `--pager[=...]', `--no-pager', `--tee=...' and
`--no-tee' to the `mysql' client. The new corresponding
interactive commands are `pager', `nopager', `tee' and `notee'.
Note:`mysql', `mysql --help' and the interactive help for
more information.
* Fixed crash when automatic repair of `MyISAM' table failed.
* Fixed a major performance bug in the table locking code when one
constantly had a LOT of `SELECT', `UPDATE' and `INSERT' statements
running. The symptom was that the `UPDATE' and `INSERT' queries
were locked for a long time while new `SELECT' statements were
executed before the updates.
* When reading `options_files' with `mysql_options()' the
`return-found-rows' option was ignored.
* One can now specify `interactive-timeout' in the option file that
is read by `mysql_options()'. This makes it possible to force
programs that run for a long time (like `mysqlhotcopy') to use
`interactive_timeout' instead of `wait_timeout'.
* Added to the slow query log the time and the user name for each
logged query. If you are using `--log-long-format' then also
queries that do not use an index are logged, even if the query
takes less than `long_query_time' seconds.
* Fixed a problem in `LEFT JOIN' which caused all columns in a
reference table to be `NULL'.
* Fixed a problem when using `NATURAL JOIN' without keys.
* Fixed a bug when using a multi-part keys where the first part was
of type `TEXT' or `BLOB'.
* `DROP' of temporary tables wasn't stored in the update/binary log.
* Fixed a bug where `SELECT DISTINCT * ... LIMIT #' only returned
one row.
* Fixed a bug in the assembler code in `strstr()' for sparc and
cleaned up the `global.h' header file to avoid a problem with bad
aliasing with the compiler submitted with RedHat 7.0. (Reported by
Trond Eivind Glomsrød)
* The option `--skip-networking' now works properly on NT.
* Fixed a long outstanding bug in the `ISAM' tables when a row with
a length of more than 65K was shortened by a single byte.
* Fixed a bug in `MyISAM' when running multiple updating processes on
the same table.
* Allow one to use `FLUSH TABLE tablename'.
* Added `--replicate-ignore-table', `--replicate-do-table',
`--replicate-wild-ignore-table', `--replicate-wild-do-table'.
* Changed all log files to use our own `IO_CACHE' mechanism instead
of `FILE' to avoid OS problems when there are many files open.
* Added options `--open-files' and `--timezone' to `safe_mysqld'.
* Fixed a fatal bug in `CREATE TEMPORARY TABLE ... SELECT ...'.
* Fixed a problem with `CREATE TABLE ... SELECT NULL'.
* Added variables `large_file_support',`net_read_timeout',
`net_write_timeout' and `query_buffer_size' to `SHOW VARIABLES'.
* Added status variables `created_tmp_files' and `sort_merge_passes'
to `SHOW STATUS'.
* Fixed a bug where we didn't allow an index name after the `FOREIGN
KEY' definition.
* Added `TRUNCATE table_name' as a synonym for `DELETE FROM
table_name'.
* Fixed a bug in a BDB key compare function when comparing part keys.
* Added variable `bdb_lock_max' to `mysqld'.
* Added more tests to the benchmark suite.
* Fixed an overflow bug in the client code when using overly long
database names.
* `mysql_connect()' now aborts on Linux if the server doesn't answer
in `timeout' seconds.
* `SLAVE START' did not work if you started with
`--skip-slave-start' and had not explicitly run `CHANGE MASTER TO'.
* Fixed the output of `SHOW MASTER STATUS' to be consistent with
`SHOW SLAVE STATUS'. (It now has no directory in the log name.)
* Added `PURGE MASTER LOGS TO'.
* Added `SHOW MASTER LOGS'.
* Added `--safemalloc-mem-limit' option to `mysqld' to simulate
memory shortage when compiled `--with-debug=full'.
* Fixed several coredumps in out-of-memory conditions.
* `SHOW SLAVE STATUS' was using an uninitialized mutex if the slave
had not been started yet.
* Fixed bug in `ELT()' and `MAKE_SET()' when the query used a
temporary table.
* `CHANGE MASTER TO' without specifying `MASTER_LOG_POS' would set
it to 0 instead of 4 and hit the magic number in the master binlog.
* `ALTER TABLE ... ORDER BY ...' syntax added. This will create the
new table with the rows in a specific order.