Functionality added or changed:
The CHAR() function now takes an optional
USING
clause that may be used to produce a result in a specific
character set rather than in the connection character set.
charset
MySQL 4.1 now supports character set conversion for seven
additional cp950 characters into the
big5 character set:
0xF9D6, 0xF9D7,
0xF9D8, 0xF9D9,
0xF9DA, 0xF9DB, and
0xF9DC.
Note: If you move
data containing these additional characters to an older MySQL
installation which does not support them, you may encounter
errors. (Bug#12476)
NDBCluster: The perror
utility included with the MySQL-Server RPM
now provides support for the --ndb option,
and so can be used to obtain error message text for MySQL
Cluster error codes. (Bug#13740)
When executing single-table UPDATE or
DELETE queries containing an ORDER
BY ... LIMIT clause,
but not having any NWHERE clause, MySQL can
now take advantage of an index to read the first
N rows in the ordering specified in
the query. If an index is used, only the first
N records will be read, as opposed
to scanning the entire table. (Bug#12915)
The MySQL-server RPM now explicitly assigns
the mysql system user to the
mysql user group during the
postinstallation process. This corrects an issue with
upgrading the server on some Linux distributions whereby a
previously existing mysql user was not
changed to the mysql group, resulting in
wrong groups for files created following the installation.
(Bug#12823)
When a date column is set NOT NULL and
contains 0000-00-00, it will be updated for
UPDATE statements that contains
in the WHERE clause. (Bug#14186)
columnname IS
NULL
Bugs fixed:
NDB Cluster: REPLACE
failed when attempting to update a primary key value in a
Cluster table. (Bug#14007)
When the DATE_FORMAT() function appeared
in both the SELECT and ORDER
BY clauses of a query but with arguments that differ
by case (i.e. %m and %M), incorrect sorting may have occurred.
(Bug#14016)
Make failed when attempting to build MySQL in different directory than source. (Bug#11827)
PROCEDURE ANALYSE() could suggest a data
type with a negative display width. (Bug#10716)
InnoDB: During replication, There was a
failure to record events in the binary log that still occurred
even in the event of a ROLLBACK. For
example, this sequence of commands:
BEGIN; CREATE TEMPORARY TABLE t1 (a INT) ENGINE=INNODB; ROLLBACK; INSERT INTO t1 VALUES (1);
would succeed on the replication master as expected. However,
the INSERT would fail on the slave because
the ROLLBACK would (erroneously) cause the
CREATE TEMPORARY TABLE statement not to be
written to the binlog. (Bug#7947)
NDB Cluster: Creating a table with packed
keys failed silently. NDB now supports the
PACK_KEYS option to CREATE
TABLE correctly. (Bug#14514)
Non-latin1 object names were written with
wrong character set to grant tables. (Bug#14406)
Issuing STOP SLAVE after having acquired a
global read lock with FLUSH TABLES WITH READ
LOCK caused a deadlock. Now STOP
SLAVE is generates an error in such circumstances.
(Bug#10942)
Portability fixes to support OpenSSL 0.9.8a. (Bug#14221)
Closed a memory leak in the SSL code. (Bug#14780)
Perform character set conversion of constant values whenever possible without data loss. (Bug#10446)
A UNION of DECIMAL
columns could produce incorrect results. (Bug#14216)
InnoDB: Pad UTF-8
VARCHAR columns with
0x20. Pad UCS2 CHAR
columns with 0x0020. (Bug#10511)
Full-text indexing/searching failed for words that end with more than one apostrophe. (Bug#5686)
Selecting from a table in both an outer query and a subquery could cause a server crash. (Bug#14482)
Creating a table containing an ENUM or
SET column from within a stored procedure
or prepared statement caused a server crash later when
executing the procedure or statement. (Bug#14410)
mysql_fix_privilege_tables.sql contained
an erroneous comment that resulted in an error when the file
contents were processed. (Bug#14469)
On Windows, the server could crash during shutdown if both replication threads and normal client connection threads were active. (Re-fix of Bug#11796)
A LIMIT-related optimization failed to take
into account that MyISAM table indexes can
be disabled, causing Error 124 when it tried to use such an
index. (Bug#14616)
For a table that had been opened with HANDLER
OPEN, issuing OPTIMIZE TABLE,
ALTER TABLE, or REPAIR
TABLE caused a server crash. (Bug#14397)
CREATE TABLE could crash the server and write
invalid data into the tbl_name
(...) SELECT ....frm file if the
CREATE TABLE and SELECT
both contained a column with the same name. Also, if a default
value is specified in the column definition, it is now
actually used. (Bug#14480)
For MyISAM tables, incorrect query results
or incorrect updates could occur under these conditions: There
is a multiple-column index that includes a
BLOB column that is not the last column in
the index, and the statement performs a lookup on the index
using key column values that have NULL for
the BLOB column and that provide values for
all columns up to the BLOB column and at
least the next column in the index. (Bug#13814)
Deletes from a CSV table could cause table
corruption. (Bug#14672)
An update of a CSV table could cause a
server crash. (Bug#13894)
mysqld_safe did not correctly start the
-max version of the server (if it was
present) if the --ledir option was given.
(Bug#13774)
The endian byte in for spatial values in WKB format was not consistently respected. (Bug#12839)
An expression in an ORDER BY clause failed
with Unknown column
' if the expression referred to a column
alias. (Bug#11694)
col_name' in 'order
clause'
Statements of the form CREATE TABLE ... SELECT
... that created a column with a multi-byte
character set could incorrectly calculate the maximum length
of the column, resulting in a Specified key was too
long error. (Bug#14139)
Use of in the
col_name =
VALUES(col_name)ON DUPLICATE KEY UPDATE clause of an
INSERT statement failed with an
Column ' error. (Bug#13392)
col_name' in field
list is ambiguous
On Windows, the server was not ignoring hidden or system directories that Windows may have created in the data directory, and would treat them as available databases. (Bug#4375)
LIKE operations did not work reliably for
the cp1250 character set. (Bug#13347)
Maximum values were handled incorrectly for command-line
options of type GET_LL. (Bug#12925)
Use of WITH ROLLUP PROCEDURE ANALYSE()
could hang the server. (Bug#14138)
TIMEDIFF(), ADDTIME(),
and STR_TO_DATE() were not reporting that
they could return NULL, so functions that
invoked them might misinterpret their results. (Bug#14009)
The example configuration files supplied with MySQL
distributions listed the thread_cache_size
variable as thread_cache. (Bug#13811)
LOAD DATA INFILE would not accept the same
character for both the ESCAPED BY and the
ENCLOSED BY clauses. (Bug#11203)
NDB Cluster: Repeated transactions using
unique index lookups could cause a memory leak leading to
error 288, Out of index operations in transaction
coordinator. (Bug#14199)
SELECT DISTINCT
CHAR( returned
incorrect results after col_name)SET NAMES utf8.
(Bug#13233)
Character set conversion was not being done for
FIND_IN_SET(). (Bug#13751)
The default value of query_prealloc_size
was set to 8192, lower than its minimum of 16384. The minimum
has been lowered to 8192. (Bug#13334)
The server did not take character set into account in checking
the width of the mysql.user.Password
column. As a result, it could incorrectly generate long
password hashes even if the column was not long enough to hold
them. (Bug#13064)
CAST(1E+300 TO SIGNED INT) produced an
incorrect result on little-endian machines. (Bug#13344)
mysqladmin and mysqldump would hang on SCO OpenServer. (Bug#13238)
Specifying --default-character-set=cp-932 for
mysqld would cause SQL scripts containing
comments written using that character set to fail with a
syntax error. (Bug#13487)
Given a column col_name defined as
NOT NULL, a SELECT ... FROM ...
WHERE
query following col_name IS NULLSHOW TABLE STATUS would
erroneously return a non-empty result. (Bug#13535)
Corrected a memory-copying problem for big5
values when using icc compiler on Linux
IA-64 systems. (Bug#10836)
On BSD systems, the system crypt() call
could return an error for some salt values. The error was not
handled, resulting in a server crash. (Bug#13619)
Character set file parsing during
mysql_real_connect() read past the end of a
memory buffer. (Bug#6413)
The --interactive-timeout and
--slave-net-timeout options for
mysqld were not being obeyed on Mac OS X
and other BSD-based platforms. (Bug#8731)
Queries of the form (SELECT ...) ORDER BY
... were being treated as a
UNION. This improperly resulted in only
distinct values being returned (because
UNION by default eliminates duplicate
results). Also, references to column aliases in ORDER
BY clauses following parenthesized
SELECT statements were not resolved
properly. (Bug#7672)
Multiple update queries using any type of subquery would be
ignored by a replication slave when a condition such as
--replicate-ignore-table like condition was
used. (Bug#13236)
An UPDATE query using a join would be
executed incorrectly on a replication slave. (Bug#12618)
NDBCluster: Placing multiple [TCP
DEFAULT] sections in the cluster
config.ini file crashed
ndb_mgmd. (The process now exits gracefully
with an appropriate error message.) (Bug#13611)
Multiple race conditions existed in OpenSSL, particularly noticeable on Solaris. (Bug#9270)
With --log-slave-updates
Exec_master_log_pos of SQL thread lagged IO
(Bug#13023)
PURGE MASTER LOGS statement that used
subquery for date crashed server. (Bug#10308)

User Comments
Add your own comment.