|
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
BLOB columns and the functions IS NULL and
IS NOT NULL in the WHERE clause.
-
All communication packets and row buffers are now allocated dynamically
on demand. The default value of
max_allowed_packet is 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_mysqld to check for running daemon.
-
The
ELT() function is renamed to FIELD() . The new
ELT() function returns a value based on an index: FIELD()
is the inverse of ELT() Example: ELT(2,"A","B","C") returns
"B" . FIELD("B","A","B","C") returns 2 .
-
COUNT(field) , where field could have a NULL value, now
works.
-
A couple of bugs fixed in
SELECT ... GROUP BY .
-
Fixed memory overrun bug in
WHERE with 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 got Access denied .
-
Inserts of timestamps with values didn't always work.
-
INSERT INTO ... SELECT ... WHERE could give the error
Duplicated field .
-
Added some tests to
safe_mysqld to make it ``safer''.
-
LIKE was case sensitive in some places and case insensitive in others.
Now LIKE is 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
mysqlaccess script.
-
Change
FROM_DAYS() and WEEKDAY() to also take a full
TIMESTAMP or DATETIME as argument. Before they only took a
number of type YYYYMMDD or YYMMDD .
-
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
mysqld to work around a bug in MIT-pthreads. This makes multiple
small SELECT operations 20 times faster. Now lock_test.pl should
work.
-
Added
mysql_FetchHash(handle) to mysqlperl .
-
The
mysqlbug script is now distributed built to allow for reporting
bugs that appear during the build with it.
-
Changed `libmysql.c' to prefer
getpwuid() instead of
cuserid() .
-
Fixed bug in
SELECT optimizer 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
GRANT command to satisfy Powerbuilder.
-
Fixed fatal bug
packets out of order when 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
termbits from `mysql.cc'. This conflicted with
glibc 2.0.
-
Fixed some syntax errors for at least BSD and Linux.
-
Fixed bug when doing a
SELECT as superuser without a database.
-
Fixed bug when doing
SELECT with group calculation to outfile.
-
If one gives
-p or --password option to mysql without
an argument, the user is solicited for the password from the tty.
-
Added default password from
MYSQL_PWD (by Elmar Haneke).
-
Added command
kill to mysqladmin to kill a specific
MySQL thread.
-
Sometimes when doing a reconnect on a down connection this succeeded
first on second try.
-
Fixed adding an
AUTO_INCREMENT key with ALTER_TABLE .
-
AVG() gave too small value on some SELECT s with
GROUP BY and ORDER BY .
-
Added new
DATETIME type (by Giovanni Maruzzelli
-
Fixed that define
DONT_USE_DEFAULT_FIELDS works.
-
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 , TIME and
TIMESTAMP .
-
Fixed a bug in
OR of multiple tables (gave empty set).
-
Added many patches to MIT-pthreads. This fixes at least one lookup bug.
-
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 for adding other character sets.
-
Fixed bug with
LIMIT and ORDER BY .
-
Allow
ORDER BY and GROUP BY on items that aren'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, you should
add the `gibc-2.0-sigwait-patch' before compiling glibc .
-
Fixed bug in
ALTER TABLE when changing a NOT NULL field to
allow NULL values.
-
Added some ANSI92 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 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 TABLE according to SQL92.
-
Some minor compability changes.
-
Added
--port and --socket options to all utility programs and
mysqld .
-
Fixed MIT-pthreads
readdir_r() . Now mysqladmin create database
and mysqladmin drop database should 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 ...
-
MEDIUMBLOB fixed.
-
Fixed bug in
ALTER TABLE and BLOB s.
-
SELECT ... INTO OUTFILE now creates the file in the current
database directory.
-
DROP TABLE now 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-perl option to configure .
-
Lots of small portability changes.
-
ALTER TABLE didn't copy null bit. As a result, fields that were allowed
to have NULL values were always NULL .
-
CREATE didn't take numbers as DEFAULT .
-
Some compatibility changes for SunOS.
-
Removed `config.cache' from old distribution.
-
Fixed bug with
ALTER TABLE and multi-part keys.
-
New commands:
ALTER TABLE , SELECT ... INTO OUTFILE and
LOAD DATA INFILE .
-
New function:
NOW() .
-
Added new field file_priv to
mysql/user table.
-
New script
add_file_priv which adds the new field file_priv
to the user table. This script must be executed if you want to
use the new SELECT ... INTO and LOAD DATA INFILE ... commands
with a version of MySQL earlier than 3.20.7.
-
Fixed bug in locking code, which 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 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
-k option to mysqlshow , 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
configure cannot find a -lpthreads
library.
-
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_lex to handle \0 unquoted, but the client can't send
the query through the C API, because it takes a str pointer.
You must 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 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 .
-
mysql now 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 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 for comments starting with
'--' in `mysql.cc'
(Postgres syntax).
-
You can have
SELECT expressions and table columns in a SELECT
which 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_INCREMENT placement in the SQL query:
INSERT into table (auto_field) values (0);
inserted 0, but it should insert an 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 doubled '' or "" within strings for
embedded ' or " .
-
New math functions:
EXP() , LOG() , SQRT() , ROUND() , CEILING() .
-
The
configure source 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 -lstrings as before.
-
New
readline library from bash-2.0 .
-
LOTS of small changes to
configure and makefiles (and related source).
-
It 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 now 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() to ELT() .
Changed SQL function INTERVALL() to INTERVAL() .
-
Made
SHOW COLUMNS a synonym for SHOW FIELDS .
Added compatibility syntax FRIEND KEY to CREATE TABLE . In
MySQL, this creates 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
issues an error if it doesn't exist. DROP INDEX always succeeds.
-
`mysqladmin.c': added client version to version information.
-
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)
Previously, it was always unsigned.
-
Bug fixes in
CONCAT() and WEEKDAY() .
-
Changed a lot of source to get
mysqld to 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 identifier user followed by a
'(' , not as a function call.
-
The source distribution is done with
configure and Automake.
It will make porting much easier. The readline library 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
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 tbl_name
is changed so the Type column contains information suitable for
CREATE TABLE . In previous releases, some CREATE TABLE
information had to be patched when recreating tables.
-
Some parser bugs from 3.19.5 (
BLOB and TIMESTAMP ) are corrected.
TIMESTAMP now 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.
|