D.7. Alterações na distribuição 3.20.x
Version 3.20 is quite old now, and should be avoided if possible.
This information is kept here for historical purposes only.
Changes from 3.20.18 to 3.20.32b are not documented here because
the 3.21 release branched here. And the relevant changes are also
documented as changes to the 3.21 version.
D.7.1. Alterações na distribuição 3.20.18
directories from path) to
files are written with a relative path from the database
mysqld shouldn't crash on
shutdown when using the
mysqlperl version. It is now
DBD module available.
Added group function
mysqld server is now compiled by
default without debugging information. This will make the
daemon smaller and faster.
Now one usually only has to specify the
--basedir option to
mysqld. All other paths are relative in a
BLOB columns sometimes contained garbage
when used with a
SELECT on more than one
Fixed that calculations that are not in
BY work as expected (SQL-99 extension). Example:
SELECT id,id+1 FROM table GROUP BY id;
The test of using
MYSQL_PWD was reversed.
MYSQL_PWD is enabled as default in
the default release.
Fixed conversion bug which caused
to core dump with Arithmetic error on SPARC-386.
--unbuffered option to
mysql, for new
When using overlapping (unnecessary) keys and join over many
tables, the optimiser could get confused and return 0
D.7.2. Alterações na distribuição 3.20.17
You can now use
BLOB columns and the
IS NULL and
NULL in the
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.
safe_mysqld to check for running
ELT() function is renamed to
FIELD(). The new
function returns a value based on an index:
FIELD() is the inverse of
field could have a
NULL value, now works.
A couple of bugs fixed in
SELECT ... GROUP
Fixed memory overrun bug in
many unoptimisable brace levels.
Fixed some small bugs in the grant code.
If hostname isn't found by
only the IP is checked. Previously, you got
Inserts of timestamps with values didn't always work.
INSERT INTO ... SELECT ... WHERE could
give the error
Added some tests to
safe_mysqld to make
LIKE was case-sensitive in some places
and case-insensitive in others. Now
is always case-insensitive.
anywhere on the line.
SET SQL_SELECT_LIMIT=#. See
the FAQ for more details.
New version of the
WEEKDAY() to also take a full
as argument. Before they only took a number of type
Added new function
D.7.3. Alterações na distribuição 3.20.16
More changes in MIT-pthreads to get them safer. Fixed also
some link bugs at least in SunOS.
mysqld to work around a bug in
MIT-pthreads. This makes multiple small
SELECT operations 20 times faster. Now
lock_test.pl should work.
mysqlbug script is now distributed
built to allow for reporting bugs that appear during the
build with it.
libmysql.c to prefer
getpwuid() instead of
Fixed bug in
SELECT optimiser when using
many tables with the same column used as key to different
latin2 and Russian
KOI8 character tables.
Added support for a dummy
to satisfy Powerbuilder.
D.7.4. Alterações na distribuição 3.20.15
Fixed fatal bug
packets out of order when
Removed possible loop when a thread waits for command from
fcntl() fails. Thanks to Mike
Bretz for finding this bug.
Changed alarm loop in
shutdown didn't always succeed in Linux.
Removed use of
mysql.cc. This conflicted with
Fixed some syntax errors for at least BSD and Linux.
Fixed bug when doing a
superuser without a database.
Fixed bug when doing
SELECT with group
calculation to outfile.
D.7.5. Alterações na distribuição 3.20.14
If one gives
--password option to
mysql without an argument, the user is
solicited for the password from the tty.
Added default password from
mysqladmin to kill a specific MySQL
Sometimes when doing a reconnect on a down connection this
succeeded first on second try.
Fixed adding an
AUTO_INCREMENT key with
AVG() gave too small value on some
SELECT statements with
DATETIME type (by Giovanni
Fixed that defining
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
Add prezeros when packing numbers to
Fixed a bug in
OR of multiple tables
(gave empty set).
Added many patches to MIT-pthreads. This fixes at least one
D.7.6. Alterações na distribuição 3.20.13
Added standard SQL-92
Fixed bug in
Added support for Slovenian characters. The
Contrib directory contains source and
instructions for adding other character sets.
Fixed bug with
ORDER BY and
BY on items that aren't in the
SELECT list. (Thanks to Wim Bonis
<firstname.lastname@example.org>, for pointing this out.)
Allow setting of timestamp values in
Fixed bug with
SELECT ... WHERE ... =
Added changes for
glibc 2.0. To get
glibc to work, you should add the
gibc-2.0-sigwait-patch before compiling
Fixed bug in
ALTER TABLE when changing a
NOT NULL field to allow
Added some SQL-92 synonyms as field types to
CREATE TABLE now allows
New utility program
<Yves.Carlier@rug.ac.be>. This program shows
the access rights for a specific user and the grant rows
that determine this grant.
WHERE const op field (by
D.7.7. Alterações na distribuição 3.20.11
SELECT ... INTO OUTFILE, all
temporary tables are ISAM instead of HEAP to allow big
Changed date functions to be string functions. This fixed
some ``funny'' side effects when sorting on dates.
ALTER TABLE for SQL-92
Some minor compatibility changes.
options to all utility programs and
mysqladmin create database and
mysqladmin drop database should work.
Changed MIT-pthreads to use our
tempnam(). This should fix the ``sort
Added sync of records count in
sql_update. This fixed slow updates on
first connection. (Thanks to Vaclav Bittner for the test.)
D.7.8. Alterações na distribuição 3.20.10
New insert type:
INSERT INTO ... SELECT
Fixed bug in
ALTER TABLE and
SELECT ... INTO OUTFILE now creates the
file in the current database directory.
DROP TABLE now can take a list of tables.
Added some comments to installation instructions about
configure's C++ link test.
--without-perl option to
Lots of small portability changes.
D.7.9. Alterações na distribuição 3.20.9
ALTER TABLE didn't copy null bit. As a
result, fields that were allowed to have
NULL values were always
CREATE didn't take numbers as
Some compatibility changes for SunOS.
config.cache from old
D.7.10. Alterações na distribuição 3.20.8
D.7.11. Alterações na distribuição 3.20.7
SELECT ... INTO OUTFILE and
Added new field
add_file_priv which adds the
File_priv to the
user table. This script must be executed
if you want to use the new
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.
insert_test.c to include
status command 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
-k option to
mysqlshow, to get key information for a
Added long options to
D.7.12. Alterações na distribuição 3.20.6
Portable to more systems because of MIT-pthreads, which will
be used automatically if
Added GNU-style long options to almost all programs. Test
Some shared library support for Linux.
The FAQ is now in
.texi format and is
Added new SQL function
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
Added API function
mysqld now uses the
nisam.h as the maximum allowable key
The following now works:
SELECT filter_nr,filter_nr FROM filter ORDER BY filter_nr;
Previously, this resulted in the error:
'filter_nr' in order clause is ambiguous.
mysql now outputs
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
Added german error messages (60 of 80 error messages
Added new API function
mysql_fetch_lengths(MYSQL_RES *), which
returns an array of column lengths (of type
Fixed bug with
IS NULL in
Changed the optimiser a little to get better results when
searching on a key part.
STRAIGHT_JOIN to tell the optimiser that
it should join tables in the given order.
Added support for comments starting with
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.
SELECT id,lookup.text,SUM(*) FROM test,lookup
WHERE test.id=lookup.id GROUP BY id;
Fixed bug in
SUM(function) (could cause a
AUTO_INCREMENT placement in the
INSERT INTO table (auto_field) VALUES (0);
inserted 0, but it should insert an
mysqlshow.c: Added number of records in
table. Had to change the client code a little to fix this.
mysql now allows doubled
strings for embedded
New math functions:
D.7.13. Alterações na distribuição 3.20.3
configure source now compiles a
thread-free client library
This is the only library that needs to be linked with client
applications. When using the binary releases, you must link
-lmysql -lmysys -ldbug -lmystrings
readline library from
LOTS of small changes to
makefiles (and related source).
It should now be possible to compile in another directory
VPATH. Tested with GNU Make 3.75.
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
ELT(). Changed SQL function
SHOW COLUMNS a synonym for
SHOW FIELDS. Added compatibility syntax
FRIEND KEY to
TABLE. In MySQL, this creates a non-unique key on
the given columns.
CREATE INDEX and
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
Fixed core dump bug in
sql_acl (core on
db tables from database
test in the distribution.
FIELD_TYPE_CHAR can now be signed (-128
to 127) or unsigned (0 to 255) Previously, it was always
Bug fixes in
Changed a lot of source to get
be compiled with SunPro compiler.
SQL functions must now have a
immediately after the function name (no intervening space).
'USER(' is regarded as
beginning a function call, and
is regarded as an identifier
followed by a
'(', not as a function
D.7.14. Alterações na distribuição 3.20.0
The source distribution is done with
configure and Automake. It will make
porting much easier. The
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
will follow when the new
DBD code is
Dynamic language support:
mysqld can now
be started with Swedish or English (default) error messages.
mysqldump now works correctly for all
field types (even
SHOW FIELDS FROM tbl_name is
changed so the
Type column contains
information suitable for
CREATE TABLE. In
previous releases, some
information had to be patched when re-creating tables.
Some parser bugs from 3.19.5 (
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
A lot of small bug fixes done.
INSTALL files (not final version)
and some information regarding porting.