(Because of the partitioning into client and server packages, the man
pages have to be partitioned to match; this interferes with the
configure script's handling of them so the list of pages ends up
hardcoded in these patches. And it seems the lists haven't been
updated since the first mysql 5.x package.)
Functionality Added or Changed
* comp_err now checks to make sure that new errors are not being added to MySQL 5.1 or 5.5 because the set of errors for these series is frozen.
Bugs Fixed
* InnoDB: During an insert buffer merge, InnoDB would invoke lock_rec_restore_from_page_infimum() on a potentially invalid record pointer.
* InnoDB: The page_zip_validate() consistency check would fail after compressing a page, in page_zip_compress(). This problem was caused by page_zip_decompress(), which would fail to set heap_no correctly when a record contained no user data bytes. A record with no user data bytes occurs when, for example, a primary key is an empty string and all secondary index fields are NULL or an empty string.
* InnoDB: The pthread_mutex, commit_threads_m, which was initialized but never used, has been removed from the code base.
* Partitioning: When dropping a partitioned table, the table's .par file was deleted first, before the table definition or data. This meant that, if the server failed during the drop operation, the table could be left in an inconsistent state in which it could neither be accessed nor dropped.
* Shared-compatibility conflict errors occurred for RPM install operations, even if no shared-compatibility RPMs were already installed.
* A user variable referenced during execution of a prepared statement is set to memory that is freed at the end of execution. A second execution of the statement could result in Valgrind warnings when accessing this memory.
* Misoptimization of left expressions in prepared statements could cause a server exit.
* Subsequent to Prepared statement needs to be re-prepared errors, inserts into DECIMAL columns caused a server exit.
* Assigning the result of a subquery to a user variable raised an assertion when the outer query included DISTINCT and GROUP BY.
Functionality added or changed:
* mysqldump --xml now displays comments from column definitions. (Bug #13618)
Bugs fixed:
* InnoDB Storage Engine: InnoDB returned values for ¡Èrows examined¡É
in the query plan that were higher than expected. NULL values were
treated in an inconsistent way. The inaccurate statistics could
trigger ¡Èfalse positives¡É in combination with the MAX_JOIN_SIZE
setting, because the queries did not really examine as many rows as
reported. (Bug #30423)
* Partitioning: Trying to use the same column more than once in the
partitioning key when partitioning a table by KEY caused mysqld to
crash. Such duplication of key columns is now expressly disallowed,
and fails with an appropriate error. (Bug #53354, Bug #57924)
* Replication: When using the statement-based logging format, INSERT
ON DUPLICATE KEY UPDATE and INSERT IGNORE statements affecting
transactional tables that did not fail were not written to the
binary log if they did not insert any rows. (With statement-based
logging, all successful statements should be logged, whether they do
or do not cause any rows to be changed.) (Bug #59338)
* Replication: Formerly, STOP SLAVE stopped the slave I/O thread first
and then stopped the slave SQL thread; thus, it was possible for the
I/O thread to stop after replicating only part of a transaction
which the SQL thread was executing, in wich case¡½if the transaction
could not be rolled back safely¡½the SQL thread could hang.
Now, STOP SLAVE stops the slave SQL thread first and then stops the
I/O thread; this guarantees that the I/O thread can fetch any
remaining events in the transaction that the SQL thread is
executing, so that the SQL thread can finish the transaction if it
cannot be rolled back safely. (Bug #58546)
* A query of the following form returned an incorrect result, where
the values for col_name in the result set were entirely replaced
with NULL values:
SELECT DISTINCT col_name ... ORDER BY col_name DESC;
(Bug #59308, Bug #11766241)
* DELETE or UPDATE statements could fail if they used DATE or DATETIME
values with a year, month, or day part of zero. (Bug #59173)
* The ESCAPE clause for the LIKE operator allows only expressions that
evaluate to a constant at execution time, but aggregrate functions
were not being rejected. (Bug #59149)
* Memory leaks detected by Valgrind, some of which could cause
incorrect query results, were corrected. (Bug #59110, Bug #11766075)
mysqlslap failed to check for a NULL return from mysql_store_result()
and crashed trying to process the result set. (Bug #59109)
* In debug builds, SUBSTRING_INDEX(FORMAT(...), FORMAT(...)) could
cause a server crash. (Bug #58371)
* When mysqldadmin was run with the --sleep and --count options, it
went into an infinite loop executing the specified command. (Bug
#58221)
* Some string manipulating SQL functions use a shared string object
intended to contain an immutable empty string. This object was used
by the SQL function SUBSTRING_INDEX() to return an empty string when
one argument was of the wrong datatype. If the string object was
then modified by the SQL function INSERT(), undefined behavior
ensued. (Bug #58165, Bug #11765225)
* Parsing nested regular expressions could lead to recursion resulting
in a stack overflow crash. (Bug #58026, Bug #11765099)
* The mysql client went into an infinite loop if the standard input
was a directory. (Bug #57450)
* The expression const1 BETWEEN const2 AND field was optimized
incorrectly and produced incorrect results. (Bug #57030, Bug
#11764215)
* Some RPM installation scripts used a hardcoded value for the data
directory, which could result in a failed installation for users who
have a nonstandard data directory location. The same was true for
other configuration values such as the PID file name. (Bug #56581,
Bug #11763817)
* On FreeBSD and OpenBSD, the server incorrectly checked the range of
the system date, causing legal values to be rejected. (Bug #55755,
Bug #11763089)
* When using ExtractValue() or UpdateXML(), if the XML to be read
contained an incomplete XML comment, MySQL read beyond the end of
the XML string when processing, leading to a crash of the
server. (Bug #44332)
Functionality added or changed:
* Support for the IBMDB2I storage engine has been removed. (Bug#58079)
* The pstack library was nonfunctional and has been removed, along with the
--with-pstack option for configure. The --enable-pstack option for mysqld is
deprecated and will be removed in MySQL 5.5. (Bug#57210)
Bugs fixed:
* Performance: InnoDB Storage Engine: Improved concurrency when several
ANALYZE TABLE or SHOW TABLE STATUS statements are run simultaneously for
InnoDB tables. (Bug#53046)
* InnoDB Storage Engine: For an InnoDB table created with
ROW_FORMAT=COMPRESSED or ROW_FORMAT=DYNAMIC, a query using the READ
UNCOMMITTED isolation level could cause the server to stop with an assertion
error, if BLOB or other large columns that use off-page storage were being
inserted at the same time. (Bug#57799)
* Partitioning: An INSERT ... ON DUPLICATE KEY UPDATE column = 0 statement on
an AUTO_INCREMENT column caused the debug server to crash. (Bug#57890)
* Several compilation problems were fixed. (Bug#57992, Bug#57993, Bug#57994,
Bug#57995, Bug#57996, Bug#57997, Bug#58057)
* Passing a string that was not null-terminated to UpdateXML() or
ExtractValue() caused the server to fail with an assertion. (Bug#57279)
* Queries executed using the Index Merge access method and a temporary file
could return incorrect results. (Bug#56862)
* The find_files() function used by SHOW statements performed redundant and
unnecessary memory allocation. (Bug#51208)
For full changes, please refer:
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-51.html
Here is summary for security fixes:
* Security Fix: During evaluation of arguments to extreme-value
functions (such as LEAST() and GREATEST()), type errors did not
propagate properly, causing the server to crash. (Bug#55826)
* Security Fix: The server could crash after materializing a derived
table that required a temporary table for grouping. (Bug#55568)
* Security Fix: A user-variable assignment expression that is
evaluated in a logical expression context can be precalculated in a
temporary table for GROUP BY. However, when the expression value is
used after creation of the temporary table, it was re-evaluated, not
read from the table and a server crash resulted. (Bug#55564)
* Security Fix: Pre-evaluation of LIKE predicates during view
preparation could cause a server crash. (Bug#54568)
* Security Fix: GROUP_CONCAT() and WITH ROLLUP together could cause a
server crash. (Bug#54476)
* Security Fix: Queries could cause a server crash if the GREATEST()
or LEAST() function had a mixed list of numeric and LONGBLOB
arguments, and the result of such a function was processed using an
intermediate temporary table. (Bug#54461)
* Security Fix: Queries with nested joins could cause an infinite loop
in the server when used from stored procedures and prepared
statements. (Bug#53544)
* Security Fix: The PolyFromWKB() function could crash the server when
improper WKB data was passed to the function. (Bug#51875)
This problem results mysqld to exit on start up.
5.1/i386 5.1/amd64 5.99.38/i386 5.99.38/amd64
my_time_t int32_t int64_t int32_t int64_t
time_t int32_t int32_t int64_t int64_t
I confirmed to mysqld running on these four case except 5.99.38/i386.
Bump PKG_REVISION.
Please refer http://dev.mysql.com/doc/refman/5.1/en/news-5-1-49.html
for full changes.
* InnoDB Plugin has been upgraded to version 1.0.10. This version is
considered of General Availability (GA) quality.
In this release, the InnoDB Plugin is included in source and binary
distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64, ia64), and
generic Linux RPM packages. It also does not work for FreeBSD 6 and
HP-UX or for Linux on generic ia64.
Bugs fixed:
* Security Fix: After changing the values of the innodb_file_format or
innodb_file_per_table configuration parameters, DDL statements could
cause a server crash. (Bug#55039)
* Security Fix: Joins involving a table with with a unique SET column
could cause a server crash. (Bug#54575)
* Security Fix: Incorrect handling of NULL arguments could lead to a
crash for IN() or CASE operations when NULL arguments were either
passed explicitly as arguments (for IN()) or implicitly generated by
the WITH ROLLUP modifier (for IN() and CASE). (Bug#54477)
* Security Fix: A malformed argument to the BINLOG statement could
result in Valgrind warnings or a server crash. (Bug#54393)
* Security Fix: Use of TEMPORARY InnoDB tables with nullable columns
could cause a server crash. (Bug#54044)
* Security Fix: The server could crash if there were alternate reads
from two indexes on a table using the HANDLER interface. (Bug#54007)
* Security Fix: Using EXPLAIN with queries of the form SELECT
... UNION ... ORDER BY (SELECT ... WHERE ...) could cause a server
crash. (Bug#52711)
* Security Fix: LOAD DATA INFILE did not check for SQL errors and sent
an OK packet even when errors were already reported. Also, an assert
related to client-server protocol checking in debug servers
sometimes was raised when it should not have been. (Bug#52512)
For full changes, see http://dev.mysql.com/doc/refman/5.1/en/news-5-1-47.html.
Here is important changes:
InnoDB Plugin Notes:
* InnoDB Plugin has been upgraded to version 1.0.8. This version
is considered of General Availability (GA) quality. InnoDB
Plugin Change History, may contain information in addition to
those changes reported here.
In this release, the InnoDB Plugin is included in source and
binary distributions, except RHEL3, RHEL4, SuSE 9 (x86, x86_64,
ia64), and generic Linux RPM packages. It also does not work for
FreeBSD 6 and HP-UX or for Linux on generic ia64.
Functionality added or changed:
* InnoDB stores redo log records in a hash table during
recovery. On 64-bit systems, this hash table was 1/8 of the
buffer pool size. To reduce memory usage, the dimension of the
hash table was reduced to 1/64 of the buffer pool size (or 1/128
on 32-bit systems). (Bug#53122)
Security fixed:
* Security Fix: The server failed to check the table name argument
of a COM_FIELD_LIST command packet for validity and compliance
to acceptable table name standards. This could be exploited to
bypass almost all forms of checks for privileges and table-level
grants by providing a specially crafted table name argument to
COM_FIELD_LIST.
In MySQL 5.0 and above, this allowed an authenticated user with
SELECT privileges on one table to obtain the field definitions
of any table in all other databases and potentially of other
MySQL instances accessible from the server's file system.
Additionally, for MySQL version 5.1 and above, an authenticated
user with DELETE or SELECT privileges on one table could delete or
read content from any other table in all databases on this server,
and potentially of other MySQL instances accessible from the
server's file system. (Bug#53371, CVE-2010-1848)
* Security Fix: The server was susceptible to a buffer-overflow
attack due to a failure to perform bounds checking on the table
name argument of a COM_FIELD_LIST command packet. By sending
long data for the table name, a buffer is overflown, which could
be exploited by an authenticated user to inject malicious
code. (Bug#53237, CVE-2010-1850)
* Security Fix: The server could be tricked into reading packets
indefinitely if it received a packet larger than the maximum
size of one packet. (Bug#50974, CVE-2010-1849)
embedded server (by PKG_OPTION).
For release MySQL 5.1 specific information please refer:
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
MySQL is a SQL (Structured Query Language) database server. SQL is the
most 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).