You are Here: FAQ ->Scripting & Programming->MySQL->Article #2


WebHosting 5.0 This article is for 1&1 Linux WebHosting only.


Bugs fixed in MySQL 4.0.14



                
* Comparison/sorting for `latin1_de' character set was rewritten. The old algorithm could not
handle cases like `"sa"" > "ssa"'. *Note German character set::. In rare cases it resulted
in table corruption.

* Fixed a problem with the password prompt on Windows (Bug #683)

* `ALTER TABLE ... UNION=(...)' for `MERGE' table is now allowed even if some underlying `MyISAM'
tables are read-only. (Bug #702)

* Fixed a problem with `CREATE TABLE t1 SELECT x'41''. (Bug #801)

* Removed some incorrect lock warnings from the error log.

* Fixed memory overrun when doing `REPAIR' on a table with a multi-part auto_increment key where
one part was a packed `CHAR'.

* Fixed a probable race condition in the replication code that could potentially lead to `INSERT'
statements not being replicated in the event of a `FLUSH LOGS' command or when the binary log
exceeds `max_binlog_size'. (Bug #791)

* Fixed a crashing bug in `INTERVAL' and `GROUP BY' or `DISTINCT'.(Bug #807)

* Fixed bug in `mysqlhotcopy' so it actually aborts for unsuccessful table copying operations.
Fixed another bug so that it succeeds when there are thousands of tables to copy. (Bug #812)

* Fixed problem with `mysqlhotcopy' failing to read options from option files. (Bug #808)

* Fixed bugs in optimiser that sometimes prevented MySQL from using `FULLTEXT' indexes even
though it was possible (for example, in `SELECT * FROM t1 WHERE MATCH a,b AGAINST("index") > 0').

* Fixed a bug with "table is full" in `UNION' operations.

* Fixed a security problem that enabled users with no privileges to obtain information on the list
of existing databases by using `SHOW TABLES' and similar commands.

* Fixed a stack problem on UnixWare/OpenServer.

* Fixed a configuration problem on UnixWare/OpenUnix and OpenServer.

* Fixed a stack overflow problem in password verification.

* Fixed a problem with `max_user_connections'.

* `HANDLER' without an index now works properly when a table has deleted rows. (Bug #787)

* Fixed a bug with `LOAD DATA' in `mysqlbinlog'. (Bug #670).

* Fixed that `SET CHARACTER SET DEFAULT' works. (Bug #462)

* Fixed `MERGE' table behaviour in `ORDER BY ... DESC' queries. (Bug #515)

* Fixed server crash on `PURGE MASTER LOGS' or `SHOW MASTER LOGS' when the binary log is off. (Bug #733)

* Fixed password-checking problem on Windows. (Bug #464)

* Fixed the bug in comparison of a `DATETIME' column and an integer constant. (Bug #504)

* Fixed remote mode of `mysqlbinlog'. (Bug #672)

* Fixed `ERROR 1105: Unknown error' that occurred for some `SELECT' queries, where a column that was
declared as `NOT NULL' was compared with an expression that took `NULL' value.

* Changed timeout in `mysql_real_connect()' to use `poll()' instead of `select()' to work around problem
with many open files in the client.

* Fixed incorrect results from `MATCH ... AGAINST' used with a `LEFT JOIN' query.

* Fixed a bug that limited the maximum value for `mysqld' variables to 4294967295 when they are specified
on the command line.

* Fixed a bug that sometimes caused spurious "Access denied" errors in `HANDLER ... READ' statements,
when a table is referenced via an alias.

* Fixed portability problem with `safe_malloc', which caused MySQL to give "Freeing wrong aligned
pointer" errors on SCO 3.2.

* `ALTER TABLE ... ENABLE/DISABLE KEYS' could cause a core dump when done after an `INSERT DELAYED'
statement on the same table.

* Fixed problem with conversion of localtime to GMT where some times resulted in different (but correct)
timestamps. Now MySQL should use the smallest possible timestamp value in this case. (Bug #316)

* Very small query cache sizes could crash `mysqld'. (Bug #549)

* Fixed a bug (accidentally introduced by us but present only in version 4.0.13) that made
`INSERT ... SELECT' into an `AUTO_INCREMENT' column not replicate well. This bug is in the master,
not in the slave. (Bug #490)

* Fixed a bug: When an `INSERT ... SELECT' statement inserted rows into a non-transactional table, but
failed at some point (for example, due to a "Duplicate key" error), the query was not written to the
binlog. Now it is written to the binlog, with its error code, as all other queries are. About the
`slave-skip-errors' option for how to handle partially completed queries in the slave,
see *Note Replication Options::. (Bug #491)

* `SET FOREIGN_KEY_CHECKS=0' was not replicated properly. The fix probably will not be backported to 3.23.

* On a slave, `LOAD DATA INFILE' which had no `IGNORE' or `REPLACE' clause on the master, was replicated
with `IGNORE'. While this is not a problem if the master and slave data are identical (a `LOAD' that
produces no duplicate conflicts on the master will produce none on the slave anyway), which is true in
normal operation, it is better for debugging not to silently add the `IGNORE'. That way, you can get an
error message on the slave and discover that for some reason, the data on master and slave are different
and investigate why. (Bug #571)

* On a slave, `LOAD DATA INFILE' printed an incomplete "Duplicate entry '%-.64s' for key %d"' message
(the key name and value were not mentioned) in case of duplicate conflict (which does not happen in
normal operation). (Bug #573)

* When using a slave compiled with `--debug', `CHANGE MASTER TO RELAY_LOG_POS' could cause a debug
assertion failure. (Bug #576)

* When doing a `LOCK TABLES WRITE' on an InnoDB table, commit could not happen, if the query was not
written to the binary log (for example, if `--log-bin' was not used, or `binlog-ignore-db' was used).
(Bug #578)

* If a 3.23 master had open temporary tables that had been replicated to a 4.0 slave, and the binlog
got rotated, these temporary tables were immediately dropped by the slave (which caused problems if
the master used them subsequently). This bug had been fixed in 4.0.13, but in a manner which caused
an unlikely inconvenience: if the 3.23 master died brutally (power failure), without having enough
time to automatically write `DROP TABLE' statements to its binlog, then the 4.0.13 slave would not
notice the temporary tables have to be dropped, until the slave `mysqld'server is restarted. This
minor inconvenience is fixed in 3.23.57 and 4.0.14 (meaning the master must be upgraded to 3.23.57
and the slave to 4.0.14 to remove the inconvenience). (Bug #254)

* If `MASTER_POS_WAIT()' was waiting, and the slave was idle, and the SQL slave thread terminated,
`MASTER_POS_WAIT()' would wait forever. Now when the SQL slave thread terminates, `MASTER_POS_WAIT()'
immediately returns `NULL' ("slave stopped"). (Bug #651)

* After `RESET SLAVE; START SLAVE;', the `Relay_log_space' value displayed by `SHOW SLAVE STATUS' was
too big by four bytes. (Bug #763)

* If a query was ignored on the slave (because of `replicate-ignore-table' and other similar rules),
the slave still checked if the query got the same error code (0, no error) as on the master. So if the
master had an error on the query (for example, "Duplicate entry" in a multiple-row insert), then the
slave stopped and warned that the error codes didn't match. (Bug #797)



Print Article
How useful was this article?
(From 5 = Very Useful to 1 = Not Very Useful at all):
1 2 3 4 5