Changes in release 3.22.x (Old; discontinued)
=============================================
The 3.22 version has faster and safer connect code than version 3.21,
as well as a lot of new nice enhancements. As there aren't really any
major changes, upgrading from 3.21 to 3.22 should be very easy and
painless. *Note Upgrading-from-3.21::.
Changes in release 3.22.35
--------------------------
* Fixed problem with `STD()'.
* Merged changes from the newest `ISAM' library from 3.23.
* Fixed problem with `INSERT DELAYED'.
* Fixed a bug core dump when using a `LEFT JOIN'/`STRAIGHT_JOIN' on
a table with only one row.
Changes in release 3.22.34
--------------------------
* Fixed problem with `GROUP BY' on `TINYBLOB' columns; this caused
bugzilla to not show rows in some queries.
* Had to do total recompile of the Windows binary version as VC++
didn't compile all relevant files for 3.22.33 :(
Changes in release 3.22.33
--------------------------
* Fixed problems in Windows when locking tables with `LOCK TABLE'.
* Quicker kill of `SELECT DISTINCT' queries.
Changes in release 3.22.32 (14 Feb 2000)
----------------------------------------
* Fixed problem when storing numbers in timestamps.
* Fix problem with timezones that have half hour offsets.
* Added `mysqlhotcopy', a fast online hot-backup utility for local
MySQL databases. By Tim Bunce.
* New more secure `mysqlaccess'. Thanks to Steve Harvey for this.
* Fixed security problem in the protocol regarding password checking.
* Fixed problem that affected queries that did arithmetic on `GROUP'
functions.
* Fixed a bug in the `ISAM' code when deleting rows on tables with
packed indexes.
Changes in release 3.22.31
--------------------------
* A few small fixes for the Windows version.
Changes in release 3.22.30
--------------------------
* Fixed optimiser problem on `SELECT' when using many overlapping
indexes.
* Disabled floating-point exceptions for FreeBSD to fix core dump
when doing `SELECT FLOOR(POW(2,63))'.
* Added print of default arguments options to all clients.
* Fixed critical problem with the `WITH GRANT OPTION' option.
* Fixed non-critical Y2K problem when writing short date to log
files.
Changes in release 3.22.29 (02 Jan 2000)
----------------------------------------
* Upgraded the configure and include files to match the latest 3.23
version. This should increase portability and make it easier to
build shared libraries.
* Added latest patches to MIT-pthreads for NetBSD.
* Fixed problem with timezones that are < GMT -11.
* Fixed a bug when deleting packed keys in NISAM.
* Fixed problem that could cause MySQL to touch freed memory when
doing very complicated `GROUP BY' queries.
* Fixed core dump if you got a crashed table where an `ENUM' field
value was too big.
* Added `mysqlshutdown.exe' and `mysqlwatch.exe' to the Windows
distribution.
* Fixed problem when doing `ORDER BY' on a reference key.
* Fixed that `INSERT DELAYED' doesn't update timestamps that are
given.
Changes in release 3.22.28 (20 Oct 1999)
----------------------------------------
* Fixed problem with `LEFT JOIN' and `COUNT()' on a column which was
declared `NULL' + and it had a `DEFAULT' value.
* Fixed core dump problem when using `CONCAT()' in a `WHERE' clause.
* Fixed problem with `AVG()' and `STD()' with `NULL' values.
Changes in release 3.22.27
--------------------------
* Fixed prototype in `my_ctype.h' when using other character sets.
* Some configure issues to fix problems with big filesystem
detection.
* Fixed problem when sorting on big `BLOB' columns.
* `ROUND()' will now work on Windows.
Changes in release 3.22.26 (16 Sep 1999)
----------------------------------------
* Fixed core dump with empty `BLOB/TEXT' column argument to
`REVERSE()'.
* Extended `/*! */' with version numbers.
* Changed `SUBSTRING(text FROM pos)' to conform to SQL-99. (Before
this construct returned the rightmost 'pos' characters.)
* Fixed problem with `LOCK TABLES' combined with `DELETE FROM table'
* Fixed problem that `INSERT ... SELECT' didn't use `BIG_TABLES'.
* `SET SQL_LOW_PRIORITY_UPDATES=#' didn't work.
* Password wasn't updated correctly if privileges didn't change on:
`GRANT ... IDENTIFIED BY'
* Fixed range optimiser bug in `SELECT * FROM table_name WHERE
key_part1 >= const AND (key_part2 = const OR key_part2 = const)'.
* Fixed bug in compression key handling in `ISAM'.
Changes in release 3.22.25
--------------------------
* Fixed some small problems with the installation.
Changes in release 3.22.24 (05 Jul 1999)
----------------------------------------
* `DATA' is no longer a reserved word.
* Fixed optimiser bug with tables with only one row.
* Fixed bug when using `LOCK TABLES table_name READ; FLUSH TABLES;'
* Applied some patches for HP-UX.
* `isamchk' should now work on Windows.
* Changed `configure' to not use big file handling on Linux as this
crashes some Red Hat 6.0 systems
Changes in release 3.22.23 (08 Jun 1999)
----------------------------------------
* Upgraded to use Autoconf 2.13, Automake 1.4 and `libtool' 1.3.2.
* Better support for SCO in `configure'.
* Added option `--defaults-file=file_name' to option file handling
to force use of only one specific option file.
* Extended `CREATE' syntax to ignore MySQL Version 3.23 keywords.
* Fixed deadlock problem when using `INSERT DELAYED' on a table
locked with `LOCK TABLES'.
* Fixed deadlock problem when using `DROP TABLE' on a table that was
locked by another thread.
* Add logging of `GRANT/REVOKE' commands in the update log.
* Fixed `isamchk' to detect a new error condition.
* Fixed bug in `NATURAL LEFT JOIN'.
Changes in release 3.22.22 (30 Apr 1999)
----------------------------------------
* Fixed problem in the C API when you called `mysql_close()'
directly after `mysql_init()'.
* Better client error message when you can't open socket.
* Fixed `delayed_insert_thread' counting when you couldn't create a
new delayed_insert thread.
* Fixed bug in `CONCAT()' with many arguments.
* Added patches for DEC 3.2 and SCO.
* Fixed path-bug when installing MySQL as a service on NT.
* MySQL on Windows is now compiled with VC++ 6.0 instead of with
VC++ 5.0.
* New installation setup for MySQL on Windows.
Changes in release 3.22.21
--------------------------
* Fixed problem with `DELETE FROM TABLE' when table was locked by
another thread.
* Fixed bug in `LEFT JOIN' involving empty tables.
* Changed the `mysql.db' column from `CHAR(32)' to `CHAR(60)'.
* `MODIFY' and `DELAYED' are no longer reserved words.
* Fixed a bug when storing days in a `TIME' column.
* Fixed a problem with `Host '...' is not allowed to connect to this
MySQL server' after one had inserted a new MySQL user with a
`GRANT' command.
* Changed to use `TCP_NODELAY' also on Linux (should give faster
TCP/IP connections).
Changes in release 3.22.20 (18 Mar 1999)
----------------------------------------
* Fixed `STD()' for big tables when result should be 0.
* The update log didn't have newlines on some operating systems.
* `INSERT DELAYED' had some garbage at end in the update log.
Changes in release 3.22.19 (Mar 1999: Production)
-------------------------------------------------
* Fixed bug in `mysql_install_db' (from 3.22.17).
* Changed default key cache size to 8M.
* Fixed problem with queries that needed temporary tables with `BLOB'
columns.
Changes in release 3.22.18
--------------------------
* Fixes a fatal problem in 3.22.17 on Linux; after `shutdown' not
all threads died properly.
* Added option `-O flush_time=#' to `mysqld'. This is mostly useful
on Windows and tells how often MySQL should close all unused
tables and flush all updated tables to disk.
* Fixed problem that a `VARCHAR' column compared with `CHAR' column
didn't use keys efficiently.
Changes in release 3.22.17
--------------------------
* Fixed a core dump problem when using `--log-update' and connecting
without a default database.
* Fixed some `configure' and portability problems.
* Using `LEFT JOIN' on tables that had circular dependencies caused
`mysqld' to hang forever.
Changes in release 3.22.16 (Feb 1999: Gamma)
--------------------------------------------
* `mysqladmin processlist' could kill the server if a new user
logged in.
* `DELETE FROM tbl_name WHERE key_column=col_name' didn't find any
matching rows. Fixed.
* `DATE_ADD(column, ...)' didn't work.
* `INSERT DELAYED' could deadlock with status 'upgrading lock'
* Extended `ENCRYPT()' to take longer salt strings than 2 characters.
* `longlong2str' is now much faster than before. For `Intel x86'
platforms, this function is written in optimised assembler.
* Added the `MODIFY' keyword to `ALTER TABLE'.
Changes in release 3.22.15
--------------------------
* `GRANT' used with `IDENTIFIED BY' didn't take effect until
privileges were flushed.
* Name change of some variables in `SHOW STATUS'.
* Fixed problem with `ORDER BY' with 'only index' optimisation when
there were multiple key definitions for a used column.
* `DATE' and `DATETIME' columns are now up to 5 times faster than
before.
* `INSERT DELAYED' can be used to let the client do other things
while the server inserts rows into a table.
* `LEFT JOIN USING (col1,col2)' didn't work if one used it with
tables from 2 different databases.
* `LOAD DATA LOCAL INFILE' didn't work in the Unix version because of
a missing file.
* Fixed problems with `VARCHAR'/`BLOB' on very short rows (< 4
bytes); error 127 could occur when deleting rows.
* Updating `BLOB/TEXT' through formulas didn't work for short (< 256
char) strings.
* When you did a `GRANT' on a new host, `mysqld' could die on the
first connect from this host.
* Fixed bug when one used `ORDER BY' on column name that was the same
name as an alias.
* Added `BENCHMARK(loop_count,expression)' function to time
expressions.
Changes in release 3.22.14
--------------------------
* Allow empty arguments to `mysqld' to make it easier to start from
shell scripts.
* Setting a `TIMESTAMP' column to `NULL' didn't record the timestamp
value in the update log.
* Fixed lock handler bug when one did `INSERT INTO TABLE ... SELECT
... GROUP BY'.
* Added a patch for `localtime_r()' on Windows so that it will no
lonher crash if your date is > 2039, but instead will return a
time of all zero.
* Names for user-defined functions are no longer case-sensitive.
* Added escape of `^Z' (ASCII 26) to `\Z' as `^Z' doesn't work with
pipes on Windows.
* `mysql_fix_privileges' adds a new column to the `mysql.func' to
support aggregate UDF functions in future MySQL releases.
Changes in release 3.22.13
--------------------------
* Saving `NOW()', `CURDATE()' or `CURTIME()' directly in a column
didn't work.
* `SELECT COUNT(*) ... LEFT JOIN ...' didn't work with no `WHERE'
part.
* Updated `config.guess' to allow MySQL to configure on UnixWare
7.1.x.
* Changed the implementation of `pthread_cond()' on the Windows
version. `get_lock()' now correctly times out on Windows!
Changes in release 3.22.12
--------------------------
* Fixed problem when using `DATE_ADD()' and `DATE_SUB()' in a
`WHERE' clause.
* You can now set the password for a user with the `GRANT ... TO user
IDENTIFIED BY 'password'' syntax.
* Fixed bug in `GRANT' checking with `SELECT' on many tables.
* Added missing file `mysql_fix_privilege_tables' to the RPM
distribution. This is not run by default because it relies on the
client package.
* Added option `SQL_SMALL_RESULT' to `SELECT' to force use of fast
temporary tables when you know that the result set will be small.
* Allow use of negative real numbers without a decimal point.
* Day number is now adjusted to maximum days in month if the
resulting month after `DATE_ADD'/`DATE_SUB()' doesn't have enough
days.
* Fix that `GRANT' compares columns in case-insensitive fashion.
* Fixed a bug in `sql_list.h' that made `ALTER TABLE' dump core in
some contexts.
* The hostname in `user@hostname' can now include `.' and `-'
without quotes in the context of the `GRANT', `REVOKE' and `SET
PASSWORD FOR ...' statements.
* Fix for `isamchk' for tables which need big temporary files.
Changes in release 3.22.11
--------------------------
denied' when you try to use `ALTER TABLE', `CREATE INDEX', or
`DROP INDEX'.
* `GRANT' to allow/deny users table and column access.
* Changed `USER()' to return a value in `user@host' format.
Formerly it returned only `user'.
* Changed the syntax for how to set `PASSWORD' for another user.
* New command `FLUSH STATUS' that resets most status variables to
zero.
* New status variables: `aborted_threads', `aborted_connects'.
* New option variable: `connection_timeout'.
* Added support for Thai sorting (by Pruet Boonma
).
* Slovak and Japanese error messages.
* Configuration and portability fixes.
* Added option `SET SQL_WARNINGS=1' to get a warning count also for
simple inserts.
* MySQL now uses `SIGTERM' instead of `SIGQUIT' with shutdown to
work better on FreeBSD.
* Added option `\G' (print vertically) to `mysql'.
* `SELECT HIGH_PRIORITY ...' killed `mysqld'.
* `IS NULL' on a `AUTO_INCREMENT' column in a `LEFT JOIN' didn't
work as expected.
* New function `MAKE_SET()'.
Changes in release 3.22.10
--------------------------
* Added `--bootstrap' option to `mysqld' and recoded
`mysql_install_db' to use it. This will make it easier to install
MySQL with RPMs.
* Changed `+', `-' (sign and minus), `*', `/', `%', `ABS()' and
`MOD()' to be `BIGINT' aware (64-bit safe).
* Fixed a bug in `ALTER TABLE' that caused `mysqld' to crash.
* MySQL now always reports the conflicting key values when a
duplicate key entry occurs. (Before this was only reported for
`INSERT'.)
* New syntax: `INSERT INTO tbl_name SET col_name=value,
col_name=value, ...'
* Most errors in the `.err' log are now prefixed with a time stamp.
* Added option `MYSQL_INIT_COMMAND' to `mysql_options()' to make a
query on connect or reconnect.
`password', `pipe', `timeout', `user',
`init-command', `host' and `database'.
* Added `maybe_null' to the UDF structure.
* Added option `IGNORE' to `INSERT' statements with many rows.
* Fixed some problems with sorting of the `koi8' character sets;
users of `koi8' *must* run `isamchk -rq' on each table that has an
index on a `CHAR' or `VARCHAR' column.
* New script `mysql_setpermission', by Luuk de Boer. It allows easy
creation of new users with permissions for specific databases.
* Allow use of hexadecimal strings (0x...) when specifying a
constant string (like in the column separators with `LOAD DATA
INFILE').
* Ported to OS/2 (thanks to Antony T. Curtis
).
* Added more variables to `SHOW STATUS' and changed format of output
to be like `SHOW VARIABLES'.
* Added `extended-status' command to `mysqladmin' which will show the
new status variables.
Changes in release 3.22.9
-------------------------
* `SET SQL_LOG_UPDATE=0' caused a lockup of the server.
* New SQL command: `FLUSH [ TABLES | HOSTS | LOGS | PRIVILEGES ] [,
...]'
* New SQL command: `KILL' `thread_id'.
* Added casts and changed include files to make MySQL easier to
compile on AIX and DEC OSF/1 4.x
* Fixed conversion problem when using `ALTER TABLE' from a `INT' to
a short `CHAR()' column.
* Added `SELECT HIGH_PRIORITY'; this will get a lock for the
`SELECT' even if there is a thread waiting for another `SELECT' to
get a `WRITE LOCK'.
* Moved `wild_compare()' to string class to be able to use `LIKE' on
`BLOB'/`TEXT' columns with `\0'.
* Added `ESCAPE' option to `LIKE'.
* Added a lot more output to `mysqladmin debug'.
slower.
Changes in release 3.22.8
-------------------------
* Czech character sets should now work much better.
* `DATE_ADD()' and `DATE_SUB()' didn't work with group functions.
* `mysql' will now also try to reconnect on `USE database' commands.
* Fix problem with `ORDER BY' and `LEFT JOIN' and `const' tables.
* Fixed problem with `ORDER BY' if the first `ORDER BY' column was a
key and the rest of the `ORDER BY' columns wasn't part of the key.
* Fixed a big problem with `OPTIMIZE TABLE'.
* MySQL clients on NT will now by default first try to connect with
named pipes and after this with TCP/IP.
* Fixed a problem with `DROP TABLE' and `mysqladmin shutdown' on
Windows (a fatal bug from 3.22.6).
* Fixed problems with `TIME columns' and negative strings.
* Added an extra thread signal loop on shutdown to avoid some error
messages from the client.
* MySQL now uses the next available number as extension for the
update log file.
* Added patches for UNIXWARE 7.
Changes in release 3.22.7 (Sep 1998: Beta)
------------------------------------------
* Added `LIMIT' clause for the `DELETE' statement.
characters didn't exist.
`isamchk' for more speed.
* Upgraded `libtool' to get the configure more portable.
* Fixed slow `UPDATE' and `DELETE' operations when using `DATETIME'
or `DATE' keys.
* Changed optimiser to make it better at deciding when to do a full
join and when using keys.
privilege for this.)
* Added handling of formats `YYMMDD', `YYYYMMDD', `YYMMDDHHMMSS' for
numbers when using `DATETIME' and `TIMESTAMP' types. (Formerly
these formats only worked with strings.)
* Added the `--log-long-format' option to `mysqld' to enable
timestamps and INSERT_IDs in the update log.
* Added `--where' option to `mysqldump' (patch by Jim Faucette).
* The lexical analyser now uses "perfect hashing" for faster parsing
of SQL statements.
Changes in release 3.22.6
-------------------------
* Faster `mysqldump'.
protocol.
* Fixed small optimise problem when updating keys.
* Changed makefiles to support shared libraries.
* MySQL-NT can now use named pipes, which means that you can now use
MySQL-NT without having to install TCP/IP.
Changes in release 3.22.5
-------------------------
locking code to get better handling of locks of different types.
* Updated `DBI' to 1.00 and `DBD' to 1.2.0.
* All count structures in the client (`affected_rows()',
`insert_id()', ...) are now of type `BIGINT' to allow 64-bit values
to be used. This required a minor change in the MySQL protocol
which should affect only old clients when using tables with
`AUTO_INCREMENT' values > 16M.
* The return type of `mysql_fetch_lengths()' has changed from `uint
*' to `ulong *'. This may give a warning for old clients but
should work on most machines.
* Change `mysys' and `dbug' libraries to allocate all thread
variables in one struct. This makes it easier to make a threaded
`libmysql.dll' library.
* Use the result from `gethostname()' (instead of `uname()') when
constructing `.pid' file names.
* New better compressed server/client protocol.
* `COUNT()', `STD()' and `AVG()' are extended to handle more than 4G
rows.
* You can now store values in the range `-838:59:59' <= x <=
`838:59:59' in a `TIME' column.
* *Warning: incompatible change!!* If you set a `TIME' column to too
short a value, MySQL now assumes the value is given as: `[[[D
]HH:]MM:]SS' instead of `HH[:MM[:SS]]'.
* `TIME_TO_SEC()' and `SEC_TO_TIME()' can now handle negative times
and hours up to 32767.
* Added new option `SET SQL_LOG_UPDATE={0|1}' to allow users with
the `PROCESS' privilege to bypass the update log. (Modified patch
from Sergey A Mukhin .)
* Fixed fatal bug in `LPAD()'.
* Initialise line buffer in `mysql.cc' to make `BLOB' reading from
pipes safer.
* Added `-O max_connect_errors=#' option to `mysqld'. Connect
errors are now reset for each correct connection.
* Increased the default value of `max_allowed_packet' to `1M' in
`mysqld'.
| REPLACE | UPDATE | DELETE} LOW_PRIORITY ...' You can
also use `SET SQL_LOW_PRIORITY_UPDATES={0|1}' to change the
priority for one thread. One side effect is that `LOW_PRIORITY'
is now a reserved word. :(
* Add support for `INSERT INTO table ... VALUES(...),(...),(...)',
to allow inserting multiple rows with a single statement.
* `INSERT INTO tbl_name' is now also cached when used with `LOCK
TABLES'. (Previously only `INSERT ... SELECT' and `LOAD DATA
INFILE' were cached.)
* Allow `GROUP BY' functions with `HAVING':
mysql> SELECT col FROM table GROUP BY col HAVING COUNT(*)>0;
* `mysqld' will now ignore trailing `;' characters in queries. This
is to make it easier to migrate from some other SQL servers that
require the trailing `;'.
* Fix for corrupted fixed-format output generated by `SELECT INTO
OUTFILE'.
from a list of values. These can now handle `REAL', `BIGINT' and
string (`CHAR' or `VARCHAR') values.
* *Warning: incompatible change!* `DAYOFWEEK()' had offset 0 for
Sunday. Changed the offset to 1.
* Give an error for queries that mix `GROUP BY' columns and fields
when there is no `GROUP BY' specification.
* Added `--vertical' option to `mysql', for printing results in
vertical mode.
* Index-only optimisation; some queries are now resolved using only
indexes. Until MySQL 4.0, this works only for numeric columns.
*Note MySQL indexes: MySQL indexes.
* Lots of new benchmarks.
* A new C API chapter and lots of other improvements in the manual.
Changes in release 3.22.4
-------------------------
* Added `--tmpdir' option to `mysqld', for specifying the location
of the temporary file directory.
== LAST_INSERT_ID()
This allows some ODBC programs (Delphi, Access) to retrieve the
newly inserted row to fetch the `AUTO_INCREMENT' id.
* `DROP TABLE' now waits for all users to free a table before
deleting it.
* Fixed small memory leak in the new connect protocol.
* New functions `BIN()', `OCT()', `HEX()' and `CONV()' for
converting between different number bases.
* Added function `SUBSTRING()' with 2 arguments.
* If you created a table with a record length smaller than 5, you
couldn't delete rows from the table.
* Added optimisation to remove const reference tables from `ORDER
BY' and `GROUP BY'.
* Added `--console' option to `mysqld', to force a console window
(for error messages) when using Windows.
* Fixed table locks for Windows.
* Allow `$' in identifiers.
* Changed name of user-specific configuration file from `my.cnf' to
`.my.cnf' (Unix only).
* Added `DATE_ADD()' and `DATE_SUB()' functions.
Changes in release 3.22.3
-------------------------
* Fixed a lock problem (bug in MySQL Version 3.22.1) when closing
temporary tables.
* Added missing `mysql_ping()' to the client library.
* Added `--compress' option to all MySQL clients.
* Changed `byte' to `char' in `mysql.h' and `mysql_com.h'.
Changes in release 3.22.2
-------------------------
* Searching on multiple constant keys that matched more than 30% of
the rows didn't always use the best possible key.
* New functions `', `RPAD()' and `LPAD()'.
* You can now save default options (like passwords) in a
configuration file (`my.cnf').
* Lots of small changes to get `ORDER BY' to work when no records
are found when using fields that are not in `GROUP BY' (MySQL
extension).
* Added `--chroot' option to `mysqld', to start `mysqld' in a chroot
environment (by Nikki Chumakov ).
* Trailing spaces are now ignored when comparing case-sensitive
strings; this should fix some problems with ODBC and flag 512!
* Fixed a core dump bug in the range optimiser.
* Added `--one-thread' option to `mysqld', for debugging with
LinuxThreads (or `glibc'). (This replaces the `-T32' flag)
* Added `DROP TABLE IF EXISTS' to prevent an error from occurring if
the table doesn't exist.
* `IF' and `EXISTS' are now reserved words (they would have to be
sooner or later).
* Added lots of new options to `mysqldump'.
* Server error messages are now in `mysqld_error.h'.
* The server/client protocol now supports compression.
* All bug fixes from MySQL Version 3.21.32.
Changes in release 3.22.1 (Jun 1998: Alpha)
-------------------------------------------
* Added new C API function `mysql_ping()'.
only use `mysql_connect()'.
* Added `mysql_options(...,MYSQL_OPT_CONNECT_TIMEOUT,...)' so you
can set a timeout for connecting to a server.
* Added `--timeout' option to `mysqladmin', as a test of
`mysql_options()'.
* `TIME' columns weren't stored properly (bug in MySQL Version
3.22.0).
* `UPDATE' now returns information about how many rows were matched
and updated, and how many "warnings" occurred when doing the
update.
* Fixed incorrect result from `FORMAT(-100,2)'.
* `ENUM' and `SET' columns were compared in binary (case-sensitive)
fashion; changed to be case-insensitive.
Changes in release 3.22.0
-------------------------
* New (backward-compatible) connect protocol that allows you to
specify the database to use when connecting, to get much faster
connections to a specific database.
The `mysql_real_connect()' call is changed to:
uint client_flag)
* Each connection is handled by its own thread, rather than by the
master `accept()' thread. This fixes permanently the telnet bug
that was a topic on the mail list some time ago.
* All TCP/IP connections are now checked with backward-resolution of
the hostname to get better security. `mysqld' now has a local
hostname resolver cache so connections should actually be faster
than before, even with this feature.
* A site automatically will be blocked from future connections if
someone repeatedly connects with an "improper header" (like when
one uses telnet).
* You can now refer to tables in different databases with references
of the form `tbl_name@db_name' or `db_name.tbl_name'. This makes
it possible to give a user read access to some tables and write
access to others simply by keeping them in different databases!
* Added `--user' option to `mysqld', to allow it to run as another
Unix user (if it is started as the Unix `root' user).
* Added caching of users and access rights (for faster access rights
checking)
* Normal users (not anonymous ones) can change their password with
`mysqladmin password 'new_password''. This uses encrypted
passwords that are not logged in the normal MySQL log!
* All important string functions are now coded in assembler for x86
Linux machines. This gives a speedup of 10% in many cases.
* For tables that have many columns, the column names are now hashed
for much faster column name lookup (this will speed up some
benchmark tests a lot!)
* Some benchmarks are changed to get better individual timing.
(Some loops were so short that a specific test took < 2 seconds.
The loops have been changed to take about 20 seconds to make it
easier to compare different databases. A test that took 1-2
seconds before now takes 11-24 seconds, which is much better)
* Re-arranged `SELECT' code to handle some very specific queries
involving group functions (like `COUNT(*)') without a `GROUP BY'
but with `HAVING'. The following now works:
mysql> SELECT COUNT(*) as C FROM table HAVING C > 1;
* Changed the protocol for field functions to be faster and avoid
some calls to `malloc()'.
* Added `-T32' option to `mysqld', for running all queries under the
main thread. This makes it possible to debug `mysqld' under Linux
with `gdb'!
* Added optimisation of `not_null_column IS NULL' (needed for some
Access queries).
* Allow `STRAIGHT_JOIN' to be used between two tables to force the
optimiser to join them in a specific order.
* String functions now return `VARCHAR' rather than `CHAR' and the
column type is now `VARCHAR' for fields saved as `VARCHAR'. This
should make the `MyODBC' driver better, but may break some old
MySQL clients that don't handle `FIELD_TYPE_VARCHAR' the same way
as `FIELD_TYPE_CHAR'.
* `CREATE INDEX' and `DROP INDEX' are now implemented through `ALTER
TABLE'. `CREATE TABLE' is still the recommended (fast) way to
create indexes.
* Added `--set-variable' option `wait_timeout' to `mysqld'.
* Added time column to `mysqladmin processlist' to show how long a
query has taken or how long a thread has slept.
* Added lots of new variables to `show variables' and some new to
`show status'.
* Added new type `YEAR'. `YEAR' is stored in 1 byte with allowable
values of 0, and 1901 to 2155.
* Added new `DATE' type that is stored in 3 bytes rather than 4
bytes. All new tables are created with the new date type if you
don't use the `--old-protocol' option to `mysqld'.
* Fixed bug in record caches; for some queries, you could get `Error
from table handler: #' on some operating systems.
* Added `--enable-assembler' option to `configure', for x86 machines
(tested on Linux + `gcc'). This will enable assembler functions
for the most important string functions for more speed!
[Назад] [Содержание] [Вперед]
| Главная |