pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/databases

Module Name:    pkgsrc
Committed By:   adam
Date:           Mon Oct  1 15:54:40 UTC 2012

Modified Files:
        pkgsrc/databases/mysql55-client: Makefile.common distinfo
        pkgsrc/databases/mysql55-client/patches: patch-CMakeLists.txt
        pkgsrc/databases/mysql55-server: PLIST

Log Message:
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: 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 

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:

  c1 INT,
  c2 INT,
  PRIMARY KEY(c2, c1)
) PARTITION BY KEY()  # Use primary key as partitioning key

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 

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 

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.

To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 pkgsrc/databases/mysql55-client/Makefile.common
cvs rdiff -u -r1.18 -r1.19 pkgsrc/databases/mysql55-client/distinfo
cvs rdiff -u -r1.2 -r1.3 \
    pkgsrc/databases/mysql55-client/patches/patch-CMakeLists.txt \
cvs rdiff -u -r1.1.1.1 -r1.2 \
    pkgsrc/databases/mysql55-client/patches/ \
    pkgsrc/databases/mysql55-client/patches/ \
    pkgsrc/databases/mysql55-client/patches/ \
    pkgsrc/databases/mysql55-client/patches/patch-mysys_stacktrace.c \
    pkgsrc/databases/mysql55-client/patches/ \
    pkgsrc/databases/mysql55-client/patches/patch-sql_CMakeLists.txt \
cvs rdiff -u -r1.18 -r1.19 pkgsrc/databases/mysql55-server/PLIST

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index