|
-
Fixed problem when sending
SIGHUP to mysqld ;
mysqld core dumped when starting from boot on some systems.
-
Fixed problem with losing a little memory for some connections.
-
DELETE FROM tbl_name without a WHERE condition is now done the
long way when you use LOCK TABLES or 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
refresh often. 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-locking
option.
There was a ``very small'' time gap after a mysqladmin refresh when
a table could be corrupted if one thread updated a table while another
thread did mysqladmin refresh and 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 DISTINCT with a WHERE clause that didn't match any rows
returned a row in some contexts (bug only in 3.21.31).
-
GROUP BY + ORDER BY returned 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
TINYINT type on Irix.
-
Fixed problem with
LEFT("constant_string",function) .
-
Fixed problem with
FIND_IN_SET() .
-
LEFT JOIN core dumped if the second table is used with a constant
WHERE/ON expression 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.
-
mysql now returns an exit code > 0 if the query returned an error.
-
Saving of command line history to file in
mysql client.
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_mysqld to redirect startup messages to
'hostname'.err instead
of 'hostname'.log to reclaim file space on mysqladmin refresh .
-
ENUM always had the first entry as default value.
-
ALTER TABLE wrote two entries to the update log.
-
sql_acc() now closes the mysql grant tables after a reload to
save table space and memory.
-
Changed
LOAD DATA to use less memory with tables and BLOB
columns.
-
Sorting on a function which made a division / 0 produced a wrong set
in some cases.
-
Fixed
SELECT problem with LEFT() when using the czech character
set.
-
Fixed problem in
isamchk ; it couldn't repair a packed table in a very
unusual case.
-
SELECT statements with & or | (bit functions) failed on
columns with NULL values.
-
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 tbl_name never removed locks properly.
-
Fixed problem when grouping on an
OR function.
-
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) or MAX(integer) in
GROUP 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_tables to show status .
-
Changed connect timeout to 3 seconds to make it somewhat harder
for crackers to kill
mysqld through telnet + TCP/IP.
-
Fixed bug in range optimizer when using
WHERE key_part_1 >= something AND key_part_2 <= something_else .
-
Changed
configure for detection of FreeBSD 3.0 9803xx and above
-
WHERE with 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-protocol option to mysqld .
-
SELECT which 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 /TEXT in GROUP BY with many
tables.
-
An
ENUM field that is not declared NOT NULL has NULL as
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_tables much faster.
-
Added a retry loop around
accept() to possibly fix some problems on some
Linux machines.
-
Changed
typedef 'string' to typedef '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 . Try isamchk --help .
-
Fixed a bug when using 8 bytes long (alpha);
filesort() didn't work.
Affects DISTINCT , ORDER BY and GROUP BY on 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
SELECT on the
table.
-
Fixed problem with range optimizer with many
OR operators on key parts
inside each other.
-
Recoded
MIN() and MAX() to work properly with strings and
HAVING .
-
Changed default umask value for new files from
0664 to 0660 .
-
Fixed problem with
LEFT JOIN and constant expressions in the ON
part.
-
Added Italian error messages from brenno@dewinter.com.
-
configure now works better on OSF1 (tested on 4.0D).
-
Added hooks to allow
LIKE optimization with international character
support.
-
Upgraded
DBI to 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
TIMESTAMP to NULL in LOAD DATA INFILE ... didn't
set the current time for the TIMESTAMP .
-
Fix
BETWEEN to recognize binary strings. Now BETWEEN is
case sensitive.
-
Added
--skip-thread-priority option to mysqld , for systems
where mysqld 's thread scheduling doesn't work properly (BSDI 3.1).
-
Added ODBC functions
DAYNAME() and MONTHNAME() .
-
Added function
TIME_FORMAT() . This works like DATE_FORMAT() ,
but takes a time string ('HH:MM:DD' ) as argument.
-
Fixed unlikely(?) key optimizer bug when using
OR s of key parts
inside AND s.
-
Added command
variables to mysqladmin .
-
A lot of small changes to the binary releases.
-
Fixed a bug in the new protocol from MySQL 3.21.20.
-
Changed
ALTER TABLE to 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 stat to return the right number of queries.
-
Changed protocol (downward compatible) to mark if a column has the
AUTO_INCREMENT attribute or is a TIMESTAMP . This is needed for
the new Java driver.
-
Added Hebrew sorting order by Zeev Suraski.
-
Solaris 2.6: Fixed
configure bugs and increased maximum table size
from 2G to 4G.
-
Upgraded
DBD to 1823. This version implements mysql_use_result in
DBD-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
DBI to 0.91.
-
Fixed a couple of problems with
LEFT OUTER JOIN .
-
Added
CROSS JOIN syntax. CROSS is now a reserved word.
-
Recoded
yacc /bison stack allocation to be even safer and to allow
MySQL to handle even bigger expressions.
-
Fixed a couple of problems with the update log.
-
ORDER BY was slow when used with key ranges.
-
Changed documentation string of
--with-unix-socket-path to 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_HOST as the default host if it's defined.
-
SELECT col_name, SUM(expr) now returns NULL for col_name
when there are matching rows.
-
Fixed problem with comparing binary strings and
BLOB s 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
mysqld
restart if one thread was reading data that another thread modified.
-
LIMIT offset,count didn't work in INSERT ... 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)
and TRUNCATE() .
-
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 NULL fields.
-
Timestamp wasn't always updated properly in
UPDATE SET ... statements.
-
Allow empty strings as default values for
BLOB and TEXT , to
be compatible with mysqldump .
-
WARNING: INCOMPATIBLE CHANGE!!
mysqlperl is now from
Msql-Mysql-modules. This means that connect() now takes
host , database , user , password arguments! The old
version took host , database , password , user .
-
Allow
DATE '1997-01-01' , TIME '12:10:10' and
TIMESTAMP '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 named DATE , TIME
or TIMESTAMP . :( Old columns can still be accessed through
tablename.columnname !)
-
Changed Makefiles to hopefully work better with BSD systems. Also,
`manual.dvi' is now included in the distribution to avoid having stupid
make programs trying to rebuild it.
-
readline library upgraded to version 2.1.
-
A new sortorder german-1. That is a normal ISO-Latin1 with a german sort
order.
-
Perl
DBI /DBD is now included in the distribution. DBI
is now the recommended way to connect to MySQL from Perl.
-
New portable benchmark suite with
DBD , with test results from
mSQL 2.0.3, MySQL, PostgreSQL 6.2.1 and Solid server 2.2.
-
crash-me is now included with the benchmarks; This is a Perl program
designed to find as many limits as possible in a SQL server. Tested with
mSQL , PostgreSQL, Solid and MySQL.
-
Fixed bug in range-optimizer that crashed MySQL on some queries.
-
Table and column name completion for
mysql command line tool, by Zeev
Suraski and Andi Gutmans.
-
Added new command
REPLACE that works like INSERT but
replaces conflicting records with the new record. REPLACE INTO
TABLE ... SELECT ... works also.
-
Added new commands
CREATE DATABASE db_name and DROP
DATABASE db_name .
-
Added
RENAME option to ALTER TABLE : ALTER TABLE name
RENAME AS new_name .
-
make_binary_distribution now includes `libgcc.a' in
`libmysqlclient.a'. This should make linking work for people who don't
have gcc .
-
Changed
net_write() to my_net_write() because of a name
conflict with Sybase.
-
New function
DAYOFWEEK() compatible with ODBC.
-
Stack checking and
bison memory overrun checking to make MySQL
safer with weird queries.
-
Fixed a couple of small
configure problems 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
DATE and TIME values with NULL .
-
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 to INT s before sorting.
-
Fixed slow sorting when sorting on key field when using
key_column=constant .
-
Sorting on calculated
DOUBLE values sorted on integer results instead.
-
mysql no longer needs a database argument.
-
Changed the place where
HAVING should be. According to ANSI, it should
be after GROUP BY but before ORDER BY . MySQL 3.20
incorrectly had it last.
-
Added Sybase command
USE DATABASE to 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
mysqld doesn't crash even if you haven't done a
ulimit -n 256 before starting mysqld .
-
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
LIKE on 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
--table option to mysql to 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 made isamchk
destroy 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
NULL
if the returned string should be longer than max_allowed_packet bytes.
-
Changed the name of the
INTERVAL type to ENUM , because
INTERVAL is used in ANSI SQL.
-
In some cases, doing a
JOIN + GROUP + INTO OUTFILE ,
the result wasn't grouped.
-
LIKE with '_' as last character didn't work. Fixed.
-
Added extended ANSI SQL
TRIM() function.
-
Added
CURTIME() .
-
Added
ENCRYPT() function by Zeev Suraski.
-
Fixed better
FOREIGN KEY syntax skipping. New reserved words:
MATCH , FULL , PARTIAL .
-
mysqld now allows IP number and hostname to the --bind-address
option.
-
Added
SET OPTION CHARACTER SET cp1251_koi8 to 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 COLUMN syntax of NOT NULL columns to be after
the DEFAULT value, as specified in the ANSI SQL standard. This will
make mysqldump with NOT NULL and 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 tbl_name ALTER COLUMN col_name SET DEFAULT
NULL .
-
Added
CHAR and BIT as synonyms for CHAR(1) .
-
Fixed core dump when updating as a user who has only select privilege.
-
INSERT ... SELECT ... GROUP BY didn't work in some cases. An
Invalid use of group function error occurred.
-
When using
LIMIT , SELECT now always uses keys instead of record
scan. This will give better performance on SELECT and a WHERE
that 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() and BIT_AND() .
-
Added compatibility functions
CHECK and REFERENCES .
CHECK is now a reserved word.
-
Added
ALL option to GRANT for better compatibility. (GRANT
is still a dummy function.)
-
Added partly-translated dutch messages.
-
Fixed bug in
ORDER BY and GROUP BY with NULL columns.
-
Added function
last_insert_id() to retrieve last AUTO_INCREMENT
value. This is intended for clients to ODBC that can't use the
mysql_insert_id() API function, but can be used by any client.
-
Added
--flush-logs option to mysqladmin .
-
Added command
STATUS to mysql .
-
Fixed problem with
ORDER BY /GROUP BY because of bug in gcc .
-
Fixed problem with
INSERT ... SELECT ... GROUP BY .
-
New
mysqlaccess .
-
CREATE now supports all ODBC types and the mSQL TEXT type.
All ODBC 2.5 functions are also supported (added REPEAT ). This provides
better portability.
-
Added text types
TINYTEXT , TEXT , MEDIUMTEXT and
LONGTEXT . These are actually BLOB types, but all searching is
done in case-insensitive fashion.
-
All old
BLOB fields are now TEXT fields. This only
changes that all searching on strings is done in case-sensitive fashion.
You must do an ALTER TABLE and change the field type to BLOB
if you want to have tests done in case-sensitive fashion.
-
Fixed some
configure issues.
-
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-select works.
-
Added
--enable-unix-socket=pathname option to configure .
-
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 notes.
-
Works now in Solaris 2.6.
-
Added handling of calculation of
SUM() functions.
For example, you can now use SUM(column)/COUNT(column) .
-
Added handling of trigometric functions:
PI() , ACOS() , ASIN() , ATAN() , COS() ,
SIN() and TAN() .
-
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 OUTFILE syntax.
-
Fixed bug with
GROUP BY and SELECT on key with many values.
-
mysql_fetch_lengths() sometimes returned incorrect lengths when you used
mysql_use_result() . This affected at least some cases of
mysqldump --quick .
-
Fixed bug in optimization of
WHERE const op field .
-
Fixed problem when sorting on
NULL fields.
-
Fixed a couple of 64-bit (Alpha) problems.
-
Added
--pid-file=# option to mysqld .
-
Added date formatting to
FROM_UNIXTIME() , originally by Zeev Suraski.
-
Fixed bug in
BETWEEN in 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
sigwait and sigset
defines).
-
configure should now be able to detect the last argument to
accept() .
-
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=# to mysqld .
-
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,
mysqld doesn't work on it yet.
-
Configuration and compilation on FreeBSD 3.0 works, but I couldn't get
pthread_create to work.
-
Added reverse check lookup of hostnames to get better security.
-
Fixed some possible buffer overflows if filenames that are too long are used.
-
mysqld doesn't accept hostnames that start with digits followed by a
'.' , because the hostname may look like an IP number.
-
Added
--skip-networking option to mysqld , 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 on
CREATE DATABASE or DROP DATABASE .
-
Changed some
mysqld -O options to better names.
-
Added
-O join_cache_size=# option to mysqld .
-
Added
-O max_join_size=# option to mysqld , to be able to set a
limit how big queries (in this case big = slow) one should be able to handle
without specifying SET OPTION SQL_BIG_SELECTS=1 . A # = is about 10
examined records. The default is ``unlimited''.
-
When comparing a
TIME , DATE , DATETIME or TIMESTAMP
column 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() in
mysqlperl to take a query with \0 in it.
-
Storing a timestamp with a 2-digit year (
YYMMDD ) didn't work.
-
Fix that timestamp wasn't automatically updated if set in an
UPDATE
clause.
-
Now the automatic timestamp field is the FIRST timestamp field.
-
SELECT * INTO OUTFILE , which didn't correctly if the outfile already
existed.
-
mysql now shows the thread ID when starting or doing a reconnect.
-
Changed the default sort buffer size from 2M to 1M.
|