|  |  
 
Fixed problem when sending SIGHUPtomysqld;mysqldcore dumped when starting from boot on some systems.
Fixed problem with losing a little memory for some connections.
DELETE FROM nom_tablewithout aWHEREcondition is now done the
long way when you useLOCK TABLESor if the table is in use, to
avoid race conditions.
INSERT INTO TABLE (timestamp_column) VALUES (NULL);didn't set timestamp. 
Fixed some possible race conditions when doing many reopen/close on the same
tables under heavy load!  This can happen if you execute mysqladmin
refreshoften. This could in some very rare cases corrupt the header of the
index file and cause error 126 or 138.
Fixed fatal bug in refresh()when running with the--skip-lockingoption.
There was a ``very small'' time gap after amysqladmin refreshwhen
a table could be corrupted if one thread updated a table while another
thread didmysqladmin refreshand another thread started a new update
ont the same table before the first thread had finished.
A refresh (or--flush-tables) will now not return until all used tables
are closed!
SELECT DISTINCTwith aWHEREclause that didn't match any rows
returned a row in some contexts (bug only in 3.21.31).
GROUP BY+ORDER BYreturned one empty row when no rows where
found.
Fixed a bug in the range optimizer that wrote
Use_count: Wrong count for ...in the error log file. 
Fixed a sign extension problem for the TINYINTtype on Irix.
Fixed problem with LEFT("constant_string",function).
Fixed problem with FIND_IN_SET().
LEFT JOINcore dumped if the second table is used with a constantWHERE/ONexpression that uniquely identifies one record.
Fixed problems with DATE_FORMAT()and incorrect dates.DATE_FORMAT()now ignores'%'to make it possible to extend
it more easily in the future. 
mysqlnow returns an exit code > 0 if the query returned an error.
Saving of command line history to file in mysqlclient.
By Tommy Larsen tommy@mix.hive.no.
Fixed problem with empty lines that were ignored in `mysql.cc'.
Save the pid of the signal handler thread in the pid file instead
of the pid of the main thread.
Added patch by tommy@valley.ne.jp to support Japanese characters
SJIS and UJIS.
Changed safe_mysqldto redirect startup messages to'hostname'.errinstead
of'hostname'.logto reclaim file space onmysqladmin refresh.
ENUMalways had the first entry as default value.
ALTER TABLEwrote two entries to the update log.
sql_acc()now closes themysqlgrant tables after a reload to
save table space and memory.
Changed LOAD DATAto use less memory with tables andBLOBcolumns.
Sorting on a function which made a division / 0 produced a wrong set
in some cases.
Fixed SELECTproblem withLEFT()when using the czech character
set.
Fixed problem in isamchk; it couldn't repair a packed table in a very
unusual case.
SELECTstatements with&or|(bit functions) failed on
columns withNULLvalues.
When comparing a field = field, where one of the fields was a part key,
only the length of the part key was compared.
 
LOCK TABLES+DELETE from nom_tablenever removed locks properly.
Fixed problem when grouping on an ORfunction.
Fixed permission problem with umask()and creating new databases.
Fixed permission problem on result file with SELECT ... INTO OUTFILE ...
Fixed problem in range optimizer (core dump) for a very complex query.
Fixed problem when using MIN(integer)orMAX(integer)inGROUP BY.
Fixed bug on Alpha when using integer keys. (Other keys worked on Alpha).
Fixed bug in WEEK("XXXX-xx-01"). 
Fixed socket permission (clients couldn't connect to Unix socket on Linux).
Fixed bug in record caches; for some queries, you could get
Error from table handler: #on some operating systems. 
Added user level lock functions GET_LOCK(string,timeout),RELEASE_LOCK(string).
Added opened_tablestoshow status.
Changed connect timeout to 3 seconds to make it somewhat harder
for crackers to kill mysqldthrough telnet + TCP/IP.
Fixed bug in range optimizer when using
WHERE key_part_1 >= something AND key_part_2 <= something_else.
Changed configurefor detection of FreeBSD 3.0 9803xx and above
WHEREwith string_column_key = constant_string didn't always find
all rows if the column had many values differing only with characters of
the same sort value (like e and 'e).
Strings keys looked up with 'ref' were not compared in case-sensitive fashion.
Added umask()to make log files non-readable for normal users.
Ignore users with old (8-byte) password on startup if not using
--old-protocoloption tomysqld.
SELECTwhich matched all key fields returned the values in the
case of the matched values, not of the found values. (Minor problem.) 
FROM_DAYS(0)now returns "0000-00-00".
In DATE_FORMAT(), PM and AM were swapped for hours 00 and 12.
Extended the default maximum key size to 256.
Fixed bug when using BLOB/TEXTinGROUP BYwith many
tables.
An ENUMfield that is not declaredNOT NULLhasNULLas
the default value.
(Previously, the default value was the first enumeration value.)
Fixed bug in the join optimizer code when using many part keys
on the same key:  INDEX (Organization,Surname(35),Initials(35)).
Added some tests to the table order optimizer to get some cases with
SELECT ... FROM many_tablesmuch faster.
Added a retry loop around accept()to possibly fix some problems on some
Linux machines. 
Changed typedef 'string'totypedef 'my_string'for better
portability.
You can now kill threads that are waiting on a disk full condition.
Fixed some problems with UDF functions.
Added long options to isamchk. Tryisamchk --help.
Fixed a bug when using 8 bytes long (alpha); filesort()didn't work.
AffectsDISTINCT,ORDER BYandGROUP BYon 64-bit
processors. 
Dynamic loadable functions. Based on source from Alexis Mikhailov.
You couldn't delete from a table if no one had done a SELECTon the
table.
Fixed problem with range optimizer with many ORoperators on key parts
inside each other.
Recoded MIN()andMAX()to work properly with strings andHAVING.
Changed default umask value for new files from 0664to0660.
Fixed problem with LEFT JOINand constant expressions in theONpart.
Added Italian error messages from brenno@3cord.philips.nl.
configurenow works better on OSF1 (tested on 4.0D).
Added hooks to allow LIKEoptimization with international character
support.
Upgraded DBIto 0.93. 
The following symbols are now reserved words:
TIME,DATE,TIMESTAMP,TEXT,BIT,ENUM,NO,ACTION,CHECK,YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,STATUS,VARIABLES.
Setting a TIMESTAMPtoNULLinLOAD DATA INFILE ...didn't
set the current time for theTIMESTAMP.
Fix BETWEENto recognize binary strings. NowBETWEENis
case sensitive.
Added --skip-thread-priorityoption tomysqld, for systems
wheremysqld's thread scheduling doesn't work properly (BSDI 3.1).
Added ODBC functions DAYNAME()andMONTHNAME().
Added function TIME_FORMAT().  This works likeDATE_FORMAT(),
but takes a time string ('HH:MM:DD') as argument.
Fixed unlikely(?) key optimizer bug when using ORs of key parts
insideANDs.
Added command variablestomysqladmin.
A lot of small changes to the binary releases.
Fixed a bug in the new protocol from MySQL 3.21.20.
Changed ALTER TABLEto work with Win32 (Win32 can't rename open files).
Also fixed a couple of small bugs in the Win32 version.
All standard MySQL clients are now ported to MySQL-Win32.
MySQL can now be started as a service on NT.
 
Configure changes for some operating systems.
 
Fixed optimizer bug when using
WHERE data_field = date_field2 AND date_field2 = constant.
Added command SHOW STATUS.
Removed `manual.ps' from the source distribution to make it smaller.
 
Changed the maximum table name and column name lengths from 32 to 64.
Aliases can now be of ``any'' length.
Fixed mysqladmin statto return the right number of queries.
Changed protocol (downward compatible) to mark if a column has the
AUTO_INCREMENTattribute or is aTIMESTAMP. This is needed for
the new Java driver.
Added Hebrew sorting order by Zeev Suraski.
Solaris 2.6: Fixed configurebugs and increased maximum table size
from 2G to 4G. 
Upgraded DBDto 1823. This version implementsmysql_use_resultinDBD-Mysql.
Benchmarks updated for empress (by Luuk).
Fixed a case of slow range searching.
Configure fixes (`Docs' directory).
Added function REVERSE()(by Zeev Suraski). 
Issue error message if client C functions are called in wrong order.
Added automatic reconnect to the `libmysql.c' library. If a write command
fails, an automatic reconnect is done.
Small sort sets no longer use temporary files.
Upgraded DBIto 0.91.
Fixed a couple of problems with LEFT OUTER JOIN.
Added CROSS JOINsyntax.CROSSis now a reserved word.
Recoded yacc/bisonstack allocation to be even safer and to allow
MySQL to handle even bigger expressions.
Fixed a couple of problems with the update log.
ORDER BYwas slow when used with key ranges. 
Changed documentation string of --with-unix-socket-pathto avoid
confusion.
Added ODBC and ANSI SQL style LEFT OUTER JOIN.
The following are new reserved words: LEFT,NATURAL,USING.
The client library now uses the value of the environment variable
MYSQL_HOSTas the default host if it's defined.
SELECT column, SUM(expr)now returnsNULLforcolumnwhen
there are matching rows.
Fixed problem with comparing binary strings and BLOBs with ASCII
characters over 127.
Fixed lock problem: when freeing a read lock on a table with multiple
read locks, a thread waiting for a write lock would have been given the lock.
This shouldn't affect data integrity, but could possibly make mysqldrestart if one thread was reading data that another thread modified.
LIMIT offset,countdidn't work inINSERT ... SELECT.
Optimized key block caching. This will be quicker than the old algorithm when
using bigger key caches.
 
Added ODBC 2.0 & 3.0 functions POWER(),SPACE(),COT(),DEGREES(),RADIANS(),ROUND(2 arg)andTRUNCATE().
WARNING: INCOMPATIBLE CHANGE!! LOCATE()parameters were
swapped according to ODBC standard. Fixed.
Added function TIME_TO_SEC().
In some cases, default values were not used for NOT NULLfields.
Timestamp wasn't always updated properly in UPDATE SET ...statements.
Allow empty strings as default values for BLOBandTEXT, to
be compatible withmysqldump. 
WARNING: INCOMPATIBLE CHANGE!! mysqlperlis now from
Msql-Mysql-modules. This means thatconnect()now takeshost,database,user,passwordarguments! The old
version tookhost,database,password,user.
Allow DATE '1997-01-01',TIME '12:10:10'andTIMESTAMP '1997-01-01 12:10:10'formats required by ANSI SQL.
WARNING: INCOMPATIBLE CHANGE!! This has the unfortunate
side-effect that you no longer can have columns namedDATE,TIMEorTIMESTAMP. :( Old columns can still be accessed throughtablename.columnname!)
Changed Makefiles to hopefully work better with BSD systems. Also,
`manual.dvi' is now included in the distribution to avoid having stupid
makeprograms trying to rebuild it.
readlinelibrary upgraded to version 2.1.
A new sortorder german-1. That is a normal ISO-Latin1 with a german sort
order.
Perl DBI/DBDis now included in the distribution.DBIis now the recommended way to connect to MySQL from Perl.
New portable benchmark suite with DBD, with test results frommSQL2.0.3, MySQL, PostgreSQL 6.2.1 and Solid server 2.2.
crash-meis now included with the benchmarks; This is a Perl program
designed to find as many limits as possible in a SQL server. Tested withmSQL, PostgreSQL, Solid and MySQL.
Fixed bug in range-optimizer that crashed MySQL on some queries.
Table and column name completion for mysqlcommand line tool, by Zeev
Suraski and Andi Gutmans.
Added new command REPLACEthat works likeINSERTbut
replaces conflicting records with the new record.REPLACE INTO
TABLE ... SELECT ...works also.
Added new commands CREATE DATABASE nom_base_de_donneesandDROP
DATABASE nom_base_de_donnees.
Added RENAMEoption toALTER TABLE:ALTER TABLE name
RENAME AS new_name.
make_binary_distributionnow includes `libgcc.a' in
`libmysqlclient.a'. This should make linking work for people who don't
havegcc.
Changed net_write()tomy_net_write()because of a name
conflict with Sybase.
New function DAYOFWEEK()compatible with ODBC.
Stack checking and bisonmemory overrun checking to make MySQL
safer with weird queries. 
Fixed a couple of small configureproblems on some platforms. 
Ported to SCO Openserver 5.0.4  with FSU Pthreads.
HP-UX 10.20 should work.
Added new function DATE_FORMAT().
Added NOT IN.
Added automatic removal of 'ODBC function conversions': {fn now() }
Handle ODBC 2.50.3 option flags.
Fixed comparison of DATEandTIMEvalues withNULL.
Changed language name from germany to german to be consistent with
the other language names.
Fixed sorting problem on functions returning a FLOAT. Previously, the
values were converted toINTs before sorting.
Fixed slow sorting when sorting on key field when using
key_column=constant.
Sorting on calculated DOUBLEvalues sorted on integer results instead.
mysqlno longer needs a database argument.
Changed the place where HAVINGshould be. According to ANSI, it should
be afterGROUP BYbut beforeORDER BY. MySQL 3.20
incorrectly had it last.
Added Sybase command USE DATABASEto start using another database.
Added automatic adjusting of number of connections and table cache size
if the maximum number of files that can be opened is less than needed.
This should fix that mysqlddoesn't crash even if you haven't done aulimit -n 256before startingmysqld.
Added lots of limit checks to make it safer when running with too little
memory or when doing weird queries.
 
Added retry of interrupted reads and clearing of errno.
This makes Linux systems much safer!
Fixed locking bug when using many aliases on the same table in the same
SELECT.
Fixed bug with LIKEon number key.
New error message so you can check whether the connection was lost while
the command was running or whether the connection was down from the start.
Added --tableoption tomysqlto print in table format.
Moved time and row information after query result.
Added automatic reconnect of lost connections.
Added !=as a synonym for<>.
Added function VERSION()to make easier logs.
New multi-user test `tests/fork_test.pl' to put some strain on the
thread library.
 
Fixed ftruncate()call in MIT-pthreads. This madeisamchkdestroy the `.ISM' files on (Free)BSD 2.x systems.
Fixed broken __P_patch in MIT-pthreads.
Many memory overrun checks. All string functions now return NULLif the returned string should be longer thanmax_allowed_packetbytes.
Changed the name of the INTERVALtype toENUM, becauseINTERVALis used in ANSI SQL.
In some cases, doing a JOIN+GROUP+INTO OUTFILE,
the result wasn't grouped.
LIKEwith'_'as last character didn't work. Fixed.
Added extended ANSI SQL TRIM()function.
Added CURTIME().
Added ENCRYPT()function by Zeev Suraski.
Fixed better FOREIGN KEYsyntax skipping. New reserved words:MATCH,FULL,PARTIAL.
mysqldnow allows IP number and hostname to the--bind-addressoption.
Added SET OPTION CHARACTER SET cp1251_koi8to enable conversions of
data to/from cp1251_koi8.
Lots of changes for Win95 port. In theory, this version should now be
easily portable to Win95.
Changed the CREATE COLUMNsyntax ofNOT NULLcolumns to be after
theDEFAULTvalue, as specified in the ANSI SQL standard. This will
makemysqldumpwithNOT NULLand default values incompatible with
MySQL 3.20.
Added many function name aliases so the functions can be used with
ODBC or ANSI SQL92 syntax.
Fixed syntax of ALTER TABLE nom_table ALTER COLUMN nom_colonne SET DEFAULT
NULL.
Added CHARandBITas synonyms forCHAR(1).
Fixed core dump when updating as a user who has only select privilege.
INSERT ... SELECT ... GROUP BYdidn't work in some cases. AnInvalid use of group functionerror occurred.
When using LIMIT,SELECTnow always uses keys instead of record
scan.  This will give better performance onSELECTand aWHEREthat matches many rows.
Added Russian error messages.
 
Configure changes.
MySQL now works with the new thread library on BSD/OS 3.0.
Added new group functions BIT_OR()andBIT_AND().
Added compatibility functions CHECKandREFERENCES.CHECKis now a reserved word.
Added ALLoption toGRANTfor better compatibility. (GRANTis still a dummy function.)
Added partly-translated dutch messages.
Fixed bug in ORDER BYandGROUP BYwithNULLcolumns.
Added function last_insert_id()to retrieve lastAUTO_INCREMENTvalue.  This is intended for clients to ODBC that can't use themysql_insert_id()API function, but can be used by any client.
Added --flush-logsoption tomysqladmin.
Added command STATUStomysql.
Fixed problem with ORDER BY/GROUP BYbecause of bug ingcc.
Fixed problem with INSERT ... SELECT ... GROUP BY. 
New mysqlaccess.
CREATEnow supports all ODBC types and themSQLTEXTtype.
All ODBC 2.5 functions are also supported (addedREPEAT). This provides
better portability.
Added text types TINYTEXT,TEXT,MEDIUMTEXTandLONGTEXT.  These are actuallyBLOBtypes, but all searching is
done in case-insensitive fashion.
All old BLOBfields are nowTEXTfields.  This only
changes that all searching on strings is done in case-sensitive fashion.
You must do anALTER TABLEand change the field type toBLOBif you want to have tests done in case-sensitive fashion.
Fixed some configureissues.
Made the locking code a bit safer. Fixed very unlikely
deadlock situation.
Fixed a couple of bugs in the range optimizer. Now the new range benchmark
test-selectworks. 
Added --enable-unix-socket=pathnameoption toconfigure.
Fixed a couple of portability problems with include files.
Fixed bug in range calculation that could return empty
set when searching on multiple key with only one entry (very rare).
Most things ported to FSU Pthreads, which should allow MySQL to
run on SCO.   4.11.12  SCO.
 
Works now in Solaris 2.6.
Added handling of calculation of SUM()functions.
For example, you can now useSUM(column)/COUNT(column).
Added handling of trigometric functions:
PI(),ACOS(),ASIN(),ATAN(),COS(),SIN()andTAN().
New languages: norwegian, norwegian-ny and portuguese.
Fixed parameter bug in net_print()in `procedure.cc'.
Fixed a couple of memory leaks.
Now allow also the old SELECT ... INTO OUTFILEsyntax.
Fixed bug with GROUP BYandSELECTon key with many values.
mysql_fetch_lengths()sometimes returned incorrect lengths when you usedmysql_use_result(). This affected at least some cases ofmysqldump --quick.
Fixed bug in optimization of WHERE const op field.
Fixed problem when sorting on NULLfields.
Fixed a couple of 64-bit (Alpha) problems.
Added --pid-file=#option tomysqld.
Added date formatting to FROM_UNIXTIME(), originally by Zeev Suraski.
Fixed bug in BETWEENin range optimizer (Did only test = of the first
argument).
Added machine-dependent files for MIT-pthreads i386-SCO. There is probably
more to do to get this to work on SCO 3.5.
 
Changed `Makefile.am' to take advantage of Automake 1.2.
Added the beginnings of a benchmark suite.
Added more secure password handling.
Added new client function mysql_errno(), to get the error number of
the error message. This makes error checking in the client much easier.
This makes the new server incompatible with the 3.20.x server when running
without--old-protocol.  The client code is backward compatible.
More information can be found in the `README' file!
Fixed some problems when using very long, illegal names.
 
Fixed more portability issues (incorrect sigwaitandsigsetdefines).
configureshould now be able to detect the last argument toaccept(). 
Should now work with FreeBSD 3.0 if used with
`FreeBSD-3.0-libc_r-1.0.diff',
which can be found at http://www.mysql.com/Download/Patches.
Added new option -O tmp_table_size=#tomysqld.
New function FROM_UNIXTIME(timestamp)which returns a date string in
'YYYY-MM-DD HH:MM:DD' format.
New function SEC_TO_TIME(seconds)which returns a string in
'HH:MM:SS' format.
New function SUBSTRING_INDEX(), originally by Zeev Suraski. 
Should now configure and compile on OSF1 4.0 with the DEC compiler.
Configuration and compilation on BSD/OS 3.0 works, but due to some bugs in
BSD/OS 3.0, mysqlddoesn't work on it yet.
Configuration and compilation on FreeBSD 3.0 works, but I couldn't get
pthread_createto work. 
Added reverse check lookup of hostnames to get better security.
Fixed some possible buffer overflows if filenames that are too long are used.
mysqlddoesn't accept hostnames that start with digits followed by a'.', because the hostname may look like an IP number.
Added --skip-networkingoption tomysqld, to only allow socket
connections.  (This will not work with MIT-pthreads!)
Added check of too long table names for alias.
Added check if database name is okay.
Added check if too long table names.
Removed incorrect free()that killed the server onCREATE DATABASEorDROP DATABASE.
Changed some mysqld-Ooptions to better names.
Added -O join_cache_size=#option tomysqld.
Added -O max_join_size=#option tomysqld, to be able to set a
limit how big requêtes(in this case big = slow) one should be able to handle
without specifyingSET OPTION SQL_BIG_SELECTS=1.  A # = is about 10
examined records. The default is ``unlimited''.
When comparing a TIME,DATE,DATETIMEorTIMESTAMPcolumn to a constant, the constant is converted to a time value before
performing the comparison.
This will make it easier to get ODBC (particularly Access97) to work with
the above types. It should also make dates easier to use and the comparisons
should be quicker than before.
Applied patch from Jochen Wiedmann that allows query()inmysqlperlto take a query with\0in it.
Storing a timestamp with a 2-digit year (YYMMDD) didn't work.
Fix that timestamp wasn't automatically updated if set in an UPDATEclause.
Now the automatic timestamp field is the FIRST timestamp field.
SELECT * INTO OUTFILE, which didn't correctly if the outfile already
existed.
mysqlnow shows the thread ID when starting or doing a reconnect.
Changed the default sort buffer size from 2M to 1M.
 |