C++ CSS HTML Java JavaScript MySQL Oracle PERL PHP SQL Unix VBScript XHTML XML Сети
Changes in release 3.22.x (Old; discontinued) (MySQL 4.0)
 
Changes in release 3.22.x (Old; discontinued)
=============================================

The 3.22 version has faster and safer connect code than version 3.21,
as well as a lot of new nice enhancements.  As there aren't really any
major changes, upgrading from 3.21 to 3.22 should be very easy and
painless.  *Note Upgrading-from-3.21::.

Changes in release 3.22.35
--------------------------

   * Fixed problem with `STD()'.

   * Merged changes from the newest `ISAM' library from 3.23.

   * Fixed problem with `INSERT DELAYED'.

   * Fixed a bug core dump when using a `LEFT JOIN'/`STRAIGHT_JOIN' on
     a table with only one row.

Changes in release 3.22.34
--------------------------

   * Fixed problem with `GROUP BY' on `TINYBLOB' columns; this caused
     bugzilla to not show rows in some queries.

   * Had to do total recompile of the Windows binary version as VC++
     didn't compile all relevant files for 3.22.33 :(

Changes in release 3.22.33
--------------------------

   * Fixed problems in Windows when locking tables with `LOCK TABLE'.

   * Quicker kill of `SELECT DISTINCT' queries.

Changes in release 3.22.32 (14 Feb 2000)
----------------------------------------

   * Fixed problem when storing numbers in timestamps.

   * Fix problem with timezones that have half hour offsets.

   * Added `mysqlhotcopy', a fast online hot-backup utility for local
     MySQL databases. By Tim Bunce.

   * New more secure `mysqlaccess'. Thanks to Steve Harvey for this.

   * Fixed security problem in the protocol regarding password checking.

   * Fixed problem that affected queries that did arithmetic on `GROUP'
     functions.

   * Fixed a bug in the `ISAM' code when deleting rows on tables with
     packed indexes.

Changes in release 3.22.31
--------------------------

   * A few small fixes for the Windows version.

Changes in release 3.22.30
--------------------------

   * Fixed optimiser problem on `SELECT' when using many overlapping
     indexes.

   * Disabled floating-point exceptions for FreeBSD to fix core dump
     when doing `SELECT FLOOR(POW(2,63))'.

   * Added print of default arguments options to all clients.

   * Fixed critical problem with the `WITH GRANT OPTION' option.

   * Fixed non-critical Y2K problem when writing short date to log
     files.

Changes in release 3.22.29 (02 Jan 2000)
----------------------------------------

   * Upgraded the configure and include files to match the latest 3.23
     version.  This should increase portability and make it easier to
     build shared libraries.

   * Added latest patches to MIT-pthreads for NetBSD.

   * Fixed problem with timezones that are < GMT -11.

   * Fixed a bug when deleting packed keys in NISAM.

   * Fixed problem that could cause MySQL to touch freed memory when
     doing very complicated `GROUP BY' queries.

   * Fixed core dump if you got a crashed table where an `ENUM' field
     value was too big.

   * Added `mysqlshutdown.exe' and `mysqlwatch.exe' to the Windows
     distribution.

   * Fixed problem when doing `ORDER BY' on a reference key.

   * Fixed that `INSERT DELAYED' doesn't update timestamps that are
     given.

Changes in release 3.22.28 (20 Oct 1999)
----------------------------------------

   * Fixed problem with `LEFT JOIN' and `COUNT()' on a column which was
     declared `NULL' + and it had a `DEFAULT' value.

   * Fixed core dump problem when using `CONCAT()' in a `WHERE' clause.

   * Fixed problem with `AVG()' and `STD()' with `NULL' values.

Changes in release 3.22.27
--------------------------

   * Fixed prototype in `my_ctype.h' when using other character sets.

   * Some configure issues to fix problems with big filesystem
     detection.

   * Fixed problem when sorting on big `BLOB' columns.

   * `ROUND()' will now work on Windows.

Changes in release 3.22.26 (16 Sep 1999)
----------------------------------------

   * Fixed core dump with empty `BLOB/TEXT' column argument to
     `REVERSE()'.

   * Extended `/*! */' with version numbers.

   * Changed `SUBSTRING(text FROM pos)' to conform to SQL-99. (Before
     this construct returned the rightmost 'pos' characters.)

   * Fixed problem with `LOCK TABLES' combined with `DELETE FROM table'

   * Fixed problem that `INSERT ... SELECT' didn't use `BIG_TABLES'.

   * `SET SQL_LOW_PRIORITY_UPDATES=#' didn't work.

   * Password wasn't updated correctly if privileges didn't change on:
     `GRANT ... IDENTIFIED BY'

   * Fixed range optimiser bug in `SELECT * FROM table_name WHERE
     key_part1 >= const AND (key_part2 = const OR key_part2 = const)'.

   * Fixed bug in compression key handling in `ISAM'.

Changes in release 3.22.25
--------------------------

   * Fixed some small problems with the installation.

Changes in release 3.22.24 (05 Jul 1999)
----------------------------------------

   * `DATA' is no longer a reserved word.

   * Fixed optimiser bug with tables with only one row.

   * Fixed bug when using `LOCK TABLES table_name READ; FLUSH TABLES;'

   * Applied some patches for HP-UX.

   * `isamchk' should now work on Windows.

   * Changed `configure' to not use big file handling on Linux as this
     crashes some Red Hat 6.0 systems

Changes in release 3.22.23 (08 Jun 1999)
----------------------------------------

   * Upgraded to use Autoconf 2.13, Automake 1.4 and `libtool' 1.3.2.

   * Better support for SCO in `configure'.

   * Added option `--defaults-file=file_name' to option file handling
     to force use of only one specific option file.

   * Extended `CREATE' syntax to ignore MySQL Version 3.23 keywords.

   * Fixed deadlock problem when using `INSERT DELAYED' on a table
     locked with `LOCK TABLES'.

   * Fixed deadlock problem when using `DROP TABLE' on a table that was
     locked by another thread.

   * Add logging of `GRANT/REVOKE' commands in the update log.

   * Fixed `isamchk' to detect a new error condition.

   * Fixed bug in `NATURAL LEFT JOIN'.

Changes in release 3.22.22 (30 Apr 1999)
----------------------------------------

   * Fixed problem in the C API when you called `mysql_close()'
     directly after `mysql_init()'.

   * Better client error message when you can't open socket.

   * Fixed `delayed_insert_thread' counting when you couldn't create a
     new delayed_insert thread.

   * Fixed bug in `CONCAT()' with many arguments.

   * Added patches for DEC 3.2 and SCO.

   * Fixed path-bug when installing MySQL as a service on NT.

   * MySQL on Windows is now compiled with VC++ 6.0 instead of with
     VC++ 5.0.

   * New installation setup for MySQL on Windows.

Changes in release 3.22.21
--------------------------

   * Fixed problem with `DELETE FROM TABLE' when table was locked by
     another thread.

   * Fixed bug in `LEFT JOIN' involving empty tables.

   * Changed the `mysql.db' column from `CHAR(32)' to `CHAR(60)'.

   * `MODIFY' and `DELAYED' are no longer reserved words.

   * Fixed a bug when storing days in a `TIME' column.

   * Fixed a problem with `Host '...' is not allowed to connect to this
     MySQL server' after one had inserted a new MySQL user with a
     `GRANT' command.

   * Changed to use `TCP_NODELAY' also on Linux (should give faster
     TCP/IP connections).

Changes in release 3.22.20 (18 Mar 1999)
----------------------------------------

   * Fixed `STD()' for big tables when result should be 0.

   * The update log didn't have newlines on some operating systems.

   * `INSERT DELAYED' had some garbage at end in the update log.

Changes in release 3.22.19 (Mar 1999: Production)
-------------------------------------------------

   * Fixed bug in `mysql_install_db' (from 3.22.17).

   * Changed default key cache size to 8M.

   * Fixed problem with queries that needed temporary tables with `BLOB'
     columns.

Changes in release 3.22.18
--------------------------

   * Fixes a fatal problem in 3.22.17 on Linux; after `shutdown' not
     all threads died properly.

   * Added option `-O flush_time=#' to `mysqld'.  This is mostly useful
     on Windows and tells how often MySQL should close all unused
     tables and flush all updated tables to disk.

   * Fixed problem that a `VARCHAR' column compared with `CHAR' column
     didn't use keys efficiently.

Changes in release 3.22.17
--------------------------

   * Fixed a core dump problem when using `--log-update' and connecting
     without a default database.

   * Fixed some `configure' and portability problems.

   * Using `LEFT JOIN' on tables that had circular dependencies caused
     `mysqld' to hang forever.

Changes in release 3.22.16 (Feb 1999: Gamma)
--------------------------------------------

   * `mysqladmin processlist' could kill the server if a new user
     logged in.

   * `DELETE FROM tbl_name WHERE key_column=col_name' didn't find any
     matching rows.  Fixed.

   * `DATE_ADD(column, ...)' didn't work.

   * `INSERT DELAYED' could deadlock with status 'upgrading lock'

   * Extended `ENCRYPT()' to take longer salt strings than 2 characters.

   * `longlong2str' is now much faster than before.  For `Intel x86'
     platforms, this function is written in optimised assembler.

   * Added the `MODIFY' keyword to `ALTER TABLE'.

Changes in release 3.22.15
--------------------------

   * `GRANT' used with `IDENTIFIED BY' didn't take effect until
     privileges were flushed.

   * Name change of some variables in `SHOW STATUS'.

   * Fixed problem with `ORDER BY' with 'only index' optimisation when
     there were multiple key definitions for a used column.

   * `DATE' and `DATETIME' columns are now up to 5 times faster than
     before.

   * `INSERT DELAYED' can be used to let the client do other things
     while the server inserts rows into a table.

   * `LEFT JOIN USING (col1,col2)' didn't work if one used it with
     tables from 2 different databases.

   * `LOAD DATA LOCAL INFILE' didn't work in the Unix version because of
     a missing file.

   * Fixed problems with `VARCHAR'/`BLOB' on very short rows (< 4
     bytes); error 127 could occur when deleting rows.

   * Updating `BLOB/TEXT' through formulas didn't work for short (< 256
     char) strings.

   * When you did a `GRANT' on a new host, `mysqld' could die on the
     first connect from this host.

   * Fixed bug when one used `ORDER BY' on column name that was the same
     name as an alias.

   * Added `BENCHMARK(loop_count,expression)' function to time
     expressions.

Changes in release 3.22.14
--------------------------

   * Allow empty arguments to `mysqld' to make it easier to start from
     shell scripts.

   * Setting a `TIMESTAMP' column to `NULL' didn't record the timestamp
     value in the update log.

   * Fixed lock handler bug when one did `INSERT INTO TABLE ... SELECT
     ... GROUP BY'.

   * Added a patch for `localtime_r()' on Windows so that it will no
     lonher crash if your date is > 2039, but instead will return a
     time of all zero.

   * Names for user-defined functions are no longer case-sensitive.

   * Added escape of `^Z' (ASCII 26) to `\Z' as `^Z' doesn't work with
     pipes on Windows.

   * `mysql_fix_privileges' adds a new column to the `mysql.func' to
     support aggregate UDF functions in future MySQL releases.

Changes in release 3.22.13
--------------------------

   * Saving `NOW()', `CURDATE()' or `CURTIME()' directly in a column
     didn't work.

   * `SELECT COUNT(*) ... LEFT JOIN ...' didn't work with no `WHERE'
     part.

   * Updated `config.guess' to allow MySQL to configure on UnixWare
     7.1.x.

   * Changed the implementation of `pthread_cond()' on the Windows
     version.  `get_lock()' now correctly times out on Windows!

Changes in release 3.22.12
--------------------------

   * Fixed problem when using `DATE_ADD()' and `DATE_SUB()' in a
     `WHERE' clause.

   * You can now set the password for a user with the `GRANT ... TO user
     IDENTIFIED BY 'password'' syntax.

   * Fixed bug in `GRANT' checking with `SELECT' on many tables.

   * Added missing file `mysql_fix_privilege_tables' to the RPM
     distribution. This is not run by default because it relies on the
     client package.

   * Added option `SQL_SMALL_RESULT' to `SELECT' to force use of fast
     temporary tables when you know that the result set will be small.

   * Allow use of negative real numbers without a decimal point.

   * Day number is now adjusted to maximum days in month if the
     resulting month after `DATE_ADD'/`DATE_SUB()' doesn't have enough
     days.

   * Fix that `GRANT' compares columns in case-insensitive fashion.

   * Fixed a bug in `sql_list.h' that made `ALTER TABLE' dump core in
     some contexts.

   * The hostname in `user@hostname' can now include `.' and `-'
     without quotes in the context of the `GRANT', `REVOKE' and `SET
     PASSWORD FOR ...' statements.

   * Fix for `isamchk' for tables which need big temporary files.

Changes in release 3.22.11
--------------------------

   
     denied' when you try to use `ALTER TABLE', `CREATE INDEX', or
     `DROP INDEX'.

   * `GRANT' to allow/deny users table and column access.

   * Changed `USER()' to return a value in `user@host' format.
     Formerly it returned only `user'.

   * Changed the syntax for how to set `PASSWORD' for another user.

   * New command `FLUSH STATUS' that resets most status variables to
     zero.

   * New status variables: `aborted_threads', `aborted_connects'.

   * New option variable: `connection_timeout'.

   * Added support for Thai sorting (by Pruet Boonma
     ).

   * Slovak and Japanese error messages.

   * Configuration and portability fixes.

   * Added option `SET SQL_WARNINGS=1' to get a warning count also for
     simple inserts.

   * MySQL now uses `SIGTERM' instead of `SIGQUIT' with shutdown to
     work better on FreeBSD.

   * Added option `\G' (print vertically) to `mysql'.

   * `SELECT HIGH_PRIORITY ...' killed `mysqld'.

   * `IS NULL' on a `AUTO_INCREMENT' column in a `LEFT JOIN' didn't
     work as expected.

   * New function `MAKE_SET()'.

Changes in release 3.22.10
--------------------------

   * Added `--bootstrap' option to `mysqld' and recoded
     `mysql_install_db' to use it.  This will make it easier to install
     MySQL with RPMs.

   * Changed `+', `-' (sign and minus), `*', `/', `%', `ABS()' and
     `MOD()' to be `BIGINT' aware (64-bit safe).

   * Fixed a bug in `ALTER TABLE' that caused `mysqld' to crash.

   * MySQL now always reports the conflicting key values when a
     duplicate key entry occurs. (Before this was only reported for
     `INSERT'.)

   * New syntax: `INSERT INTO tbl_name SET col_name=value,
     col_name=value, ...'

   * Most errors in the `.err' log are now prefixed with a time stamp.

   * Added option `MYSQL_INIT_COMMAND' to `mysql_options()' to make a
     query on connect or reconnect.

    `password', `pipe', `timeout', `user',
     `init-command', `host' and `database'.

   * Added `maybe_null' to the UDF structure.

   * Added option `IGNORE' to `INSERT' statements with many rows.

   * Fixed some problems with sorting of the `koi8' character sets;
     users of `koi8' *must* run `isamchk -rq' on each table that has an
     index on a `CHAR' or `VARCHAR' column.

   * New script `mysql_setpermission', by Luuk de Boer.  It allows easy
     creation of new users with permissions for specific databases.

   * Allow use of hexadecimal strings (0x...) when specifying a
     constant string (like in the column separators with `LOAD DATA
     INFILE').

   * Ported to OS/2 (thanks to Antony T. Curtis
     ).

   * Added more variables to `SHOW STATUS' and changed format of output
     to be like `SHOW VARIABLES'.

   * Added `extended-status' command to `mysqladmin' which will show the
     new status variables.

Changes in release 3.22.9
-------------------------

   * `SET SQL_LOG_UPDATE=0' caused a lockup of the server.

   * New SQL command:  `FLUSH [ TABLES | HOSTS | LOGS | PRIVILEGES ] [,
     ...]'

   * New SQL command:  `KILL' `thread_id'.

   * Added casts and changed include files to make MySQL easier to
     compile on AIX and DEC OSF/1 4.x

   * Fixed conversion problem when using `ALTER TABLE' from a `INT' to
     a short `CHAR()' column.

   * Added `SELECT HIGH_PRIORITY'; this will get a lock for the
     `SELECT' even if there is a thread waiting for another `SELECT' to
     get a `WRITE LOCK'.

   * Moved `wild_compare()' to string class to be able to use `LIKE' on
     `BLOB'/`TEXT' columns with `\0'.

   * Added `ESCAPE' option to `LIKE'.

   * Added a lot more output to `mysqladmin debug'.

    slower.

Changes in release 3.22.8
-------------------------

   * Czech character sets should now work much better.

   * `DATE_ADD()' and `DATE_SUB()' didn't work with group functions.

   * `mysql' will now also try to reconnect on `USE database' commands.

   * Fix problem with `ORDER BY' and `LEFT JOIN' and `const' tables.

   * Fixed problem with `ORDER BY' if the first `ORDER BY' column was a
     key and the rest of the `ORDER BY' columns wasn't part of the key.

   * Fixed a big problem with `OPTIMIZE TABLE'.

   * MySQL clients on NT will now by default first try to connect with
     named pipes and after this with TCP/IP.

   * Fixed a problem with `DROP TABLE' and `mysqladmin shutdown' on
     Windows (a fatal bug from 3.22.6).

   * Fixed problems with `TIME columns' and negative strings.

   * Added an extra thread signal loop on shutdown to avoid some error
     messages from the client.

   * MySQL now uses the next available number as extension for the
     update log file.

   * Added patches for UNIXWARE 7.

Changes in release 3.22.7 (Sep 1998: Beta)
------------------------------------------

   * Added `LIMIT' clause for the `DELETE' statement.

   
     characters didn't exist.

   
     `isamchk' for more speed.

   * Upgraded `libtool' to get the configure more portable.

   * Fixed slow `UPDATE' and `DELETE' operations when using `DATETIME'
     or `DATE' keys.

   * Changed optimiser to make it better at deciding when to do a full
     join and when using keys.

   
     privilege for this.)

   * Added handling of formats `YYMMDD', `YYYYMMDD', `YYMMDDHHMMSS' for
     numbers when using `DATETIME' and `TIMESTAMP' types. (Formerly
     these formats only worked with strings.)

     * Added the `--log-long-format' option to `mysqld' to enable
     timestamps and INSERT_IDs in the update log.

   * Added `--where' option to `mysqldump' (patch by Jim Faucette).

   * The lexical analyser now uses "perfect hashing" for faster parsing
     of SQL statements.

Changes in release 3.22.6
-------------------------

   * Faster `mysqldump'.

   
     protocol.

   * Fixed small optimise problem when updating keys.

   * Changed makefiles to support shared libraries.

   * MySQL-NT can now use named pipes, which means that you can now use
     MySQL-NT without having to install TCP/IP.

Changes in release 3.22.5
-------------------------

   
     locking code to get better handling of locks of different types.

   * Updated `DBI' to 1.00 and `DBD' to 1.2.0.

   

   * All count structures in the client (`affected_rows()',
     `insert_id()', ...) are now of type `BIGINT' to allow 64-bit values
     to be used.  This required a minor change in the MySQL protocol
     which should affect only old clients when using tables with
     `AUTO_INCREMENT' values > 16M.

   * The return type of `mysql_fetch_lengths()' has changed from `uint
     *' to `ulong *'. This may give a warning for old clients but
     should work on most machines.

   * Change `mysys' and `dbug' libraries to allocate all thread
     variables in one struct.  This makes it easier to make a threaded
     `libmysql.dll' library.

   * Use the result from `gethostname()' (instead of `uname()') when
     constructing `.pid' file names.

   * New better compressed server/client protocol.

   * `COUNT()', `STD()' and `AVG()' are extended to handle more than 4G
     rows.

   * You can now store values in the range `-838:59:59' <= x <=
     `838:59:59' in a `TIME' column.

   * *Warning: incompatible change!!* If you set a `TIME' column to too
     short a value, MySQL now assumes the value is given as: `[[[D
     ]HH:]MM:]SS' instead of `HH[:MM[:SS]]'.

   * `TIME_TO_SEC()' and `SEC_TO_TIME()' can now handle negative times
     and hours up to 32767.

   * Added new option `SET SQL_LOG_UPDATE={0|1}' to allow users with
     the `PROCESS' privilege to bypass the update log.  (Modified patch
     from Sergey A Mukhin .)

   * Fixed fatal bug in `LPAD()'.

   * Initialise line buffer in `mysql.cc' to make `BLOB' reading from
     pipes safer.

   * Added `-O max_connect_errors=#' option to `mysqld'.  Connect
     errors are now reset for each correct connection.

   * Increased the default value of `max_allowed_packet' to `1M' in
     `mysqld'.

    | REPLACE | UPDATE | DELETE} LOW_PRIORITY ...' You can
     also use `SET SQL_LOW_PRIORITY_UPDATES={0|1}' to change the
     priority for one thread.  One side effect is that `LOW_PRIORITY'
     is now a reserved word. :(

   * Add support for `INSERT INTO table ... VALUES(...),(...),(...)',
     to allow inserting multiple rows with a single statement.

   * `INSERT INTO tbl_name' is now also cached when used with `LOCK
     TABLES'.  (Previously only `INSERT ... SELECT' and `LOAD DATA
     INFILE' were cached.)

   * Allow `GROUP BY' functions with `HAVING':
          mysql> SELECT col FROM table GROUP BY col HAVING COUNT(*)>0;

   * `mysqld' will now ignore trailing `;' characters in queries. This
     is to make it easier to migrate from some other SQL servers that
     require the trailing `;'.

   * Fix for corrupted fixed-format output generated by `SELECT INTO
     OUTFILE'.

   
     from a list of values. These can now handle `REAL', `BIGINT' and
     string (`CHAR' or `VARCHAR') values.

   * *Warning: incompatible change!* `DAYOFWEEK()' had offset 0 for
     Sunday. Changed the offset to 1.

   * Give an error for queries that mix `GROUP BY' columns and fields
     when there is no `GROUP BY' specification.

   * Added `--vertical' option to `mysql', for printing results in
     vertical mode.

   * Index-only optimisation; some queries are now resolved using only
     indexes.  Until MySQL 4.0, this works only for numeric columns.
     *Note MySQL indexes: MySQL indexes.

   * Lots of new benchmarks.

   * A new C API chapter and lots of other improvements in the manual.

Changes in release 3.22.4
-------------------------

   * Added `--tmpdir' option to `mysqld', for specifying the location
     of the temporary file directory.

    == LAST_INSERT_ID()
     This allows some ODBC programs (Delphi, Access) to retrieve the
     newly inserted row to fetch the `AUTO_INCREMENT' id.

   * `DROP TABLE' now waits for all users to free a table before
     deleting it.

   * Fixed small memory leak in the new connect protocol.

   * New functions `BIN()', `OCT()', `HEX()' and `CONV()' for
     converting between different number bases.

   * Added function `SUBSTRING()' with 2 arguments.

   * If you created a table with a record length smaller than 5, you
     couldn't delete rows from the table.

   * Added optimisation to remove const reference tables from `ORDER
     BY' and `GROUP BY'.

   

   * Added `--console' option to `mysqld', to force a console window
     (for error messages) when using Windows.

   * Fixed table locks for Windows.

   * Allow `$' in identifiers.

   * Changed name of user-specific configuration file from `my.cnf' to
     `.my.cnf' (Unix only).

   * Added `DATE_ADD()' and `DATE_SUB()' functions.

Changes in release 3.22.3
-------------------------

   * Fixed a lock problem (bug in MySQL Version 3.22.1) when closing
     temporary tables.

   * Added missing `mysql_ping()' to the client library.

   * Added `--compress' option to all MySQL clients.

   * Changed `byte' to `char' in `mysql.h' and `mysql_com.h'.

Changes in release 3.22.2
-------------------------

   * Searching on multiple constant keys that matched more than 30% of
     the rows didn't always use the best possible key.

   * New functions `', `RPAD()' and `LPAD()'.

   * You can now save default options (like passwords) in a
     configuration file (`my.cnf').

   * Lots of small changes to get `ORDER BY' to work when no records
     are found when using fields that are not in `GROUP BY' (MySQL
     extension).

   * Added `--chroot' option to `mysqld', to start `mysqld' in a chroot
     environment (by Nikki Chumakov ).

   * Trailing spaces are now ignored when comparing case-sensitive
     strings; this should fix some problems with ODBC and flag 512!

   * Fixed a core dump bug in the range optimiser.

   * Added `--one-thread' option to `mysqld', for debugging with
     LinuxThreads (or `glibc').  (This replaces the `-T32' flag)

   * Added `DROP TABLE IF EXISTS' to prevent an error from occurring if
     the table doesn't exist.

   * `IF' and `EXISTS' are now reserved words (they would have to be
     sooner or later).

   * Added lots of new options to `mysqldump'.

   * Server error messages are now in `mysqld_error.h'.

   * The server/client protocol now supports compression.

   * All bug fixes from MySQL Version 3.21.32.

Changes in release 3.22.1 (Jun 1998: Alpha)
-------------------------------------------

   * Added new C API function `mysql_ping()'.

    only use `mysql_connect()'.

   * Added `mysql_options(...,MYSQL_OPT_CONNECT_TIMEOUT,...)' so you
     can set a timeout for connecting to a server.

   * Added `--timeout' option to `mysqladmin', as a test of
     `mysql_options()'.

     * `TIME' columns weren't stored properly (bug in MySQL Version
     3.22.0).

   * `UPDATE' now returns information about how many rows were matched
     and updated, and how many "warnings" occurred when doing the
     update.

   * Fixed incorrect result from `FORMAT(-100,2)'.

   * `ENUM' and `SET' columns were compared in binary (case-sensitive)
     fashion; changed to be case-insensitive.

Changes in release 3.22.0
-------------------------

   * New (backward-compatible) connect protocol that allows you to
     specify the database to use when connecting, to get much faster
     connections to a specific database.

     The `mysql_real_connect()' call is changed to:

           uint client_flag)

   * Each connection is handled by its own thread, rather than by the
     master `accept()' thread.  This fixes permanently the telnet bug
     that was a topic on the mail list some time ago.

   * All TCP/IP connections are now checked with backward-resolution of
     the hostname to get better security. `mysqld' now has a local
     hostname resolver cache so connections should actually be faster
     than before, even with this feature.

   * A site automatically will be blocked from future connections if
     someone repeatedly connects with an "improper header" (like when
     one uses telnet).

   * You can now refer to tables in different databases with references
     of the form `tbl_name@db_name' or `db_name.tbl_name'.  This makes
     it possible to give a user read access to some tables and write
     access to others simply by keeping them in different databases!

   * Added `--user' option to `mysqld', to allow it to run as another
     Unix user (if it is started as the Unix `root' user).

   * Added caching of users and access rights (for faster access rights
     checking)

   * Normal users (not anonymous ones) can change their password with
     `mysqladmin password 'new_password''.  This uses encrypted
     passwords that are not logged in the normal MySQL log!

   * All important string functions are now coded in assembler for x86
     Linux machines.  This gives a speedup of 10% in many cases.

   * For tables that have many columns, the column names are now hashed
     for much faster column name lookup (this will speed up some
     benchmark tests a lot!)

   * Some benchmarks are changed to get better individual timing.
     (Some loops were so short that a specific test took < 2 seconds.
     The loops have been changed to take about 20 seconds to make it
     easier to compare different databases. A test that took 1-2
     seconds before now takes 11-24 seconds, which is much better)

   * Re-arranged `SELECT' code to handle some very specific queries
     involving group functions (like `COUNT(*)') without a `GROUP BY'
     but with `HAVING'. The following now works:
          mysql> SELECT COUNT(*) as C FROM table HAVING C > 1;

   * Changed the protocol for field functions to be faster and avoid
     some calls to `malloc()'.

   * Added `-T32' option to `mysqld', for running all queries under the
     main thread.  This makes it possible to debug `mysqld' under Linux
     with `gdb'!

   * Added optimisation of `not_null_column IS NULL' (needed for some
     Access queries).

   * Allow `STRAIGHT_JOIN' to be used between two tables to force the
     optimiser to join them in a specific order.

   * String functions now return `VARCHAR' rather than `CHAR' and the
     column type is now `VARCHAR' for fields saved as `VARCHAR'.  This
     should make the `MyODBC' driver better, but may break some old
     MySQL clients that don't handle `FIELD_TYPE_VARCHAR' the same way
     as `FIELD_TYPE_CHAR'.

   * `CREATE INDEX' and `DROP INDEX' are now implemented through `ALTER
     TABLE'.  `CREATE TABLE' is still the recommended (fast) way to
     create indexes.

   * Added `--set-variable' option `wait_timeout' to `mysqld'.

   * Added time column to `mysqladmin processlist' to show how long a
     query has taken or how long a thread has slept.

   * Added lots of new variables to `show variables' and some new to
     `show status'.

   * Added new type `YEAR'. `YEAR' is stored in 1 byte with allowable
     values of 0, and 1901 to 2155.

   * Added new `DATE' type that is stored in 3 bytes rather than 4
     bytes.  All new tables are created with the new date type if you
     don't use the `--old-protocol' option to `mysqld'.

   * Fixed bug in record caches; for some queries, you could get `Error
     from table handler: #' on some operating systems.

   * Added `--enable-assembler' option to `configure', for x86 machines
     (tested on Linux + `gcc').  This will enable assembler functions
     for the most important string functions for more speed!

[Назад] [Содержание] [Вперед]

Главная