Commit graph

51 commits

Author SHA1 Message Date
rodent
d6d8698890 Don't hardcode PID file. Instead, give the user the option to set it. The
rc.d script overrides my.cnf directives. Hardcoding the PID can cause a
problem on systems transitioning to MySQL packages from pkgsrc.
2014-04-14 00:02:49 +00:00
adam
9fcbef5dab Changes 5.5.37:
Functionality Added or Changed

On Solaris, mysql_config --libs now includes -R/path/to/library so that libraries can be found at runtime.

Bugs Fixed

InnoDB: A regression introduced by Bug 14329288 would result in a performance degradation when a compressed table does not fit into memory.

InnoDB: The maximum value for innodb_thread_sleep_delay is now 1000000 microseconds. The previous maximum value (4294967295 microseconds on 32-bit and 18446744073709551615 microseconds on 64-bit) was unnecessarily large. Because the maximum value of innodb_thread_sleep_delay is limited by the value set for innodb_adaptive_max_sleep_delay (when set to a non-zero value), the maximum value for innodb_thread_sleep_delay is now the same as the maximum value for innodb_adaptive_max_sleep_delay.

InnoDB: In debug builds, creating a unique index on a binary column, with input data containing duplicate keys, would cause an assertion.

InnoDB: InnoDB would fail to start when innodb_data_file_path specified the data file size in kilobytes by appending K to the size value.

InnoDB: An insert buffer merge would cause an assertion error due to incorrectly handled ownership information for externally stored BLOBs.

InnoDB: Assertion failure in thread thread_num in file ibuf0ibuf.cc line 4080
InnoDB: Failing assertion: rec_get_deleted_flag(rec, page_is_comp(page))

InnoDB: Decreasing the auto_increment_increment value would have no affect on the next auto-increment value.

Replication: The server did not handle correctly the insertion of a row larger than 4 GB when using row-based replication.

Replication: When using row-based replication, an additional auto-increment column on the slave version of a table was not updated correctly; a zero was inserted instead.

Replication: Statements involving the Performance Schema tables should not be written to the binary log, because the content of these tables is applicable only to a given MySQL Server instance, and may differ greatly between different servers in a replication topology. The database administrator should be able to configure (INSERT, UPDATE, or DELETE) or flush (TRUNCATE TABLE) performance schema tables on a single server without affecting others. However, when replicating from a MySQL 5.5 master to a MySQL 5.5 or later slave, warnings about unsafe statements updating Performance Schema tables were elevated to errors. For MySQL 5.6 and later slaves, this prevented the simultaneous use of performance_schema and GTIDs (see Replication with Global Transaction Identifiers, in the MySQL 5.6 Manual).

This fix causes all updates on tables in the performance_schema database to be filtered on the master and not replicated, regardless of the type of logging that is in effect. Prior to this fix, statements using were handled by being marked as unsafe for replication, which caused warnings during execution; the statements were nonetheless written to the binary log, regardless of the logging format in effect.

Existing replication behavior for tables in the INFORMATION_SCHEMA database is not changed by this fix.

For more information, see MySQL Performance Schema.

Compilation failed if MySQL was configured with CFLAGS set to include a -Werror option with an argument.

A shared libmysqld embedded server library was not built on Linux.

While printing the server version, the mysql client did not check for buffer overflow in a string variable.

Contraction information in a collation could be mishandled, resulting in incorrect decisions about whether a character is part of a contraction, and miscalculation of contraction weights.

DROP TRIGGER succeeded even with the read_only system variable enabled.

Updating the Performance Schema setup_instruments table on a replication master caused a slave to exit.

Due to a race condition, it was possible for two threads to end up with the same query ID for different queries.

When run by root, mysqld --help --verbose exited with a nonzero error code after displaying the help message.

MySQL client programs from a Community Edition distribution could not connect using SSL to a MySQL server from an Enterprise Edition. This was due to a difference in certificate handling by yaSSL and OpenSSL (used for Community and Enterprise, respectively). OpenSSL expected a blank certificate to be sent when not all of the --ssl-ca, --ssl-cert, and --ssl-key options were specified, and yaSSL did not do so. To resolve this, yaSSL has been modified to send a blank certificate when an option is missing.

A deadlock error occurring during subquery execution could cause an assertion to be raised.

The Performance Schema stage/sql/Waiting to get readlock instrument is no longer used and has been removed.

For system variables that take a string value, SET statements permitted an unquoted value, but values that contained dots were parsed incorrectly and only part of the value was assigned. For example, SET GLOBAL slow_query_log_file = my_slow.log assigned the value my_slow. Now such values must be quoted or an error occurs.

On Windows, mysql_install_db.pl could be run only from within the bin directory under the installation directory.
2014-03-31 08:03:22 +00:00
jperkin
1cb5723399 Add dtrace option. 2014-03-25 13:56:38 +00:00
jperkin
d9dd71c974 Support building with recent DTrace (v1.11 or newer).
Patch from https://bugs.launchpad.net/percona-server/+bug/1196460
2014-02-13 15:47:15 +00:00
tron
73d05e2276 Recursive PKGREVISION bump for OpenSSL API version bump. 2014-02-12 23:17:32 +00:00
adam
6ed5793d14 Changes 5.5.36:
Functionality Added or Changed

CMake now supports a -DTMPDIR=dir_name option to specify the default tmpdir value. If unspecified, the value defaults to P_tmpdir in <stdio.h>. Thanks to Honza Horak for the patch.

Bugs Fixed

InnoDB: Table renaming errors would appear in the LATEST FOREIGN KEY ERROR section of the SHOW ENGINE INNODB STATUS output.

Partitioning: Queries using the index_merge optimization (see Index Merge Optimization) could return invalid results when run against tables that were partitioned by HASH.

Partitioning: When no partition had returned a row since the last HA_ERR_KEY_NOT_FOUND error, the use of uninitialized memory in the priority queue used for returning rows in sorted order could lead to a crash of the server.

Replication: mysqlbinlog --verbose failed when it encountered a corrupt row event in the binary log. Such a row event could also cause the slave to fail.

Replication: When log_warnings is greater than 1, the master prints binary log dump thread information—containing the slave server ID, binary log file name, and binary log position—in mysqld.1.err. A slave server ID greater than 2 billion was printed with a negative value in such cases.

Replication: Invalid event offsets in the binary log were not always handled correctly, which could lead to replication failure.

The cache used for the Index Merge access method was freed only after successful retrieval of all rows. Interruption or failure of the operation led to a file descriptor leak.

For utf8 and utf8mb4 strings, handler functions unnecessarily called a Unicode conversion function.

Use of a nonmulti-byte algorithm for skipping leading spaces in multi-byte strings could cause a server exit.

For the utf8_bin collation, ORDER BY LOWER(col_name) could produce incorrect ordering.

On Windows, the --local-service server option did not work, and was not displayed in the --help message.

The prototype of the Performance Schema instrumentation API mysql_cond_timedwait() call was fixed to be drop-in compatible with pthread_cond_timedwait(). This fix affects only implementers of third-party plugins.

For the path specified with the --basedir option, mysql_plugin attempted to unlink the path rather than free the memory in which the path was stored.

COUNT(DISTINCT) sometimes produced an incorrect result when the last read row contained a NULL value.

Some scripts displayed out-of-date information regarding where to report bugs.

Updating a FEDERATED table with UPDATE... JOIN caused a server exit when the local table contained a single row and that row could be joined to a row in the FEDERATED table.

mysql_install_db referred to the obsolete mysqlbug script for reporting problems. It now refers to http://bugs.mysql.com/ instead.
2014-02-01 11:16:03 +00:00
asau
37c7491d6e Use uniform shared library names to avoid packaging list divergence.
This fixes package (and some its dependents) on FreeBSD at least.
2013-12-15 18:45:18 +00:00
wiz
1c6eee37c4 Remove CONFLICTS with ${PKGBASE}, these are automatic.
Avoids unnecessary pkgin warning.
2013-12-05 14:20:02 +00:00
adam
c661d188b5 Changes 5.5.35:
* Previously, MySQL Server distributions included the MySQL Reference Manual in Info format (the Docs/mysql.info file). Because the license for the manual restricts redistribution, its inclusion in Community packages caused problems for downstream redistributors, such as those who create Linux distributions. Community distributions of MySQL Server no longer include the mysql.info file, to make the repackaging and redistribution process easier (for example, the source tarball and its checksum can be used directly). This change applies to all source and binary Community packaging formats. Commercial (Enterprise) distributions are unchanged.
* A new CMake option, WITH_ASAN, permits enabling address sanitization for compilers that support it.
* Attempts to use the thread_concurrency system variable (which has an effect only for Solaris 8 and earlier) now indicate that it has no effect when that is the case.
* Bugs Fixed
2013-12-03 15:40:19 +00:00
adam
604fad8c36 Changes 5.5.34:
* MySQL 5.7 changed audit log file output to a new format that has better compatibility with Oracle Audit Vault. This format has been backported to MySQL 5.5 and it is possible to select either the old or new format using the new audit_log_format system variable, which has permitted values of OLD and NEW (default OLD). For details about each format, see The Audit Log File.
* InnoDB; Partitioning: Following any query on the INFORMATION_SCHEMA.PARTITIONS table, InnoDB index statistics as shown in the output of statements such as SELECT * FROM INFORMATION_SCHEMA.STATISTICS were read from the last partition, instead of from the partition containing the greatest number of rows.
* 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: A regression introduced with the fix for Bug 11762038 would cause InnoDB to raise an incorrect error message. The message stated that, “InnoDB cannot delete/update rows with cascading foreign key constraints that exceed max depth of 20”. The error message would occur when killing connections reading from InnoDB tables that did not have foreign key constraints.
* InnoDB: The documentation incorrectly stated that START TRANSACTION WITH CONSISTENT SNAPSHOT provides a consistent snapshot only if the current isolation level is REPEATABLE READ or SERIALIZABLE. START TRANSACTION WITH CONSISTENT SNAPSHOT only works with REPEATABLE READ. All other isolation levels are ignored. The documentation has been revised and a warning is now generated whenever the WITH CONSISTENT SNAPSHOT clause is ignored.
* 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.
more...
2013-09-30 18:26:38 +00:00
taca
22d082da22 Always create symbolic links avoid to use ".so" macro and stop ugly
messages from daily (or weekly).

Rebuilding man page index:
man-gpl-tmp2/mysql_client_test.1: No such file or directory
man-gpl-tmp2/mysqltest.1: No such file or directory

Bump PKGREVISION.
2013-08-31 02:08:32 +00:00
ryoon
c409512663 Fix editline build.
Convert to use mk/readline.buildlink3.mk.

No objection on pkgsrc-users@.
2013-08-22 12:28:08 +00:00
adam
487543241a Changes 5.5.33:
* Previously, program options could be specified in full or as any unambiguous prefix. For example, the --compress option could be given to mysqldump as --compr, but not as --comp because the latter is ambiguous. Option prefixes now are deprecated. They can cause problems when new options are implemented for programs. A prefix that is currently unambiguous might become ambiguous in the future. If an unambiguous prefix is given, a warning now occurs to provide feedback. For example:

Warning: Using unique option prefix compr instead of compress is
deprecated and will be removed in a future release. Please use the
full name instead.

Option prefixes are no longer supported in MySQL 5.7; only full options are accepted.

* 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
2013-07-31 18:51:41 +00:00
adam
cd0f40886d Distfile got changed (licence clause in mans). Revision bump.
Don't use mk/readline.buildlink3.mk! Must be devel/readline/buildlink3.mk!
2013-07-17 21:22:40 +00:00
ryoon
f8e628f818 * .include "../../devel/readline/buildlink3.mk" with USE_GNU_READLINE=yes
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".
2013-07-15 02:02:17 +00:00
adam
91e3f80142 Changes 5.5.32:
* mysql_upgrade now verifies that the server version matches the version against which it was compiled, and exits if there is a mismatch. In addiion, a --version-check option permits specifying whether to enable version checking (the default), or disable checking if given as --skip-version-checking.
* Bugs Fixed
2013-06-04 13:31:21 +00:00
wiz
98c3768c3a Bump all packages for perl-5.18, that
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package

Like last time, where this caused no complaints.
2013-05-31 12:39:35 +00:00
adam
e1abd6b513 Changes 5.5.31:
MySQL no longer uses the default OpenSSL compression.
Bug fixes.
2013-04-20 08:06:56 +00:00
joerg
ce6a45fdcc Don't pick up MySQL 5.6+ 2013-03-23 16:01:58 +00:00
fhajny
d49ca86769 No reason not to build against pkgsrc openssl 2013-02-18 10:17:19 +00:00
adam
8036f8f627 Changes 5.5.30:
Refer to http://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-30.html
2013-02-12 20:36:28 +00:00
jperkin
becd113253 PKGREVISION bumps for the security/openssl 1.0.1d update. 2013-02-06 23:20:50 +00:00
jperkin
ff363f2c6e Ensure the correct DTrace ABI is used. Fixes Solaris 32-bit build. 2013-02-05 11:01:19 +00:00
adam
26a32e69f5 Changes 5.5.29:
* The SHOW AUTHORS and SHOW CONTRIBUTORS statements are now deprecated in MySQL 5.5 and have been removed in MySQL 5.6.
* Bugs Fixed
2013-01-03 21:23:04 +00:00
tron
d6d08b67b1 Fix mysql_client_test_embedded(1) and mysqltest_embedded(1) manual pages
in case the package gets built with manual page compression.

Bump package revivison because of this bug fix.
2012-12-22 10:56:14 +00:00
wiz
8b5d49eb78 Bump all packages that use perl, or depend on a p5-* package, or
are called p5-*.

I hope that's all of them.
2012-10-03 21:53:53 +00:00
fhajny
c33e338625 Add BUILDLINK_LIBDIRS to mysql55-* too, to help out packages like
net/powerdns-mysql.
2012-10-03 12:49:12 +00:00
asau
354ee694fd Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-02 21:25:15 +00:00
adam
d566b3775e Changes 5.5.28:
The internal interface of the Thread Pool plugin has changed. Old versions of the plugin will work with current versions of the server, but versions of the server older than 5.5.28 will not work with current versions of the plugin.

Bugs Fixed

InnoDB: Certain information_schema tables originally introduced in MySQL 5.6 are now also available in MySQL 5.5 and MySQL 5.1: INNODB_BUFFER_PAGE, INNODB_BUFFER_PAGE_LRU, and INNODB_BUFFER_POOL_STATS.

InnoDB: When a SELECT ... FOR UPDATE, UPDATE, or other SQL statement scanned rows in an InnoDB table using a < or <= operator in a WHERE clause, the next row after the affected range could also be locked. This issue could cause a lock wait timeout for a row that was not expected to be locked. The issue occurred under various isolation levels, such as READ COMMITTED and REPEATABLE READ.

Partitioning: For tables using PARTITION BY HASH or PARTITION BY KEY, when the partition pruning mechanism encountered a multi-range list or inequality using a column from the partitioning key, it continued with the next partitioning column and tried to use it for pruning, even if the previous column could not be used. This caused partitions which possibly matched one or more of the previous partitioning columns to be pruned away, leaving partitions that matched only the last column of the partitioning key.

This issue was triggered when both of the following conditions were met:

The columns making up the table's partitioning key were used in the same order as in the partitioning key definition by a SELECT statement's WHERE clause as in the column definitions;

The WHERE condition used with the last column of the partitioning key was satisfied only by a single value, while the condition testing some previous column from the partitioning key was satisfied by a range of values.

An example of a statement creating a partitioned table and a query against this for which the issue described above occurred is shown here:

CREATE TABLE t1 (
  c1 INT,
  c2 INT,
  PRIMARY KEY(c2, c1)
) PARTITION BY KEY()  # Use primary key as partitioning key
  PARTITIONS 2;

SELECT * FROM t1 WHERE c2 = 2 AND c1 <> 2;
This issue is resolved by ensuring that partition pruning skips any remaining partitioning key columns once a partition key column that cannot be used in pruning is encountered.

Partitioning: The buffer for the row currently read from each partition used for sorted reads was allocated on open and freed only when the partitioning handler was closed or destroyed. For SELECT statements on tables with many partitions and large rows, this could cause the server to use excessive amounts of memory.

This issue has been addressed by allocating buffers for reads from partitioned tables only when they are needed and freeing them immediately once they are no longer needed. As part of this fix, memory is now allocated for reading from rows only in partitions that have not been pruned (see Section 18.4, “Partition Pruning”).

Replication: On 64-bit Windows platforms, values greater than 4G for the max_binlog_cache_size and max_binlog_stmt_cache_size system variables were truncated to 4G. This caused LOAD DATA INFILE to fail when trying to load a file larger than 4G in size, even when max_binlog_cache_size was set to a value greater than this.

Replication: In master-master replication with --log-slave-updates enabled, setting a user variable and then performing inserts using this variable caused the Exec_master_log_position column in the output of SHOW SLAVE STATUS not to be updated.

The RPM spec file now also runs the test suite on the new binaries, before packaging them.

The libmysqlclient_r client library exported symbols from yaSSL that conflict with OpenSSL. If a program linked against that library and libcurl, it could crash with a segmentation fault.

The argument for LIMIT must be an integer, but if the argument was given by a placeholder in a prepared statement, the server did not reject noninteger values such as '5'.

The Thread Pool plugin did not respect the wait_timeout timeout for client sessions.

CHECK TABLE and REPAIR TABLE could crash if a key definition differed in the .frm and .MYI files of a MyISAM table. Now the server produces an error.

A query for a FEDERATED table could return incorrect results when the underlying table had a compound index on two columns and the query included an AND condition on the columns.

mysqlhotcopy failed for databases containing views.

The argument to the --ssl-key option was not verified to exist and be a valid key. The resulting connection used SSL, but the key was not used.

Adding a LIMIT clause to a query containing GROUP BY and ORDER BY could cause the optimizer to choose an incorrect index for processing the query, and return more rows than required.

mysqlbinlog did not accept input on the standard input when the standard input was a pipe.
2012-10-01 15:54:40 +00:00
adam
8838674cef Changes 5.5.27:
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)”.
2012-08-03 13:46:49 +00:00
adam
5b8c9321c8 Changes 5.5.25a:
* A regression bug in the optimizer could cause excessive disk usage for UPDATE statements.
2012-07-06 20:17:12 +00:00
adam
a58e9d5e34 Changes 5.5.25:
* The --safe-mode server option now is deprecated and will be removed in MySQL
  5.6.
* Performance: InnoDB: Improved the algorithm related to adaptive flushing.
  This fix increases the rate of flushing in cases where compression is used
  and the data set is larger than the buffer pool, leading to eviction.
* InnoDB: In a transaction using the REPEATABLE READ isolation level, an UPDATE
  or DELETE statement for an InnoDB table could sometimes overlook rows
  recently committed by other transactions. As explained in Section 14.3.9.2,
  “Consistent Nonlocking Reads”, DML statements within a REPEATABLE READ
  transaction apply to rows committed by other transactions, even if a query
  could not see those rows.
* InnoDB: The Innodb_buffer_pool_pages_flushed status variable was incorrectly
  set to twice the value it should be. Its value should never exceed the value
  of Innodb_pages_written.
* InnoDB: The error handling and message was improved for attempting to create
  a foreign key with a column referencing itself. The message suggested
  a potential problem with the data dictionary, when no such problem existed.
* InnoDB: The CHECK TABLE statement could fail for a large InnoDB table due to
  a timeout value of 2 hours. For typical storage devices, the issue could
  occur for tables that exceeded approximately 200 or 350 GB, depending on I/O
  speed. The fix relaxes the locking performed on the table being checked,
  which makes the timeout less likely. It also makes InnoDB recognize the
  syntax CHECK TABLE QUICK, which avoids the possibility of the timeout
  entirely.
* Replication: It was theoretically possible for concurrent execution of more
  than one instance of SHOW BINLOG EVENTS to crash the MySQL Server.
* Replication: Statements using AUTO_INCREMENT, LAST_INSERT_ID(), RAND(), or
  user variables could be applied in the wrong context on the slave when using
  statement-based replication and replication filtering server options (see
  Section 16.2.3, “How Servers Evaluate Replication Filtering Rules”).
* Replication: An INSERT into a table that has a composite primary key that
  includes an AUTO_INCREMENT column that is not the first column of this
  composite key is not safe for statement-based binary logging or replication.
  Such statements are now marked as unsafe and fail with an error when using
  the STATEMENT binary logging format. For more information, see Section
  16.1.2.3, “Determination of Safe and Unsafe Statements in Binary Logging”, as
  well as Section 16.4.1.1, “Replication and AUTO_INCREMENT”.
2012-06-02 22:28:00 +00:00
taca
b5d01b7cd8 Update mysql55-{client,server} to 5.55.24.
Changes (http://dev.mysql.com/doc/refman/5.5/en/news-5-5-24.html):

Functionality Added or Changed

    * Important Change: Replication: INSERT ON DUPLICATE KEY UPDATE is now
      marked as unsafe for statement-based replication if the target table has
      more than one primary or unique key. For more information, see Section
      16.1.2.3, "Determination of Safe and Unsafe Statements in Binary
      Logging".

Bugs Fixed

    * Security Fix: Bug #64884 was fixed.

    * InnoDB: Replication: When binary log statements were replayed on the
      slave, the Com_insert, Com_update, and Com_delete counters were
      incremented by BEGIN statements initiating transactions affecting InnoDB
      tables but not by COMMIT statements ending such transactions. This
      affected these statements whether they were replicated or they were run
      using mysqlbinlog. (Bug #12662190)

    * If the --bind-address option was given a host name value and the host
      name resolved to more than one IP address, the server failed to
      start. For example, with --bind-address=localhost, if localhost resolved
      to both 127.0.0.1 and ::1, startup failed. Now the server prefers the
      IPv4 address in such cases. (Bug #61713, Bug #12762885)

    * 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.

    * On Windows, mysqlslap crashed for attempts to connect using shared
      memory. (Bug #31173, Bug #11747181, Bug #59107, Bug #11766072)
2012-05-13 13:05:33 +00:00
adam
520e4c1799 Changes 5.5.23:
Bugs Fixed
* Security Fix: Bug 59533 was fixed.
* Performance: Partitioning: InnoDB Storage Engine: The statistics used by the
  optimizer for queries against partitioned InnoDB tables were based only on the
  first partition of each such table, leading to use of the wrong execution
  plan.
* References: This bug was introduced by Bug 11756867.
* Performance: InnoDB Storage Engine: Improved the performance of the DROP TABLE
  statement for InnoDB tables, especially on systems with a large buffer pool.
  The fix speeds up the processing for freeing entries in the adaptive hash
  index.
* InnoDB Storage Engine: 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.
* InnoDB Storage Engine: 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.
* InnoDB Storage Engine: 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.
More...
2012-04-14 12:10:05 +00:00
adam
1f6af97b88 Changes 5.5.22:
* InnoDB Storage Engine: A deprecation warning is now issued when
  --ignore-builtin-innodb is used.
* yaSSL was upgraded from version 1.7.2 to 2.2.0.
* Security Fix: Bug 13510739 and Bug 63775 were fixed.
* Important Change: InnoDB Storage Engine: When a row grew in size due to an
  UPDATE operation, other (non-updated) columns could be moved to off-page
  storage so that information about the row still fit within the constraints of
  the InnoDB page size. The pointer to the new allocated off-page data was not
  set up until the pages were allocated and written, potentially leading to
  lost data if the system crashed while the column was being moved out of the
  page. The problem was more common with tables using ROW_FORMAT=DYNAMIC or
  ROW_FORMAT=COMPRESSED along with the Barracuda file format, particularly with
  the innodb_file_per_table setting enabled, because page allocation operations
  are more common as the .ibd tablespace files are extended. Still, the problem
  could occur with any combination of InnoDB version, file format, and row
  format.
* InnoDB Storage Engine: An erroneous assertion could occur, in debug builds
  only, when creating an index on a column containing zero-length values (that
  is, '').
* InnoDB Storage Engine: A DDL operation such as ALTER TABLE ... ADD COLUMN
  could stall, eventually timing out with an Error 1005: Can't create table
  message referring to fil_rename_tablespace.
* InnoDB Storage Engine: A DDL operation for an InnoDB table could cause a busy
  MySQL server to halt with an assertion error:
More...
2012-04-08 18:30:27 +00:00
adam
a0bb0fed98 Changes 5.5.21:
* A new CMake option, MYSQL_PROJECT_NAME, can be set on Windows or Mac OS X to
  be used in the project name.
Bugs Fixed
* Performance: InnoDB Storage Engine: Memory allocation for InnoDB tables was
  reorganized to reduce the memory overhead for large numbers of tables or
  partitions, avoiding situations where the “resident set size” could grow
  regardless of FLUSH TABLES statements. The problem was most evident for tables
  with large row size.
* Incompatible Change: An earlier change (in MySQL 5.1.62 and 5.5.21) was found
  to modify date-handling behavior in General Availability-status series (MySQL
  5.1 and 5.5). This change has been reverted.
* The change was that several functions became more strict when passed a DATE()
  function value as their argument, thus they rejected incomplete dates with
  a day part of zero. These functions were affected: CONVERT_TZ(), DATE_ADD(),
  DATE_SUB(), DAYOFYEAR(), LAST_DAY(), TIMESTAMPDIFF(), TO_DAYS(), TO_SECONDS(),
  WEEK(), WEEKDAY(), WEEKOFYEAR(), YEARWEEK(). The previous behavior has been
  restored.
* InnoDB Storage Engine: A Valgrind error was fixed in the function
  os_aio_init().
* InnoDB Storage Engine: The server could crash when creating an InnoDB
  temporary table under Linux, if the $TMPDIR setting points to a tmpfs
  filesystem and innodb_use_native_aio is enabled, as it is by default in MySQL
  5.5.4 and higher.
* InnoDB Storage Engine: References to C preprocessor symbols and macros
  HAVE_purify, UNIV_INIT_MEM_TO_ZERO, and UNIV_SET_MEM_TO_ZERO were removed
  from the InnoDB source code. They were only used in debug builds instrumented
  for Valgrind. They are replaced by calls to the UNIV_MEM_INVALID() macro.
2012-02-23 13:01:03 +00:00
sbd
a2bb81164d Pass PKGMANDIR to cmake 2012-02-19 01:46:45 +00:00
adam
687e1a9063 Changes 5.5.20:
* A new server option, --slow-start-timeout, controls the Windows service
  control manager's service start timeout. The value is the maximum number of
  milliseconds that the service control manager waits before trying to kill the
  MySQL service during startup. The default value is 15000 (15 seconds). If the
  MySQL service takes too long to start, you may need to increase this value.
  A value of 0 means there is no timeout.

Bugs Fixed:
* Important Change: Replication: Setting an empty user in a CHANGE MASTER TO
  statement caused an invalid internal result and is no longer permitted. Trying  to use MASTER_USER='' or setting MASTER_PASSWORD while leaving MASTER_USER
  unset causes the statement to fail with an error.
* Important Change: Replication: Moving the binary log file, relay log file, or
  both files to a new location, then restarting the server with a new value for
  --log-bin, --relay-log, or both, caused the server to abort on start. This
  was because the entries in the index file overrode the new location. In
  addition, paths were calculated relative to datadir (rather than to the
  --log-bin or --relay-log values).
* InnoDB Storage Engine: When doing a live downgrade from MySQL 5.6.4 or later,   with innodb_page_size set to a value other than 16384, now the earlier MySQL
  version reports that the page size is incompatible with the older version,
  rather than crashing or displaying a “corruption” error.
* 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.
* Locale information for FORMAT() function instances was lost in view
  definitions.
* The handle_segfault() signal-handler code in mysqld could itself crash due to
  calling unsafe functions.
* Enabling myisam_use_mmap could cause the server to crash.
* Concurrent access to ARCHIVE tables could cause corruption.
2012-01-12 16:33:49 +00:00
adam
96fa10ffa7 Changes 5.5.19:
* Performance of metadata locking operations on Windows XP systems was improved
  by instituting a cache for metadata lock objects. This permits the server to
  avoid expensive operations for creation and destruction of synchronization
  objects on XP. A new system variable, metadata_locks_cache_size, permits
  control over the size of the cache. The default size is 1024.
* Replication: Previously, replication slaves could connect to the master
  server through master accounts that use nonnative authentication, except
  Windows native authentication. This is now also true for Windows native
  authentication.

Bugs Fixed:
* InnoDB Storage Engine: An internal deadlock could occur within InnoDB, on
  a server doing a substantial amount of change buffering for DML operations,
  particularly DELETE statements.
* Rounding DBL_MAX returned DBL_MAX, not 'inf'.
* mysql_upgrade did not upgrade the system tables or create the
  mysql_upgrade_info file when run with the --write-binlog or
  --skip-write-binlog option.
* If a plugin was uninstalled, thread local variables for plugin variables of
  string type with wth PLUGIN_VAR_MEMALLOC flag were not freed.
* Deadlock could occur when these four things happened at the same time: 1) An
  old dump thread was waiting for the binary log to grow. 2) The slave server
  that replicates from the old dump thread tried to reconnect. During
  reconnection, the new dump thread tried to kill the old dump thread.
  3) A KILL statement tried to kill the old dump thread. 4) An INSERT statement
  caused a binary log rotation.
2011-12-13 12:14:49 +00:00
adam
008bf58894 Changes 5.5.18:
Functionality Added or Changed
* 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.

Bugs Fixed
* Incompatible Change: Replication.
* During the table-opening process, memory was allocated and later freed that
  was needed view loading, even for statements that did not use views. These
  unnecessary allocation and free operations are no longer done.
* mysql_plugin mishandled the --plugin-ini, --mysqld, and --my-print-defaults
  options under some circumstances.
* mysql_plugin returned the wrong error code from failed server bootstrap
  execution.
* Several improvements were made to the libedit library bundled with MySQL
  distributions, and that is available for all platforms that MySQL supports
  except Windows.
* ARCHIVE tables with NULL columns could cause server crashes or become corrupt
  under concurrent load.
* OPTIMIZE TABLE could corrupt MyISAM tables if myisam_use_mmap was enabled.
* A query that selected a GROUP_CONCAT() function result could return different
  values depending on whether an ORDER BY of the function result was present.
* For FEDERATED tables, loss of connection to the remote table during some
  insert operations could cause a server crash.
2011-11-21 16:55:59 +00:00
adam
04bd4ea6bc Changes 5.5.17:
* Replication: Previously, replication slaves could connect to the master
  server only through master accounts that use native authentication. Now
  replication slaves can also connect through master accounts that use
  nonnative authentication (except Windows native authentication) if the
  required client-side plugin is installed on the slave side in the directory
  named by the slave plugin_dir system variable.
* 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.
* InnoDB Storage Engine: This fix improves the performance of instrumentation
  code for InnoDB buffer pool operations.
* 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: 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.)
* Internal conversion of zero to binary and back could yield a result with
  incorrect precision.
* Valgrind warnings generated by filesort operations were fixed.
* mysqld_safe did not properly check for an already running instance of mysqld.
* The help message for mysql_install_db did not indicate that it supports the
  --defaults-file, --defaults-extra-file and --no-defaults options.
* An assertion designed to detect zero-length sort keys also was raised when
  the entire key set fit in memory.
* myisampack could create corrupt FULLTEXT indexes when compressing tables.
* A linking problem prevented the FEDERATED storage engine plugin from loading.
2011-10-22 10:32:37 +00:00
adam
9de1ab23d0 Changes 5.5.16:
* The default thread-handling model in MySQL Server executes statements using
  one thread per client connection.
* Commercial distributions of MySQL now include two plugins that enable MySQL
  Server to use external authentication methods to authenticate MySQL users
* Important Change: Replication: The RESET SLAVE statement has been extended
  with an ALL keyword.
* A new utility, mysql_plugin, enables MySQL administrators to manage which
  plugins a MySQL server loads.
* Bugs fixed.
2011-09-16 07:13:47 +00:00
adam
ef4b67f27a Fix for Mac OS X 10.7 2011-08-25 04:37:17 +00:00
adam
8e17daa1b6 Changes 5.5.15:
* 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.
2011-07-28 08:10:29 +00:00
adam
7d32d3e01d Changes 5.5.14:
* 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.
2011-07-08 09:32:07 +00:00
adam
853cb81607 Changes 5.5.13:
* 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”).
2011-06-15 21:00:05 +00:00
adam
04b050805a Added MYSQL_COLLATION 2011-05-09 13:06:28 +00:00
adam
05b98ae603 Changes 5.5.12:
* 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.
2011-05-07 04:03:07 +00:00
abs
986593df3f Fix build on (at least RHEL 5.6). Tested (and no change) on NetBSD 5.99.51 2011-05-06 16:21:16 +00:00
adam
d9486c6fc7 Removed USE_LIBTOOL and BUILDLINK_LIBDIRS 2011-04-27 08:48:59 +00:00