Age | Commit message (Collapse) | Author | Files | Lines |
|
* The undocumented --all option for perror is deprecated and will be removed in
MySQL 5.6.
Bugs Fixed:
* InnoDB Storage Engine: A failed CREATE INDEX operation for an InnoDB table
could result in some memory being allocated and not freed. This memory leak
could affect tables created with the ROW_FORMAT=DYNAMIC and
ROW_FORMAT=COMPRESSED settings.
* Partitioning: Auto-increment columns of partitioned tables were checked even
when they were not being written to. In debug builds, this could lead to a
crash of the server.
* Partitioning: The UNIX_TIMESTAMP() function was not treated as a monotonic
function for purposes of partition pruning.
* Replication: If a LOAD DATA INFILE statement—replicated using statement-based
replication—featured a SET clause, the name-value pairs were regenerated
using a method (Item::print()) intended primarily for generating output for
statements such as EXPLAIN EXTENDED, and which cannot be relied on to return
valid SQL. This could in certain cases lead to a crash on the slave.
* To fix this problem, we now name each value in its original, user-supplied
form, and use that to create LOAD DATA INFILE statements for statement-based
replication.
* Previously, an inappropriate error message was produced if a multiple-table
update for an InnoDB table with a clustered primary key would update a table
through multiple aliases, and perform an update that may physically move the
row in at least one of these aliases. Now the error message is: Primary
key/partition key update is not allowed since the table is updated both as
'tbl_name1' and 'tbl_name2'
* ALTER TABLE {MODIFY|CHANGE} ... FIRST did nothing except rename columns if
the old and new versions of the table had exactly the same structure with
respect to column data types. As a result, the mapping of column name to
column data was incorrect. The same thing happened for ALTER TABLE DROP
COLUMN, ADD COLUMN statements intended to produce a new version of table with
exactly the same structure as the old version.
* Incorrect handling of metadata locking for FLUSH TABLES WITH READ LOCK for
statements requiring prelocking caused two problems:
* Execution of any data-changing statement that required prelocking (that is,
involved a stored function or trigger) as part of transaction slowed down
somewhat all subsequent statements in the transaction. Performance in a
transaction that periodically involved such statements gradually degraded
over time.
|
|
* CMake configuration support on Linux now provides a boolean ENABLE_GCOV
option to control whether to include support for gcov.
* InnoDB now permits concurrent reads while creating a secondary index.
* Client programs now display more information for SSL errors to aid in
diagnosis and debugging of connection problems.
* In the audit plugin interface, the event_class member was removed from the
mysql_event_general structure and the calling sequence for the notification
function changed. Originally, the second argument was a pointer to the event
structure. The function now receives this information as two arguments: an
event class number and a pointer to the event. Corresponding to these
changes, MYSQL_AUDIT_INTERFACE_VERSION was increased to 0x0300.
* The plugin_audit.h header file, and the NULL_AUDIT example plugin in the
plugin/audit_null directory have been modified per these changes. See
Section 21.2.4.7, “Writing Audit Plugins”.
* Bug fixes.
|
|
* InnoDB Storage Engine: If the server crashed while an XA transaction was
prepared but not yet committed, the transaction could remain in the system
after restart, and cause a subsequent shutdown to hang.
* InnoDB Storage Engine: Similar problem to the foreign key error in bug
11831040 / 60196 / 60909, but with a different root cause and occurring on
Mac OS X. With the setting lower_case_table_names=2, inserts into InnoDB
tables covered by foreign key constraints could fail after a server restart.
* Partitioning: The internal get_partition_set() function did not take into
account the possibility that a key specification could be NULL in some cases.
* Partitioning: When executing a row-ordered retrieval index merge, the
partitioning handler used memory from from that allocated for the table,
rather than that allocated to the query, causing table object memory not to
be freed until the table was closed.
* Replication: A spurious error malformed binlog: it does not contain any
Format_description_log_event... was generated when mysqlbinlog was invoked
using --base64-output=decode-row and --start-position=pos, where pos is a
point in the binary log past the format description log event. However, there
is nothing unsafe about not printing the format description log event, so the
error has been removed for this case.
* Replication: Typographical errors appeared in the text of several replication error messages. (The word “position” was misspelled as “postion”.)
* Assignments to NEW.var_name within triggers, where var_name had a BLOB or
TEXT type, were not properly handled and produced incorrect results.
* XA COMMIT could fail to clean up the error state if it discovered that the
current XA transaction had to be rolled back. Consequently, the next XA
transaction could raise an assertion when it checked for proper cleanup of
the previous transaction.
* An internal client macro reference was removed from the client_plugin.h
header file. This reference made the file unusable.
* The server consumed memory for repeated invocation of some stored procedures,
which was not released until the connection terminated.
* The server did not check for certain invalid out of order sequences of XA
statements, and these sequences raised an assertion.
* With the conversion from GNU autotools to CMake for configuring MySQL, the
USE_SYMDIR preprocessor symbol was omitted. This caused failure of symbolic
links (described at Section 7.11.3.1, “Using Symbolic Links”).
|
|
* Fixed bugs: Illegal mix of collations
* Problem: comparison of a DATETIME sp variable and NOW() led to Illegal mix of
collations error when character_set_connection=utf8.
* Error happened in Arg_comparator::set_compare_func(), because the first
argument was errouneously converted to utf8, while the second argument was
not.
* Fix: separate agg_arg_charsets_for_comparison() into two functions:
- agg_arg_charsets_for_comparison() - for pure comparison, when we don't need
to return any string result and therefore don't need to convert arguments
to @@character_set_connection:
SELECT a = b;
- agg_arg_charsets_for_string_results_with_comparison() - when we need to
return a string result, but we also need to do comparison internally:
SELECT REPLACE(a,b,c)
If all arguments are numbers:
SELECT REPLACE(123,2,3) -> 133
we convert arguments to @@character_set_connection.
|
|
|
|
|
|
popular database language in the world. MySQL is a client-server implementation
that consists of a server daemon `mysqld' and many different client
programs/libraries.
The main goals of MySQL are speed and robustness.
The base upon which MySQL is built is a set of routines that have been used in
a highly demanding production environment for many years. While MySQL is still
in development it already offers a rich and highly useful function set.
The official way to pronounce 'MySQL' is 'My Ess Que Ell' (Not MY-SEQUEL).
This package contains the MySQL server programs and libraries including
embedded server (by PKG_OPTION).
|