D.6 Changes in release 3.21.x
Version 3.21 is quite old now, and should be avoided if possible. This
information is kept here for historical purposes only.
D.6.1 Changes in release 3.21.33
-
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.
D.6.2 Changes in release 3.21.32
-
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-external-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 optimiser that wrote
Use_count: Wrong count for ... in the error log file.
D.6.3 Changes in release 3.21.31
-
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.
D.6.4 Changes in release 3.21.30
-
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.
D.6.5 Changes in release 3.21.29
-
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 optimiser (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").
D.6.6 Changes in release 3.21.28
-
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.
D.6.7 Changes in release 3.21.27
-
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 optimiser 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_col_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 with an accent).
-
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.)
D.6.8 Changes in release 3.21.26
-
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 optimiser code when using many part keys
on the same key:
INDEX (Organisation,Surname(35),Initials(35)).
-
Added some tests to the table order optimiser 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.
D.6.9 Changes in release 3.21.25
-
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.
D.6.10 Changes in release 3.21.24
-
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 optimiser 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 OSF/1 (tested on 4.0D).
-
Added hooks to allow
LIKE optimisation with international character
support.
-
Upgraded
DBI to 0.93.
D.6.11 Changes in release 3.21.23
-
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 recognise 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:SS') as argument.
-
Fixed unlikely(?) key optimiser bug when using
OR operators of key parts
inside AND expressions.
-
Added
variables command to mysqladmin.
-
A lot of small changes to the binary releases.
-
Fixed a bug in the new protocol from MySQL Version 3.21.20.
-
Changed
ALTER TABLE to work with Windows (Windows can't rename
open files). Also fixed a couple of small bugs in the Windows version.
-
All standard MySQL clients are now ported to MySQL for Windows.
-
MySQL can now be started as a service on NT.
D.6.12 Changes in release 3.21.22
-
Starting with this version, all MySQL distributions will be
configured, compiled and tested with
crash-me and the benchmarks on
the following platforms: SunOS 5.6 sun4u, SunOS 5.5.1 sun4u, SunOS 4.14 sun4c,
SunOS 5.6 i86pc, Irix 6.3 mips5k, HP-UX 10.20 hppa, AIX 4.2.1 ppc,
OSF/1 V4.0 alpha, FreeBSD 2.2.2 i86pc and BSDI 3.1 i386.
-
Fix
COUNT(*) problems when the WHERE clause didn't match any
records. (Bug from 3.21.17.)
-
Removed that
NULL = NULL is true. Now you must use IS NULL
or IS NOT NULL to test whether a value is NULL.
(This is according to SQL-99 but may break
old applications that are ported from mSQL.)
You can get the old behaviour by compiling with -DmSQL_COMPLIANT.
-
Fixed bug that core dumped when using many
LEFT OUTER JOIN clauses.
-
Fixed bug in
ORDER BY on string formula with possible NULL values.
-
Fixed problem in range optimiser when using
<= on sub index.
-
Added functions
DAYOFYEAR(), DAYOFMONTH(), MONTH(),
YEAR(), WEEK(), QUARTER(), HOUR(), MINUTE(),
SECOND() and FIND_IN_SET().
-
Added
SHOW VARIABLES command.
-
Added support of "long constant strings" from SQL-99:
| | mysql> SELECT 'first ' 'second'; -> 'first second'
|
-
Upgraded Msql-Mysql-modules to 1.1825.
-
Upgraded
mysqlaccess to 2.02.
-
Fixed problem with Russian character set and
LIKE.
-
Ported to OpenBSD 2.1.
-
New Dutch error messages.
D.6.13 Changes in release 3.21.21a
-
Configure changes for some operating systems.
D.6.14 Changes in release 3.21.21
-
Fixed optimiser bug when using
WHERE data_field = date_field2 AND date_field2 = constant.
-
Added
SHOW STATUS command.
-
Removed `manual.ps' from the source distribution to make it smaller.
D.6.15 Changes in release 3.21.20
-
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.
D.6.16 Changes in release 3.21.19
-
Upgraded
DBD to 1.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).
D.6.17 Changes in release 3.21.18
-
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.
D.6.18 Changes in release 3.21.17
-
Changed documentation string of
--with-unix-socket-path to avoid
confusion.
-
Added ODBC and SQL-99 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 values 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.
-
Optimised key block caching. This will be quicker than the old algorithm when
using bigger key caches.
D.6.19 Changes in release 3.21.16
-
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.
D.6.20 Changes in release 3.21.15
-
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 SQL-99.
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 an SQL server. Tested with
mSQL, PostgreSQL, Solid and MySQL.
-
Fixed bug in range-optimiser 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 TO 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.
D.6.21 Changes in release 3.21.14b
-
Fixed a couple of small
configure problems on some platforms.
D.6.22 Changes in release 3.21.14a
-
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 values 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 requires a database argument.
-
Changed the place where
HAVING should be. According to the SQL standards, it should
be after GROUP BY but before ORDER BY. MySQL Version 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.
D.6.23 Changes in release 3.21.13
-
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.
D.6.24 Changes in release 3.21.12
-
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 SQL-99.
-
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 SQL-99
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 for the --bind-address
option.
-
Added
SET CHARACTER SET cp1251_koi8 to enable conversions of
data to and from the cp1251_koi8 character set.
-
Lots of changes for Windows 95 port. In theory, this version should now be
easily portable to Windows 95.
-
Changed the
CREATE COLUMN syntax of NOT NULL columns to be after
the DEFAULT value, as specified in the SQL-99 standard. This will
make mysqldump with NOT NULL and default values incompatible with
MySQL Version 3.20.
-
Added many function name aliases so the functions can be used with
ODBC or SQL-92 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.
D.6.25 Changes in release 3.21.11
-
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 error messages.
-
Fixed bug in
ORDER BY and GROUP BY with NULL columns.
-
Added function
LAST_INSERT_ID() SQL function 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.
D.6.26 Changes in release 3.21.10
-
New program
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 BLOBtypes, 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 datatype 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 optimiser. Now the new range benchmark
test-select works.
D.6.27 Changes in release 3.21.9
-
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. See section SCO Notes.
D.6.28 Changes in release 3.21.8
-
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 optimisation 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 optimiser (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.
D.6.29 Changes in release 3.21.7
-
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.
D.6.30 Changes in release 3.21.6
-
Fixed more portability issues (incorrect
sigwait and sigset
defines).
-
configure should now be able to detect the last argument to
accept().
D.6.31 Changes in release 3.21.5
-
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/downloads/patches.html.
-
Added new
-O tmp_table_size=# option to mysqld.
-
New function
FROM_UNIXTIME(timestamp) which returns a date string in
'YYYY-MM-DD HH:MM:SS' format.
-
New function
SEC_TO_TIME(seconds) which returns a string in
'HH:MM:SS' format.
-
New function
SUBSTRING_INDEX(), originally by Zeev Suraski.
D.6.32 Changes in release 3.21.4
-
Should now configure and compile on OSF/1 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.
D.6.33 Changes in release 3.21.3
-
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 allow only 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 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.
D.6.34 Changes in release 3.21.2
D.6.35 Changes in release 3.21.0
-
New reserved words used:
INTERVAL, EXPLAIN, READ,
WRITE, BINARY.
-
Added ODBC function
CHAR(num,...).
-
New operator
IN. This uses a binary search to find a match.
-
New command
LOCK TABLES tbl_name [AS alias] {READ|WRITE} ...
-
Added
--log-update option to mysqld, to get a log suitable for
incremental updates.
-
New command
EXPLAIN SELECT ... to get information about how the
optimiser will do the join.
-
For easier client code, the client should no longer use
FIELD_TYPE_TINY_BLOB, FIELD_TYPE_MEDIUM_BLOB,
FIELD_TYPE_LONG_BLOB or FIELD_TYPE_VAR_STRING (as
previously returned by mysql_list_fields). You should instead only use
FIELD_TYPE_BLOB or FIELD_TYPE_STRING. If you want exact
types, you should use the command SHOW FIELDS.
-
Added varbinary syntax:
0x###### which can be used as a string
(default) or a number.
-
FIELD_TYPE_CHAR is renamed to FIELD_TYPE_TINY.
-
Changed all fields to C++ classes.
-
Removed FORM struct.
-
Fields with
DEFAULT values no longer need to be NOT NULL.
-
New field types:
-
ENUM
A string which can take only a couple of defined values. The value is
stored as a 1-3 byte number that is mapped automatically to a string.
This is sorted according to string positions!
-
SET
A string which may have one or many string values separated with ','.
The string is stored as a 1-, 2-, 3-, 4- or 8-byte number where each bit stands
for a specific set member. This is sorted according to the unsigned value
of the stored packed number.
-
Now all function calculation is done with
double or long long.
This will provide the full 64-bit range with bit functions and fix some
conversions that previously could result in precision losses. One should
avoid using unsigned long long columns with full 64-bit range
(numbers bigger than 9223372036854775807) because calculations are done
with signed long long.
-
ORDER BY will now put NULL field values first. GROUP BY
will also work with NULL values.
-
Full
WHERE with expressions.
-
New range optimiser that can resolve ranges when some keypart prefix is
constant. Example:
| | mysql> SELECT * FROM tbl_name
-> WHERE key_part_1="customer"
-> AND key_part_2>=10 AND key_part_2<=10;
|
Hosting by: Hurra Communications Ltd.
Generated: 2007-01-26 17:58:44