|  |  
 
Changes from 3.20.18 to 3.20.32b are not documented here since the
3.21 release branched here. And the relevant changes are also
documented as changes to the 3.21 version.
 
You can now use BLOBcolumns and the functionsIS NULLandIS NOT NULLin theWHEREclause.
All communication packets and row buffers are now allocated dynamically
on demand. The default value of max_allowed_packetis now 64K for
the server and 512K for the client. This is mainly used to catch
incorrect packets that could trash all memory. The server limit may be
changed when it is started.
Changed stack usage to use less memory.
Changed safe_mysqldto check for running daemon.
The ELT()function is renamed toFIELD().  The newELT()function returns a value based on an index:FIELD()is the inverse ofELT()Example:ELT(2,"A","B","C")returns"B".FIELD("B","A","B","C")returns2.
COUNT(field), wherefieldcould have aNULLvalue, now
works.
A couple of bugs fixed in SELECT ... GROUP BY.
Fixed memory overrun bug in WHEREwith many unoptimizable brace levels.
Fixed some small bugs in the grant code.
If hostname isn't found by get_hostname, only the IP is checked.
Previously, you gotAccess denied.
Inserts of timestamps with values didn't always work.
INSERT INTO ... SELECT ... WHEREcould give the errorDuplicated field.
Added some tests to safe_mysqldto make it ``safer''.
LIKEwas case sensitive in some places and case insensitive in others.
NowLIKEis always case insensitive.
`mysql.cc': Allow '#'anywhere on the line.
New command SET OPTION SQL_SELECT_LIMIT=#. See the FAQ for more details.
New version of the mysqlaccessscript.
Change FROM_DAYS()andWEEKDAY()to also take a fullTIMESTAMPorDATETIMEas argument. Before they only took a
number of typeYYYYMMDDorYYMMDD.
Added new function UNIX_TIMESTAMP(timestamp_column). 
More changes in MIT-pthreads to get them safer. Fixed also some link
bugs at least in SunOS.
Changed mysqldto work around a bug in MIT-pthreads. This makes multiple
smallSELECToperations 20 times faster. Nowlock_test.plshould
work.
Added mysql_FetchHash(handle)tomysqlperl.
The mysqlbugscript is now distributed built to allow for reporting
bugs that appear during the build with it.
Changed `libmysql.c' to prefer getpwuid()instead ofcuserid().
Fixed bug in SELECToptimizer when using many tables with the same
column used as key to different tables.
Added new latin2 and Russian KOI8 character tables.
Added support for a dummy GRANTcommand to satisfy Powerbuilder. 
Fixed fatal bug packets out of orderwhen using MIT-pthreads.
Removed possible loop when a thread waits for command from client
and fcntl()fails. Thanks to Mike Bretz for finding this bug.
Changed alarm loop in `mysqld.cc' because shutdown didn't always
succeed in Linux.
Removed use of termbitsfrom `mysql.cc'.  This conflicted withglibc2.0.
Fixed some syntax errors for at least BSD and Linux.
Fixed bug when doing a SELECTas superuser without a database.
Fixed bug when doing SELECTwith group calculation to outfile. 
If one gives -por--passwordoption tomysqlwithout
an argument, the user is solicited for the password from the tty.
Added default password from MYSQL_PWD(by Elmar Haneke).
Added command killtomysqladminto kill a specific
MySQL thread.
Sometimes when doing a reconnect on a down connection this succeeded
first on second try.
Fixed adding an AUTO_INCREMENTkey withALTER TABLE.
AVG()gave too small value on someSELECTs withGROUP BYandORDER BY.
Added new DATETIMEtype (by Giovanni Maruzzelli
Fixed that define DONT_USE_DEFAULT_FIELDSworks.
Changed to use a thread to handle alarms instead of signals on Solaris to
avoid race conditions.
Fixed default length of signed numbers. (George Harvey
Allow anything for CREATE INDEX.
Add prezeros when packing numbers to DATE,TIMEandTIMESTAMP.
Fixed a bug in ORof multiple tables (gave empty set).
Added many patches to MIT-pthreads. This fixes at least one lookup bug.
 
Added ANSI SQL94 DATEandTIMEtypes.
Fixed bug in SELECTwithAND-ORlevels.
Added support for Slovenian characters. The `Contrib' directory contains
source and instructions for adding other character sets.
Fixed bug with LIMITandORDER BY.
Allow ORDER BYandGROUP BYon items that aren't in theSELECTlist.
(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 glibc2.0. To getglibcto work, you should
add the `gibc-2.0-sigwait-patch' before compilingglibc.
Fixed bug in ALTER TABLEwhen changing aNOT NULLfield to
allowNULLvalues.
Added some ANSI92 synonyms as field types to CREATE TABLE.CREATE TABLEnow allowsFLOAT(4)andFLOAT(8)to meanFLOATandDOUBLE.
New utility program mysqlaccessby Yves.Carlier@rug.ac.be.
This program shows the access rights for a specific user and the grant
rows that determine this grant.
Added WHERE const op field(by bonis@kiss.de). 
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 TABLEaccording to SQL92.
Some minor compability changes.
Added --portand--socketoptions to all utility programs andmysqld.
Fixed MIT-pthreads readdir_r(). Nowmysqladmin create databaseandmysqladmin drop databaseshould work.
Changed MIT-pthreads 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.) 
New insert type: INSERT INTO ... SELECT ...
MEDIUMBLOBfixed.
Fixed bug in ALTER TABLEandBLOBs.
SELECT ... INTO OUTFILEnow creates the file in the current
database directory.
DROP TABLEnow can take a list of tables.
Oracle synonym DESCRIBE(DESC).
Changes to make_binary_distribution.
Added some comments to installation instructions about configure's
C++ link test.
Added --without-perloption toconfigure.
Lots of small portability changes.
 
ALTER TABLEdidn't copy null bit. As a result, fields that were allowed
to haveNULLvalues were alwaysNULL.
CREATEdidn't take numbers asDEFAULT.
Some compatibility changes for SunOS.
Removed `config.cache' from old distribution.
 
Fixed bug with ALTER TABLEand multi-part keys. 
New commands: ALTER TABLE,SELECT ... INTO OUTFILEandLOAD DATA INFILE.
New function: NOW().
Added new field file_priv to mysql/usertable.
New script add_file_privwhich adds the new field file_priv
to theusertable. This script must be executed if you want to
use the newSELECT ... INTOandLOAD DATA INFILE ...commands
with a version of MySQL earlier than 3.20.7.
Fixed bug in locking code, which made lock_test.pltest fail.
New files `NEW' and `BUGS'.
Changed `select_test.c' and `insert_test.c' to include
`config.h'.
Added command statustomysqladminfor short logging.
Increased maximum number of keys to 16 and maximum number of key parts to 15.
Use of sub keys. A key may now be a prefix of a string field.
Added -koption tomysqlshow, to get key information for a table.
Added long options to mysqldump. 
Portable to more systems because of MIT-pthreads, which will
be used automatically if configurecannot find a-lpthreadslibrary.
Added 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',
`.txt' and `.ps' formats.
Added new SQL function RAND([init]).
Changed sql_lexto handle\0unquoted, but the client can't send
the query through the C API, because it takes a str pointer.
You must usemysql_real_query()to send the query.
Added API function mysql_get_client_info().
mysqldnow uses theN_MAX_KEY_LENGTHfrom `nisam.h' as
the maximum allowed key length.
The following now works:
mysql> SELECT filter_nr,filter_nr FROM filter ORDER BY filter_nr;
Previously, this resulted in the error: Column: 'filter_nr' in order clause is ambiguous.
mysqlnow outputs'\0','\t','\n'and'\\'when encountering ASCII 0, tab, newline or'\'while writing
tab-separated output.
This is to allow printing of binary data in a portable format.
To get the 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 an array of of column lengths (of typeuint).
Fixed bug with IS NULLinWHEREclause.
Changed the optimizer a little to get better results when searching on a key
part.
Added SELECToptionSTRAIGHT_JOINto tell the optimizer that
it should join tables in the given order.
Added support for comments starting with '--'in `mysql.cc'
(Postgres syntax).
You can have SELECTexpressions and table columns in aSELECTwhich are not used in the group part. This makes it efficient to implement
lookups.  The column that is used should be a constant for each group because
the value is calculated only once for the first row that is found for a group.
mysql> SELECT id,lookup.text,sum(*) FROM test,lookup
         WHERE test.id=lookup.id GROUP BY id;
Fixed bug in SUM(function)(could cause a core dump).
Changed AUTO_INCREMENTplacement in the SQL query:
INSERT into table (auto_field) values (0);
inserted 0, but it should insert an AUTO_INCREMENTvalue.
`mysqlshow.c': Added number of records in table. Had to change the
client code a little to fix this.
mysqlnow allows doubled''or""within strings for
embedded'or".
New math functions:
EXP(),LOG(),SQRT(),ROUND(),CEILING(). 
The configuresource now compiles a thread-free client library-lmysqlclient. This is the only library that needs to be linked
with client applications.  When using the binary releases, you must
link with-lmysql -lmysys -ldbug -lstringsas before.
New readlinelibrary frombash-2.0.
LOTS of small changes to configureand makefiles (and related source).
It should now be possible to compile in another directory using
VPATH. Tested with GNU Make 3.75.
safe_mysqldandmysql.serverchanged to be more compatible
between the source and the binary releases.
LIMITnow takes one or two numeric arguments.
If one argument is given, it indicates the maximum number of rows in
a result. If two arguments are given, the first argument indicates the offset
of the first row to return, the second is the maximum number of rows.
With this it's easy to do a poor man's next page/previous page WWW
application.
Changed name of SQL function FIELDS()toELT().
Changed SQL functionINTERVALL()toINTERVAL().
Made SHOW COLUMNSa synonym forSHOW FIELDS.
Added compatibility syntaxFRIEND KEYtoCREATE TABLE. In
MySQL, this creates a non-unique key on the given columns.
Added CREATE INDEXandDROP INDEXas compatibility functions.
In MySQL,CREATE INDEXonly checks if the index exists and
issues an error if it doesn't exist.DROP INDEXalways succeeds.
`mysqladmin.c': added client version to version information.
Fixed core dump bug in sql_acl(core on new connection).
Removed host,useranddbtables from databasetestin the distribution.
FIELD_TYPE_CHARcan now be signed (-128 - 127) or unsigned (0 - 255)
Previously, it was always unsigned.
Bug fixes in CONCAT()andWEEKDAY().
Changed a lot of source to get mysqldto be compiled with SunPro
compiler.
SQL functions must now have a '('immediately after the function name
(no intervening space).
For example,'user('is regarded as beginning a function call, and'user ('is regarded as an identifieruserfollowed by a'(', not as a function call. 
The source distribution is done with configureand Automake.
It will make porting much easier.  Thereadlinelibrary is included
in the distribution.
Separate client compilation:
the client code should be very easy to compile on systems which
don't have threads.
The old Perl interface code is automatically compiled and installed.
Automatic compiling of DBDwill follow when the newDBDcode
is ported.
Dynamic language support: mysqldcan now be started with Swedish
or English (default) error messages.
New functions: INSERT(),RTRIM(),LTRIM()andFORMAT().
mysqldumpnow works correctly for all field types (evenAUTO_INCREMENT). The format forSHOW FIELDS FROM nom_tableis changed
so theTypecolumn contains information suitable forCREATE TABLE.
In previous releases, someCREATE TABLEinformation had to be patched
when recreating tables.
Some parser bugs from 3.19.5 (BLOBandTIMESTAMP) are corrected.TIMESTAMPnow returns different date information depending on its
create length.
Changed parser to allow a database, table or field name to
start with a number or '_'.
All old C code from Unireg changed to C++ and cleaned up. This makes
the daemon 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.
 |