[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This release includes all fixes in MySQL 4.0.16 and most of the fixes in MySQL 4.0.17.
Functionality added or changed:
CACHE INDEX
.
See section LOAD INDEX
.
Structured system
variables are introduced as a means of grouping related key cache parameters.
See section 10.4.2 Structured System Variables.
COERCIBILITY()
function to return the collation coercibility of a
string.
mysqldump
now includes a statement in the dump output to set
FOREIGN_KEY_CHECKS
to 0 to avoid problems with tables having to be
reloaded in a particular order when the dump is reloaded. The existing
FOREIGN_KEY_CHECKS
value is saved and restored.
REVOKE ALL
PRIVILEGES, GRANT FROM user_list
.
IGNORE
option for DELETE
statement.
mysql_set_server_option()
C API client function to allow multiple
statement handling in the server to be enabled or disabled.
mysql_next_result()
C API function now returns -1
if there
are no more result sets.
CLIENT_MULTI_QUERIES
connect option flag to
CLIENT_MULTI_STATEMENTS
. To allow for a transition period, the old
option will continue to be recognized for a while.
DEFAULT
before table and database default character set.
This enables us to use ALTER TABLE table_name ... CHARACTER SET=...
to change the character set for all CHAR
, VARCHAR
, and
TEXT
columns in a table.
MATCH ... AGAINST( ... WITH QUERY EXPANSION)
and the
ft_query_expansion_limit
server variable.
ft_max_word_len_for_sort
server variable.
utf8
character set. (The Unicode ucs2
character set is not
yet supported.)
MATCH ... AGAINST ( ... IN BOOLEAN MODE)
no longer
matches partial words.
BIT_XOR()
for bitwise XOR operations.
START SLAVE
statement now supports an UNTIL
clause for
specifying that the slave SQL thread should be started but run only until it
reaches a given position in the master's binary logs or in the slave's relay logs.
INSERT
statements, not just for
multiple-row INSERT
statements. Previously, it was necessary to set
SQL_WARNINGS=1
to generate warnings for single-row statements.
delimiter
(\d
) command to the mysql
command-line
client for changing the statement delimiter (terminator).
The default delimiter is semicolon.
CHAR
, VARCHAR
, and TEXT
columns now have lengths measured
in characters rather than in bytes.
The character size depends on the column's character set.
This means, for example, that a CHAR(n)
column
for a multi-byte character set will take more storage than before.
Similarly, index values on such columns are measured in characters, not bytes.
LIMIT
no longer accepts negative arguments
(they used to be treated as very big positive numbers before).
DATABASE()
function now returns NULL
rather than the empty
string if there is no database selected.
--sql-mode=NO_AUTO_VALUE_ON_ZERO
option to suppress the usual
behavior of generating the next sequence number when zero is stored in
an AUTO_INCREMENT
column. With this mode enabled, zero is stored as
zero; only storing NULL
generates a sequence number.
user
table, not 45-byte passwords as in 4.1.0.
Any 45-byte passwords created for 4.1.0 must be reset after running the
mysql_fix_privilege_tables
script.
mysql_prepare_result()
function to
mysql_get_metadata()
as the old name was confusing.
DROP USER 'username'@'hostname'
statement to drop an account
that has no privileges.
xxx_clear()
function for each aggregate function XXX()
.
ADDTIME()
, DATE()
, DATEDIFF()
, LAST_DAY()
,
MAKEDATE()
, MAKETIME()
, MICROSECOND()
, SUBTIME()
,
TIME()
, TIMEDIFF()
, TIMESTAMP()
, UTC_DATE()
,
UTC_TIME()
, UTC_TIMESTAMP()
, and WEEKOFYEAR()
functions.
ADDDATE()
and SUBDATE()
.
The second argument now may be a number representing the number of days to
be added to or subtracted from the first date argument.
type
values DAY_MICROSECOND
,
HOUR_MICROSECOND
, MINUTE_MICROSECOND
,
SECOND_MICROSECOND
, and MICROSECOND
for DATE_ADD()
, DATE_SUB()
, and EXTRACT()
.
%f
microseconds format specifier for DATE_FORMAT()
and
TIME_FORMAT()
.
SELECT
does not use indexes properly
now are written to the slow query log when long log format is used.
MERGE
table from MyISAM
tables in
different databases. Formerly, all the MyISAM
tables had to be in the
same database, and the MERGE
table had to be created in that database
as well.
COMPRESS()
, UNCOMPRESS()
, and
UNCOMPRESSED_LENGTH()
functions.
SET sql_mode='mode'
for a complex mode (like ANSI
), we
now update the sql_mode
variable to include all the individual options
implied by the complex mode.
ROLLUP
, which
provides summary rows for each GROUP BY
level.
SQLSTATE
codes for all server errors.
mysql_sqlstate()
and mysql_stmt_sqlstate()
C API client
functions that return the SQLSTATE
error code for the last error.
TIME
columns with hour values greater than 24 were returned incorrectly
to the client.
ANALYZE
, OPTIMIZE
, REPAIR
, and FLUSH
statements
are now stored in the binary log and thus replicated to slaves.
This logging does not occur if the optional NO_WRITE_TO_BINLOG
keyword
(or its alias LOCAL
) is given. Exceptions are that
FLUSH LOGS
, FLUSH MASTER
, FLUSH SLAVE
, and
FLUSH TABLES WITH READ LOCK
are not logged in any case.
For a syntax example, see FLUSH
.
RELAY_LOG_PURGE
to enable or disable automatic
relay log purging.
LOAD DATA
now produces warnings that can be fetched with
SHOW WARNINGS
.
CREATE TABLE table2 (LIKE table1)
that creates an empty table table2
with a definition that is
exactly the same as table1
, including any indexes.
CREATE TABLE table_name (...) TYPE=storage_engine
now generates a
warning if the named storage engine is not available. The table is still
created as a MyISAM
table, as before.
PURGE BINARY LOGS
as an alias for PURGE MASTER LOGS
.
PURGE LOGS
statement that was added in in version 4.1.0.
The statement now should be issued as PURGE MASTER LOGS
or
PURGE BINARY LOGS
.
SHOW BDB LOGS
as an alias for SHOW LOGS
.
SHOW MASTER LOGS
(which had been deleted in version
4.1.0) as an alias for SHOW BINARY LOGS
.
Slave_IO_State
and Seconds_Behind_Master
columns
to the output of SHOW SLAVE STATUS
.
Slave_IO_State
indicates the state of the slave I/O thread, and
Seconds_Behind_Master
indicates the number of seconds by
which the slave is late compared to the master.
--lower-case-table-names=1
now also makes aliases case
insensitive. (Bug #534)
Bugs fixed:
mysql
parser not to erroneously interpret `;' character
within /* ... */
comment as statement terminator.
UNION
operations. The types and lengths now are determined taking into
account values for all SELECT
statements in the UNION
,
not just the first SELECT
.
[CREATE | REPLACE| INSERT] ... SELECT
statements.
HASH
, BTREE
, RTREE
, ERRORS
, and
WARNINGS
no longer are reserved words. (Bug #724)
ROLLUP
when all tables were const
tables.
(Bug #714)
UNION
that prohibited NULL
values from being
inserted into result set columns where the first SELECT
of the
UNION
retrieved NOT NULL
columns. The type and max_length
of the result column is now defined based on all UNION
parts.
WHERE
clause
bigger than outer query WHERE
clause. (Bug #726)
MyISAM
tables with FULLTEXT
indexes
created in 4.0.x to be unreadable in 4.1.x.
REPAIR TABLE ... USE_FRM
when used
with tables
that contained TIMESTAMP
columns and were created in 4.0.x.
ORDER BY
/GROUP BY
clauses. (Bug #442)
INSERT
/REPLACE
statements. (Bug #446)
CREATE FULLTEXT INDEX
syntax illegal.
SELECT
that required a temporary table
(marked by Using temporary
in EXPLAIN
output)
was used as a derived table in EXPLAIN
command. (Bug #251)
DELETE
from a big table with
a new (created by MySQL-4.1) full-text index.
LAST_INSERT_ID()
now returns 0 if the last INSERT
statement
didn't insert any rows.
BEGIN
, in the
first relay log.) (Bug #53)
CONNECTION_ID()
now is properly replicated. (Bug #177)
PASSWORD()
function in 4.1 is now properly replicated.
(Bug #344)
UNION
operations that involved temporary tables.
DERIVED TABLES
when EXPLAIN
is
used on a DERIVED TABLES
with a join.
DELETE
with ORDER BY
and
LIMIT
caused by an uninitialized array of reference pointers.
USER()
function caused by an error in the size of
the allocated string.
UNION
caused by the empty select list and
a non-existent column being used in some of the individual SELECT
statements.
FLUSH LOGS
was
issued on the master. (Bug #254)
REQUIRE SSL
option specified for
their accounts.
INSERT INTO t VALUES(@a)
, where @a
had never
been set by this connection before), the slave could replicate the
query incorrectly if a previous transaction on the master used a user
variable of the same name. (Bug #1331)
?
prepared statement
parameter as the argument to certain functions or statement clauses caused
a server crash when mysql_prepare()
was invoked. (Bug #1500)
SLAVE START
(which is a deprecated syntax, START SLAVE
should be
used instead) could crash the slave. (Bug #2516)
ALTER TABLE RENAME
, when rename to the table with
the same name in another database silently dropped destination table if
it existed. (Bug #2628)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |