:: DEVELOPER ZONE
Note: The initial release of MySQL 4.1.3 for Windows accidentally was not compiled with support for the Spatial Extensions (OpenGIS). This was fixed by rebuilding from the same 4.1 code snapshot with the missing option and releasing those packages as version 4.1.3a.
To enable compiling the newly released PHP 5 against MySQL 4.1.3 on Windows, the Windows packages had to be rebuilt once more to add a few missing symbols to the MySQL client library. These packages were released as MySQL 4.1.3b.
Functionality added or changed:
Added the ARCHIVE storage engine.
Added SQL syntax for prepared statements. See Section 13.7, “SQL Syntax for Prepared Statements”.
Language-specific collations were added for the
ucs2 and utf8 Unicode
character sets: Icelandic, Latvian, Romanian, Slovenian, Polish,
Estonian, Swedish, Turkish, Czech, Danish, Lithuanian, Slovak,
Spanish, Traditional Spanish.
Support for per-connection time zones was added. Now you can set
the current time zone for a connection by setting the
@@time_zone system variable to a value such as
'+10:00' or 'Europe/Moscow'
(where 'Europe/Moscow' is the name of one of the
time zones described in the system tables). Functions like
CURRENT_TIMESTAMP,
UNIX_TIMESTAMP, and so forth honor this time
zone. Values of TIMESTAMP type are also
interpreted as values in this time zone. So now our
TIMESTAMP type behaves similar to Oracle's
TIMESTAMP WITH LOCAL TIME ZONE. That is, values
stored in such a column are normalized toward UTC and converted
back to the current connection time zone when they are retrieved
from such a column. To set up the tables that store time zone
information, see Section 2.9, “Post-Installation Setup and Testing”.
Warning: Incompatible change! The
timezone system variable has been removed and
replaced by system_time_zone. See
Section 5.3.3, “Server System Variables”.
Basic time zone conversion function CONVERT_TZ()
was added. It assumes that its first argument is a datetime value
in the time zone specified by its second argument and returns the
equivalent datetime value in the time zone specified by its third
argument.
CHECK TABLE now can be killed. It then marks the
table as corrupted. See Section 13.5.5.3, “KILL Syntax”.
Warning: Incompatible change! C
API change: mysql_shutdown() now requires a
second argument. This is a source-level incompatibility that
affects how you compile client programs; it does not affect the
ability of compiled clients to communicate with older servers. See
Section 24.2.3.54, “mysql_shutdown()”.
OPTIMIZE TABLE for InnoDB
tables is now mapped to ALTER TABLE instead of
ANALYZE TABLE.
sync_frm is now a settable global variable (not
only a startup option).
Added the sync_binlog=N global variable and
startup option, which makes the MySQL server synchronize its binary
log to disk (fdatasync()) after every
Nth write to the binary log.
Changed the slave SQL thread to print fewer useless error messages
(no more message duplication; no more messages when an error is
skipped (because of slave-skip-errors).
DROP DATABASE IF EXISTS, DROP TABLE IF
EXISTS, single-table DELETE and
single-table UPDATE are now written to the
binary log even if they changed nothing on the master (for example,
even if the DELETE matched no row). The old
behavior sometimes caused bad surprises in replication setups.
Replication and mysqlbinlog now have better support for the case that the session character set and collation variables are changed within a given session. See Section 6.7, “Replication Features and Known Problems”.
Added --innodb-safe-binlog server option, which
adds consistency guarantees between the content of
InnoDB tables and the binary log. See
Section 5.10.4, “The Binary Log”.
LIKE now supports the use of a prepared
statement parameter or delimited constant expression as the
argument to ESCAPE (Bug #4200).
Bugs fixed:
Fixed CREATE DATABASE IF NOT EXISTS for Win32
which caused an error if database existed. (Bug #4378)
Added missing root account to Windows version of
mysqld. (Bug #4242)
Fixed bug in prepared EXPLAIN statement which
led to server crash. (Bug #4271)
Fixed a bug of using parameters in some prepared statements via SQL syntax. (Bug #4280)
Fixed a bug in MERGE tables created with
INSERT_METHOD=LAST, that were not able to report
a key number that caused ``Duplicate entry'' error for
UNIQUE key in INSERT. As a
result, error message was not precise enough (error 1022 instead of
error 1062) and INSERT ... ON DUPLICATE KEY
UPDATE did not work. (Bug #4008)
Fixed a bug in DELETE from a table with
FULLTEXT indexes which under rare circumstances
could result in a corrupted table, if words of different lengths
may be considered equal (which is possible in some collations, for
example, in utf8_general_ci or
latin1_german2_ci.) (Bug #3808)
Fixed too-early unlocking of tables if we have subquery in
HAVING clause. (Bug #3984)
Fixed a bug in mysqldump when it didn't return an error if the output device was filled (Bug #1851)
Fixed a bug in client-side conversion of string column to
MYSQL_TIME application buffer (prepared
statements API). (Bug #4030)
Fixed a bug with server crash on attempt to execute a non-prepared statement. (Bug #4236)
Fixed a bug with server crash on attempt to prepare a statement with character set introducer. (Bug #4105)
Fixed bug which caused different number of warnings to be generated
when bad datetime as string or as number was inserted into
DATETIME or TIMESTAMP column.
(Bug #2336)
Fixed some byte order bugs with prepared statements on machines with high-byte-first. (Bug #4173)
Fixed unlikely bug in the range optimizer when using many
IN() queries on different key parts. (Bug #4157)
Fixed problem with NULL and derived tables. (Bug
#4097)
Fixed wrong UNION results if display length of
fields for numeric types was set less then real length of values in
them. (Bug #4067)
Fixed a bug in mysql_stmt_close(), which hung up
when attempting to close statement after failed
mysql_stmt_fetch(). (Bug #4079)
Fixed bug of re-execution optimized COUNT(*),
MAX() and MIN() functions in
prepared statements. (Bug #2687)
Fixed a bug with COUNT(DISTINCT) performance
degradation in cases like COUNT(DISTINCT a TEXT, b
CHAR(1)) (no index used). (Bug #3904)
Fixed a bug in MATCH ... AGAINST(... IN BOOLEAN
MODE) that under rare circumstances could cause wrong
results if in the data's collation one byte could match many (like
in utf8_general_ci or
latin1_german2_ci.) (Bug #3964)
Fixed a bug in prepared statements protocol, when microseconds part
of
MYSQL_TYPE_TIME/MYSQL_TYPE_DATETIME
columns was not sent to the client. (Bug #4026)
Fixed a bug that using --with-charset with
configure didn't affect the MySQL client
library. (Bug #3990)
Fixed a bug in authentication code that allowed a malicious user to bypass password verification with specially crafted packets, using a modified client library. (CAN-2004-0627, CAN-2004-0628)
Fixed bug with wrong result of CONCAT(?,
in prepared
statements. (Bug #3796)
col_name)
Fixed potential memory overrun in
mysql_real_connect() (which required a
compromised DNS server and certain operating systems). (Bug #4017,
CAN-2004-0836)
During the installation process of the server RPM on Linux,
mysqld was run as the root
system user, and if you had
--log-bin=,
where the file was located somewhere outside of the data directory,
it created binary log files owned by file_nameroot in
this directory that remained owned by root after
the installation. This is now fixed by starting
mysqld as the mysql system
user instead. (Bug #4038)
Made DROP DATABASE honor the value of
lower_case_table_names. (Bug #4066)
The slave SQL thread refused to replicate INSERT ...
SELECT if it examined more than 4 billion rows. (Bug
#3871)
mysqlbinlog didn't escape the string content of user variables, and did not deal well when these variables were in non-ASCII character sets; this is now fixed by always printing the string content of user variables in hexadecimal. The character set and collation of the string is now also printed. (Bug #3875)
Fixed incorrect destruction of expression which led to crash of
server on complex AND/OR
expressions if query was ignored (either by a replication server
because of --replicate-*-table rules, or by any
MySQL server because of a syntax error). (Bug #3969, Bug #4494)
© 1995-2005 MySQL AB. All rights reserved.

User Comments
Warning: query failed: Unknown column 'user.firstname' in 'field list' in /data0/sites/live/web-main/lib/mysql-cxn.php on line 69
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /data0/sites/live/web-main/lib/docbook.php on line 245
Add your own comment.