Changes in release 3.20.13

* Added ANSI SQL94 DATE and TIME types.
* Fixed bug in select with and-or levels.
* Added support for Slovenian characters. The Contrib directory contains
  source and instructions to add other character sets.
* Fixed bug with limit and order by.
* Allow order and group on items that isn't in the select list.
  (Thanks to Wim Bonis <bonis@kiss.de> for pointing this out) 
* Allow setting of timestamp values in INSERT.
* Fixed bug with SELECT ... WHERE ... = NULL.
* Added changes for glibc 2.0. To get glibc to work one should add the
  gibc-2.0-sigwait-patch before compiling glibc.
* Fixed bug in alter table when changeing a not null field to allow NULLs.
* Added some ANS92 synonyms as field types to CREATE TABLE.
  CREATE TABLE now allows FLOAT(4) and FLOAT(8) to mean FLOAT and DOUBLE.
* new utility program mysqlaccess by Yves.Carlier@rug.ac.be.
  This program shows the access rights for a specific user and the grant
  rows which determinate this grant.
* Added WHERE const op field (by bonis@kiss.de)

Changes in release 3.20.11

* When using SELECT .... INTO OUTFILE all temporary tables are ISAM instead of
  HEAP to allow big dumps.
* Changed date functions to be 'string functions'. This fixed some 'funny'
  side effects when sorting on dates.
* Extended ALTER TABLE according to SQL92.
* Some minor compability changes.
* Added --port and --socket to all utility programs and mysqld.
* Fixed MIT threads readdir_r(). Now mysqladmin create database and drop
  database should work.
* Changed MIT threads to use our tempnam. This should fix the 'sort aborted' bug.
* Added sync of records count in sql_update. This fixed slow updates on first
  connection. (Thanks to Vaclav Bittner for the test)


Changes in release 3.20.10

* New insert type: INSERT INTO ... SELECT ....
* mediumblob fixed.
* Fixed bug in ALTER TABLE and BLOBs.
* SELECT ... INTO OUTFILE now creates the file in the current database directory.
* DROP TABLE can now take a list of tables.
* Oracle synonym DESCRIBE (DESC)
* Changes to make_binary_distribution
* Added some comments about conifgures c++ link test to INSTALL-SOURCE.
* Added --without-perl to configure.
* Lot's of small portability changes.


Changes in release 3.20.9

* Alter table didn't copy null bit. This resulted that NULL fields where
  always NULL.
* CREATE didn't take numbers as DEFAULT.
* Some compatibility changes for SunOS.
* Removed config.cache from old distribution.


Changes in release 3.20.8

* Fixed bug with ALTER TABLE and multi part keys.


Changes in release 3.20.7

* New commands: ALTER TABLE, SELECT ... INTO OUTFILE and LOAD DATA INFILE.

* New functions: NOW()

* Added new field: file_priv to mysql/user table.

* New scripts 'add_file_priv' which add the new field 'file_priv'
  to the user table. This scripts must be executed if one wants to
  use the new SELECT ... INTO and LOAD DATA INFILE...  commands
  with a version of mysql less than 3.20.7.

* Fixed bug in locking code, with made lock_test.pl test fail.

* new files NEW and BUGS

* Changed select_test.c and insert_test.c to include config.h

* Added command 'status' to mysqladmin for short logging.

* Increased max keys to 16 and max key parts to 15.

* Use of sub keys. A key may now be a prefix of a string field.

* Added option -k for mysqlshow to get key info for table.

* Added long options to mysqldump.


Changes in release 3.20.6

* Portable to more systems because of MIT threads. This will
  automatically be used is configure can not find a -lpthreads library.

* GNU style long options to almost all programs. Test with 'program --help'.

* Some shared library support for linux.

* The FAQ is now in .texi format and is available in .html, .text, .ps,

* Added new sql function RAND([init])

* Changed sql_lex to handle \0 unquoted, but the client can't send
  the query through the C api, because it takes a str pointer.
  one have to use mysql_real_query() to send the query.

* Added API function: mysql_get_client_info

* mysqld now uses the N_MAX_KEY_LENGTH from nisam.h as the max allowed key
  length.

* The following now works: "select filter_nr,filter_nr from filter order by
  filter_nr"
  Before you got the error: "Column: 'filter_nr' in order clause is ambiguous"

* mysql now outputs \0 \t \n and \\ when writing tab separated output.
  when encountering ascii 0, tab, newline or \. This is to allow printing of
  binary data in a portable format.
  To get old behavior use -r (or --raw).

* Added german error messages (60 of 80 error messages translated)

* Added new api function: mysql_fetch_lengths(MYSQL_RES *) which
  returns a array of of column lengths (of type uint).

* Fixed bug with IS NULL in where clause.

* Changed the optimizer a little to get better results when searching on a key
  part.

* Added select option STRAIGHT_JOIN to tell the optimizer that it should join
  tables in the given order.

* Added support of comment starting with '--' in mysql.cc (Postgres syntax)

* You can now have select_expressions and table columns in a select which
  are not used in the group part. This makes it efficient to implement lookups.
  If the not used column is not a constant for the group the column value
  is unspecified.
  Example: SELECT id,lookup.text,sum(*) FROM test,lookup
	   WHERE test.id=lookup.id group by id;

* Fixed bug in SUM(function) (Could make core dump)

* Changed auto_increment according to SQL_SYNTAX:
  INSERT into table (auto_field) values (0) inserted 0, but the SQL_SYNTAX
  stated it should insert a auto_increment value.

* mysqlshow.c: Added number of records in table. Had to change the
  client code a little to fix this.

* mysql now allows double '' or "" in strings for embedded ' or ".

* New math functions:  EXP, LOG, SQRT, ROUND, CEILING


Changes in release 3.20.3

* The configure source now compiles a thread free client library 'mysqlclient'
  This is the only library that needs to be linked with client applications.
  When using the binary releases one have to link with '-lmysql
  -lmysys -ldbug -lstrings' as before.

* New readline from bash-2.0.

* LOTS of small changes to configure and makefiles (and related source).

* There should now be possible to compile in another directory using
  vpath. Tested with GNU Make 3.75.

* safe_mysqld and mysql.server changed to be more compatible between
  the source and the binary releases.

* LIMIT takes now one or two numerical arguments.
  If one argument the argument indicates the maximum number of rows in
  a result. If two arguments the first arguments says the offset to
  the first row to return, the second is the maximum number of rows.
  With this it's easy to do a poor mans next page/previous page www
  application.

* Changed name of SQL function FIELDS to ELT.
  Changed sql function INTERVALL() to INTERVAL().

* Made SHOW COLUMNS a synonym for SHOW FIELDS.
  Added compatibility syntax FRIEND KEY to create table. This creates in mysql
  a non unique key on the given columns.

* Added CREATE INDEX and DROP INDEX as compatibility functions. In mysql 
  CREATE INDEX only checks if the index exists and gives an error if it doesn't
  exists. DROP INDEX always succeeds.

* mysqladmin.c: Added client version to version info.

* Fixed core dump bug in sql_acl (core on new connection).

* Removed host,user and db tables from database test in the distribution.

* FIELD_TYPE_CHAR can now be signed (-128 - 127) or unsigned (0 - 255)
  Before it was always unsigned.

* Bug fixes in concat(), weekday()

* changed a lot of source to get mysqld to be compiled with SUNPRO compiler.

* sql functions must now have a '(' directly after the function name.
  user '(' is now regarded as an identifier and a '('

Changes in releases 3.20.0

* The source distribution is done with configure and automake:
  It will make porting much easier.  Readline is included in the
  distribution.

* Separate client compilation:
  The client code should be very easy to compile on system which
  doesn't have threads.

* The old perl interface code is automaticly compiled and installed.
  Automatic compiling of DBD will follow when the new DBD code
  is ported.

* Dynamic language support: mysqld can now be started with Swedish
  or English (default) error messages.

* new functions: INSERT(),RTRIM(),LTRIM() and FORMAT(). 

* mysqldump now works correctly for all field types (even
  auto_increment). The format for 'show fields from table' is changed
  so the 'type' column contains info suitable for 'CREATE TABLE'.
  In previous releases some CREATE TABLE info had to be patched to
  when recreating tables

* Some parser bugs from 3.19.5 (blob and timestamp) are corrected.
  Timestamp now returns different date info depending of it's
  create length.

* Changed parser to allow a database name, table name and field name to
  start with a number or '_'.

* All old C code from UNIREG changed to c++ and cleaned up. This makes
  the demon a little smaller and easier to understand.

* A lot of small bug fixes done.

* New INSTALL files (not final version) and some info regarding porting.

Changes in release 3.19.5

* Some new functions, some more optimization on joins.
* Should now compile clean on Linux (2.0.x)
* Added functions DATABASE(),USER(),POW(),LOG10() (needed for ODBC).
* In a WHERE with a ORDER BY on fields from only one table the table is
  now preferred as first table in a multi-join.
* HAVING and IS NULL or IS NOT NULL now works.
* A group on one column and a sort on a group function (SUM,AVG...)
  didn't work together. Fixed.
* mysqldump: Didn't send password to server.

Changes in release 3.19.4

* Fixed horrible locking bug when inserting in one thread and reading
  on another thread.
* Fixed one-off decimal bug.  1.00 was outputed as 1.0
* Added attribute 'Locked' to process list as info if a query is
  locked by another query.
* Fixed full magic timestamp. Timestamp length may now be 14,12,10,8,6,4 or 2.
* sort on some number functions could be sorted wrong on last number.
* if(arg,syntax_error,syntax_error) crashed.
* added functions ceiling() and round(), exp(), log() and sqrt()
* enchanted BETWEEN to handle strings.

Changes in release 3.19.3

* Fixed that select with grouping on blob's doesn't return wrong blob
  info. grouping, sorting and distinct on blobs will not yet work as
  expected (Probably it will group/sort by the first 7 characters in
  the blob). Groping on formulas with a fixed string size (use mid on
  blob) should work.
* When doing a full join (no direct keys) on multiple tables with blob
  fields, the blob was garbage on output.
* Fixed distinct with calculated columns.
