Unsorted entries in PLIST files have generated a pkglint warning for at
least 12 years. Somewhat more recently, pkglint has learned to sort
PLIST files automatically. Since pkglint 5.4.23, the sorting is only
done in obvious, simple cases. These have been applied by running:
pkglint -Cnone,PLIST -Wnone,plist-sort -r -F
------------------------------------------------------------
The ChangeLog since 5.1.72 is too huge, so the beginning some
lines are listed here:
------------------------------------------------------------
timestamp: Fri 2013-11-01 16:39:19 +0100
message:
Bug#17617945 BUFFER OVERFLOW IN GET_MERGE_MANY_BUFFS_COST WITH SMALL SORT_BUFFER_SIZE
get_cost_calc_buff_size() could return wrong value for the size of imerge_cost_buff.
------------------------------------------------------------
timestamp: Thu 2013-10-31 22:53:56 +0000
message:
BUG#17662398: REMOVE DUPLICATE TEST CASES
Remove duplicate test cases.
------------------------------------------------------------
timestamp: Thu 2013-10-31 23:02:44 +0530
message:
Bug #12917164 DROP USER CAN'T DROP USERS WITH LEGACY
UPPER CASE HOST NAME ANYMORE
Description:
It is not possible to drop users with host names with upper case
letters in them. i.e DROP USER 'root'@'Tmp_Host_Name'; is failing
with error.
Analysis: Since the fix 11748570 we came up with lower case hostnames
as standard. But in the current bug the hostname is created by
mysql_install_db script is still having upper case hostnames.
So, if we have the hostname with upper case letters like(Tmp_Host_Name)
then we will have as it is stored in the mysql.user table.
In this case if use "'DROP USER 'root'@'Tmp_Host_Name';" it gives
error because we do compare with the lower case of hostname since the
11748570 fix.
Fix: We need to convert the hostname to lower case before storing into
the mysql.user table when we run the mysql_install_db script.
------------------------------------------------------------
Problems found with existing distfiles:
distfiles/D6.data.ros.gz
distfiles/cstore0.2.tar.gz
distfiles/data4.tar.gz
distfiles/sphinx-2.2.7-release.tar.gz
No changes made to the cstore or mariadb55-client distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
(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.)
in PR pkg/48271. (There's a mysqld_safe switch to log to syslog,
which would also work around the problem, at the expense mutually
exclusivity with normal MySQL logging). Bump PKGREVISIONs.
* InnoDB: The row_sel_sec_rec_is_for_clust_rec function would incorrectly prepare to compare a NULL column prefix in a secondary index with a non-NULL column in a clustered index.
* InnoDB: An incorrect purge would occur when rolling back an update to a delete-marked record.
* InnoDB: InnoDB would rename a user-defined foreign key constraint containing the string “_ibfk_” in its name, resulting in a duplicate constraint.
* InnoDB: Rolling back an INSERT after a failed BLOB write would result in an assertion failure. The assertion has been modified to allow NULL BLOB pointers if an error occurs during a BLOB write.
* InnoDB: The srv_master_thread background thread, which monitors server activity and performs activities such as page flushing when the server is inactive or in a shutdown state, runs on a one second delay loop. srv_master_thread would fail to check if the server is in a shutdown state before sleeping.
* InnoDB: An infinite loop could occur in buf_page_get_gen when handling compressed-only pages.
* Within a stored program, comparison of the value of a scalar subquery with an IN clause resulted in an error for the first execution and raised an assertion for the second execution.
* The my_strtoll10() function could incorrectly convert some long string-format numbers to numeric values and fail to set the overflow flag.
* For queries that accessed an INFORMATION_SCHEMA table in a subquery, and attempt to lock a mutex that had already been locked could cause a server crash.
* For DIV expressions, assignment of the result to multiple variables could cause a server crash.
* mysqldump wrote SET statements as SET OPTION, which failed when reloaded because the deprecated OPTION keyword has been removed from SET syntax.
* If one connection changed its default database and simultaneously another connection executed SHOW PROCESSLIST, the second connection could access invalid memory when attempting to display the first connection's default database. memory.
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.
are replaced with .include "../../devel/readline/buildlink3.mk", and
USE_GNU_READLINE are removed,
* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
are replaced with .include "../../mk/readline.buildlink3.mk".
While here, let to use OpenSSL instead of internal yaSSL with ssl option,
may related to PR 46912.
Changes in MySQL 5.1.65 (2012-08-09)
Functionality Added or Changed
* Important Change: The YEAR(2) data type is now deprecated because it is
problematic. Support for YEAR(2) will be removed in a future release of MySQL.
For more information, see Section 11.3.4, "YEAR(2) Limitations and Migrating
to YEAR(4)".
Bugs Fixed
* The server did not build with gcc 4.7. (Bug #14238406)
Changes in MySQL 5.1.64 (Not released)
Functionality Added or Changed
* Important Change: Replication: The SHOW BINARY LOGS statement (and its
equivalent SHOW MASTER LOGS) may now be executed by a user with the
REPLICATION CLIENT privilege. (Formerly, the SUPER privilege was necessary to
use either form of this statement.)
Changes (http://dev.mysql.com/doc/refman/5.1/en/news-5-1-63.html):
* Security Fix: Bug #64884 was fixed.
* Security Fix: Bug #59387 was fixed.
* InnoDB: Deleting a huge amount of data from InnoDB tables
within a short time could cause the purge operation that
flushes data from the buffer pool to stall. If this issue
occurs, restart the server to work around it. This issue is
only likely to occur on 32-bit platforms. (Bug #13847885)
* InnoDB: If the server crashed during a TRUNCATE TABLE or
CREATE INDEX statement for an InnoDB table, or a DROP DATABASE
statement for a database containing InnoDB tables, an index
could be corrupted, causing an error message when accessing
the table after restart:
InnoDB: Error: trying to load index index_name for table
table_name
InnoDB: but the index tree has been freed!
In MySQL 5.1, this fix applies to the InnoDB Plugin, but not
the built-in InnoDB storage engine. (Bug #12861864, Bug
#11766019)
* InnoDB: When data was removed from an InnoDB table, newly
inserted data might not reuse the freed disk blocks, leading
to an unexpected size increase for the system tablespace or
.ibd file (depending on the setting of innodb_file_per_table.
The OPTIMIZE TABLE could compact a .ibd file in some cases but
not others. The freed disk blocks would eventually be reused
as additional data was inserted. (Bug #11766634, Bug #59783)
* Partitioning: After updating a row of a partitioned table and
selecting that row within the same transaction with the query
cache enabled, then performing a ROLLBACK, the same result was
returned by an identical SELECT issued in a new transaction.
(Bug #11761296, Bug #53775)
* Replication: The --relay-log-space-limit option was sometimes
ignored.
More specifically, when the SQL thread went to sleep, it
allowed the I/O thread to queue additional events in such a
way that the relay log space limit was bypassed, and the
number of events in the queue could grow well past the point
where the relay logs needed to be rotated. Now in such cases,
the SQL thread checks to see whether the I/O thread should
rotate and provide the SQL thread a chance to purge the logs
(thus freeing space).
Note that, when the SQL thread is in the middle of a
transaction, it cannot purge the logs; it can only ask for
more events until the transaction is complete. Once the
transaction is finished, the SQL thread can immediately
instruct the I/O thread to rotate. (Bug #12400313, Bug #64503)
References: See also Bug #13806492.
* Mishandling of NO_BACKSLASH_ESCAPES SQL mode within stored
procedures on slave servers could cause replication failures.
(Bug #12601974)
* If the system time was adjusted backward during query
execution, the apparent execution time could be negative. But
in some cases these queries would be written to the slow query
log, with the negative execution time written as a large
unsigned number. Now statements with apparent negative
execution time are not written to the slow query log. (Bug
#63524, Bug #13454045) References: See also Bug #27208.
* mysql_store_result() and mysql_use_result() are not for use
with prepared statements and are not intended to be called
following mysql_stmt_execute(), but failed to return an error
when invoked that way in libmysqld. (Bug #62136, Bug
#13738989) References: See also Bug #47485.
* SHOW statements treated stored procedure, stored function, and
event names as case sensitive. (Bug #56224, Bug #11763507)
* On Windows, mysqlslap crashed for attempts to connect using
shared memory. (Bug #31173, Bug #11747181, Bug #59107, Bug
#11766072)
* New utf8_general_mysql500_ci and ucs2_general_mysql500_ci collations have
been added that preserve the behavior of utf8_general_ci and ucs2_general_ci
from versions of MySQL previous to 5.1.24. Bug 27877 corrected an error in
the original collations but introduced an incompatibility for columns that
contain German 'ß' LATIN SMALL LETTER SHARP S. (As a result of the fix, that
character compares equal to characters with which it previously compared
different.) A symptom of the problem after upgrading to MySQL 5.1.24 or newer
from a version older than 5.1.24 is that CHECK TABLE produces this error:
* yaSSL was upgraded from version 1.7.2 to 2.2.0.
* Bugs Fixed
* InnoDB Storage Engine: Issuing INSERT...ON DUPLICATE KEY statements for
InnoDB tables from concurrent threads could cause a deadlock, particularly
with the INSERT...ON DUPLICATE KEY UPDATE form. The fix avoids deadlocks
caused by the same row being accessed by more than one transaction. Deadlocks
could still occur when multiple rows are inserted and updated simultaneously
by different transactions in inconsistent order; those types of deadlocks
require the standard error handling on the application side, of re-trying the
transaction.
* An incorrect InnoDB assertion could cause the server to halt. This issue only
affected debug builds. The assertion referenced the source file btr0pcur.ic
and the variable cursor->pos_state.
* The handle_segfault() signal-handler code in mysqld could itself crash due to
calling unsafe functions.
* ARCHIVE tables with NULL columns could cause server crashes or become corrupt
under concurrent load.
* Enabling myisam_use_mmap could cause the server to crash.
* Concurrent access to ARCHIVE tables could cause corruption.
* Upgrading from an Advanced GPL RPM package to an Advanced RPM package did not
work. Now on Linux it is possible to use rpm -U to replace any installed MySQL
product by any other of the same release family. It is not necessary to remove
the old produce with rpm -e first.
* MEMORY table creation time is now available in the CREATE_TIME column of the
INFORMATION_SCHEMA.TABLES table and the Create_time column of SHOW TABLE
STATUS output.
Bugs Fixed
* Important Change: InnoDB Storage Engine: Data from BLOB columns could be lost if the server crashed at a precise moment when other columns were being
updated in an InnoDB table.
* InnoDB Storage Engine: This fix improves the performance of instrumentation
code for InnoDB buffer pool operations.
* InnoDB Storage Engine: Lookups using secondary indexes could give incorrect
matches under a specific set of conditions. The conditions involve an index
defined on a column prefix, for a BLOB or other long column stored outside
the index page, with a table using the Barracuda file format.
* InnoDB Storage Engine: This fix corrects cases where the MySQL server could
hang or abort with a long semaphore wait message. (This is a different issue
than when these symptoms occurred during a CHECK TABLE statement.)
* Replication: Issuing the following statements, in the order shown, could cause a deadlock between the user thread and I/O thread.
* more...
This is bug fix release. Since whole changes are too many to write here,
please refer http://dev.mysql.com/doc/refman/5.1/en/news-5-1-58.html.
Especially, some important one for related to us.
* On FreeBSD 64-built builds of the embedded server, exceptions were not
prevented from propagating into the embedded application. (Bug #38965,
Bug #11749418)
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)
This is maintainous release and pleare refer in detail:
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-52.html
One note from the changes:
* Security Fix: In prepared-statement mode, EXPLAIN for a SELECT from
a derived table caused a server crash. (Bug#54488)
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)
Please refer http://dev.mysql.com/doc/refman/5.1/en/news-5-1-50.html
for full changes .
InnoDB Notes:
InnoDB Plugin has been upgraded to version 1.0.11. 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),
generic Linux RPM packages, and any builds produced with the icc
compiler. It also does not work for FreeBSD 6 and HP-UX or for Linux
on generic ia64.
Bugs fixed:
Important Change: Replication: The LOAD DATA INFILE statement is now
considered unsafe for statement-based replication. When using
statement-based logging mode, the statement now produces a warning;
when using mixed-format logging, the statement is made using the
row-based format. (Bug#34283)
Partitioning: UPDATE and INSERT statements affecting partitioned
tables performed poorly when using row-based replication. (Bug#52517)
Partitioning: INSERT ON DUPLICATE KEY UPDATE statements performed
poorly on tables having many partitions. This was because the handler
function for reading a row from a specific index was not optimized in
the partitioning handler. (Bug#52455)
The server could crash on shutdown, if started with
--innodb-use-system-malloc=0. (Bug#55581)
GROUP BY operations used max_sort_length inconsistently. (Bug#55188)
Building MySQL on Solaris 8 x86 failed when using Sun Studio due to
gcc inline assembler code. (Bug#55061)
In debug builds, an assertion could be raised when the server tried to
send an OK packet to the client after having failed to detect errors
during processing of the WHERE condition of an UPDATE
statement. (Bug#54734)
The database server could crash when renaming a table that had active
transactions. (This issue only affected the database server when built
for debugging.) (Bug#54453)
The server could crash during the recovery phase of startup, if it
previously crashed while inserting BLOB or other large columns that
use off-page storage into an InnoDB table created with
ROW_FORMAT=REDUNDANT or ROW_FORMAT=COMPACT. (Bug#54408)
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#54358)
A client could supply data in chunks to a prepared statement parameter other than of type TEXT or BLOB using the mysql_stmt_send_long_data() C API function (or COM_STMT_SEND_LONG_DATA command). This led to a crash because other data types are not valid for long data. (Bug#54041)
mysql_secure_installation did not properly identify local accounts and
could incorrectly remove nonlocal root accounts. (Bug#54004)
Transactions could be incorrectly committed during recovery, rather
than rolled back, if the server crashed and was restarted after
performing ALTER TABLE...ADD PRIMARY KEY on an InnoDB table, or some
other operation that involves copying the entire table. (Bug#53756)
Portability problems in SHOW STATUS could lead to incorrect results on
some platforms. (Bug#53493)
Builds of MySQL generated a large number of warnings. (Bug#53445)
With lower_case_table_names set to a nonzero value, searches for table
or database names in INFORMATION_SCHEMA tables could produce incorrect
results. (Bug#53095)
The ABI check for MySQL failed to compile with gcc 4.5. (Bug#52514)
mysql_secure_installation sometimes failed to locate the mysql
client. (Bug#52274)
Reading a ucs2 data file with LOAD DATA INFILE was subject to three
problems. 1) Incorrect parsing of the file as ucs2 data, resulting in
incorrect length of the parsed string. This is fixed by truncating the
invalid trailing bytes (incomplete multibyte characters) when reading
from the file. 2) Reads from a proper ucs2 file did not recognize
newline characters. This is fixed by first checking whether a byte is
a newline (or any other special character) before reading it as a part
of a multibyte character. 3) When using user variables to hold column
data, the character set of the user variable was set incorrectly to
the database charset. This is fixed by setting it to the character set
specified in the LOAD DATA INFILE statement, if any. (Bug#51876)
Searches in INFORMATION_SCHEMA tables for rows matching a nonexistent
database produced an error instead of an empty query
result. (Bug#49542)
On FreeBSD, memory mapping for MERGE tables could fail if underlying
tables were empty. (Bug#47139)
The my_like_range_xxx() functions returned badly formed maximum
strings for Asian character sets, which caused problems for storage
engines. (Bug#45012)
A debugging assertion could be raised after a write failure to a
closed socket. (Bug#42496)
An assertion failure occurred within yaSSL for very long keys. (Bug#29784)
See also Bug#53463.