:: DEVELOPER ZONE
Functionality added or changed:
Added syntax support for CHARACTER SET xxx and CHARSET=xxx
table options (to be able to read table dumps from 4.1).
Fixed replication bug that caused the slave to loose its position in some cases when the replication log was rotated.
Fixed that a slave will restart from the start of a transaction if it's killed in the middle of one.
Moved the manual pages from man to man/man1 in the
binary distributions.
The default type returned by IFNULL(A,B) is now set to be the
more 'general' of the types of A and B. (The order is
STRING, REAL or INTEGER).
Moved the mysql.server startup script in the RPM packages from
/etc/rc.d/init.d/mysql to /etc/init.d/mysql
(which almost all current Linux distributions support for LSB compliance).
Added Qcache_lowmem_prunes status variable (number of queries that were
deleted from cache because of low memory).
Fixed mysqlcheck so it can deal with table names containing dashes.
Bulk insert optimization
(see Secção 4.6.8.4, “SHOW VARIABLES”)
is no longer used when inserting small (less than 100) number of rows.
Optimization added for queries like
SELECT ... FROM merge_table WHERE indexed_column=constant_expr.
Added functions LOCALTIME and LOCALTIMESTAMP as synonyms for
NOW().
CEIL is now an alias for CEILING.
The CURRENT_USER() function can be used to get a user@host
value as it was matched in the GRANT system.
See Secção 6.3.6.2, “Funções Diversas”.
Fixed CHECK constraints to be compatible with SQL-99. This made
CHECK a reserved word. (Checking of CHECK constraints is
still not implemented).
Added CAST(... as CHAR).
Added PostgreSQL compatible LIMIT syntax:
SELECT ... LIMIT row_count OFFSET offset
mysql_change_user() will now reset the connection to the state
of a fresh connect (Ie, ROLLBACK any active transaction, close
all temporary tables, reset all user variables etc..)
CHANGE MASTER and RESET SLAVE now require that slave
threads be both already stopped; these commands will return an error
if at least one of these two threads is running.
Bugs fixed:
Fixed number of found rows returned in multi table updates
Make --lower-case-table-names default on Mac OS X as the default
file system (HFS+) is case insensitive.
See Secção 6.1.3, “Caso Sensitivo nos Nomes”.
Transactions in AUTOCOMMIT=0 mode didn't rotate binary log.
A fix for the bug in a SELECT with joined tables with
ORDER BY and LIMIT clause when filesort had to be used.
In that case LIMIT was applied to filesort of one of the tables,
although it could not be.
This fix also solved problems with LEFT JOIN.
mysql_server_init() now makes a copy of all arguments. This fixes
a problem when using the embedded server in C# program.
Fixed buffer overrun in libmysqlclient library
that allowed a malicious MySQL server to crash the client
application.
Fixed security-related bug in mysql_change_user() handling.
All users are strongly recommended to upgrade to version 4.0.6.
Fixed bug that prevented --chroot command-line option of
mysqld from working.
Fixed bug in phrase operator "..." in boolean full-text search.
Fixed bug that caused OPTIMIZE TABLE to corrupt the table
under some rare circumstances.
Part rewrite of multi-table-update to optimise it, make it safer and more bug free.
LOCK TABLES now works together with multi-table-update and
multi-table-delete.
--replicate-do=xxx didn't work for UPDATE commands.
(Bug introduced in 4.0.0)
Fixed shutdown problem on Mac OS X.
Major InnoDB bugs in REPLACE, AUTO_INCREMENT, INSERT INTO ... SELECT ... were fixed. See the InnoDB changelog
in the InnoDB section of the manual.
RESET SLAVE caused a crash if the slave threads were running.
© 1995-2005 MySQL AB. All rights reserved.
