MySQL Community Server 5.1.46

This item was filled under [ MySQL, Releases ]

MySQL Community Server 5.1.46, a new version of the popular Open Source Database Management System, has been released.  MySQL 5.1.46 is recommended for use on production systems.

For an overview of what’s new in MySQL 5.1, please see  http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html

For information on installing MySQL 5.1.46 on new servers or upgrading to MySQL 5.1.46 from previous MySQL releases, please see  http://dev.mysql.com/doc/refman/5.1/en/installing.html

MySQL Server is available in source and binary form for a number of platforms from the download pages at  http://dev.mysql.com/downloads/

For information on open issues in MySQL 5.1, please see the errata list at  http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html

The following section lists the changes in the MySQL source code since the previous released version of MySQL 5.1.  It may also be viewed online at  http://dev.mysql.com/doc/refman/5.1/en/news-5-1-46.html

=======================================================================

C.1.2. Changes in MySQL 5.1.46

InnoDB Plugin Notes:

* InnoDB Plugin has been upgraded to version 1.0.7. This version

is considered of General Availability (GA) quality. The InnoDB

Plugin Change History

(http://www.innodb.com/doc/innodb_plugin-1.0/innodb-changes.ht

ml) 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:

* There is a new system variable, skip_name_resolve, that is set

from the value of the –skip-name-resolve server option. This

provides a way to determine at runtime whether the server uses

name resolution for client connections.

(Bug#37168: http://bugs.mysql.com/bug.php?id=37168)

Bugs fixed:

* Security Fix: Privilege checking for UNINSTALL PLUGIN was

incorrect. (Bug#51770: http://bugs.mysql.com/bug.php?id=51770)

* Partitioning: Partition pruning on RANGE partitioned tables

did not always work correctly; the last partition was not

excluded if the range was beyond it (when not using MAXVALUE).

Now the last partition is not included if the partitioning

function value is not within the range.

(Bug#51830: http://bugs.mysql.com/bug.php?id=51830)

* Partitioning: The insert_id server system variable was not

reset following an insert that failed on a partitioned MyISAM

table having an AUTO_INCREMENT column.

(Bug#50392: http://bugs.mysql.com/bug.php?id=50392)

* Partitioning: Foreign keys are not supported on partitioned

tables. However, it was possible via an ALTER TABLE statement

to set a foreign key on a partitioned table; it was also

possible to partition a table with a single foreign key.

(Bug#50104: http://bugs.mysql.com/bug.php?id=50104)

* Partitioning: GROUP BY queries performed poorly for some

partitioned tables. This was due to the block size not being

set for partitioned tables, thus the keys per block was not

correct, which could cause such queries to be optimized

incorrectly.

(Bug#48229: http://bugs.mysql.com/bug.php?id=48229)

See also Bug#37252: http://bugs.mysql.com/bug.php?id=37252.

* Partitioning: REPAIR TABLE failed for partitioned ARCHIVE

tables. (Bug#46565: http://bugs.mysql.com/bug.php?id=46565)

* Replication: TRUNCATE TABLE performed on a temporary table

using the InnoDB storage engine was logged even when using

row-based mode.

(Bug#51251: http://bugs.mysql.com/bug.php?id=51251)

* Replication: When using temporary tables the binary log needs

to insert a pseudo-thread ID for threads that are using

temporary tables, each time a switch happens between two

threads, both of which are using temporary tables. However, if

a thread issued a failing statement before exit, its ID was

not recorded in the binary log, and this in turn caused the ID

for the next thread that tried to do something with a

temporary table not to be logged as well. Subsequent replays

of the binary log failed with the error Table … doesn’t

exist. (Bug#51226: http://bugs.mysql.com/bug.php?id=51226)

* Replication: If the master was using sql_mode=’TRADITIONAL’,

duplicate key errors were not sent to the slave, which

received 0 rather than the expected error code. This caused

replication to fail even when such an error was expected.

(Bug#51055: http://bugs.mysql.com/bug.php?id=51055)

* Replication: When run with the –database option, mysqlbinlog

printed ROLLBACK statements but did not print any

corresponding SAVEPOINT statements.

(Bug#50407: http://bugs.mysql.com/bug.php?id=50407)

* Replication: CREATE EVENT statements were padded with

“garbage” characters when written to the binary log, which

caused a syntax error when trying to read back from the log.

(Bug#50095: http://bugs.mysql.com/bug.php?id=50095)

* Replication: Column length information generated by InnoDB did

not match that generated by MyISAM, which caused invalid

metadata to be written to the binary log when trying to

replicate BIT columns.

(Bug#49618: http://bugs.mysql.com/bug.php?id=49618)

* Replication: The value of Slave_IO_running in the output of

SHOW SLAVE STATUS did not distinguish between all 3 possible

states of the slave I/O thread (not running; running but not

connected; connected). Now the value Connecting (rather than

No) is shown when the slave I/O thread is running but the

slave is not connected to a replication master.

The server system variable Slave_running also reflects this

change, and is now consistent with what is shown for

Slave_IO_running.

(Bug#30703: http://bugs.mysql.com/bug.php?id=30703,

Bug#41613: http://bugs.mysql.com/bug.php?id=41613,

Bug#51089: http://bugs.mysql.com/bug.php?id=51089)

* EXPLAIN EXTENDED crashed trying to resolve references to freed

temporary table columns for GROUP_CONCAT() ORDER BY arguments.

(Bug#52397: http://bugs.mysql.com/bug.php?id=52397)

* For InnoDB Plugin, bit fields were causing problems with

concurrency on SMP systems because of word-packing issues.

(Bug#52360: http://bugs.mysql.com/bug.php?id=52360)

* The optimizer could attempt to evaluate the WHERE clause

before any rows had been read, resulting in a server crash.

(Bug#52177: http://bugs.mysql.com/bug.php?id=52177)

* For LDML-defined collations, some data structures were not

initialized properly to enable UPPER() and LOWER() to work

correctly. (Bug#51976: http://bugs.mysql.com/bug.php?id=51976)

* On Windows, LOAD_FILE() could cause a crash for some

pathnames. (Bug#51893: http://bugs.mysql.com/bug.php?id=51893)

* Invalid memory reads occurred for HANDLER … READ NEXT after

a failed HANDLER … READ FIRST.

(Bug#51877: http://bugs.mysql.com/bug.php?id=51877)

* After TRUNCATE TABLE of a MyISAM table, subsequent queries

could crash the server if myisam_use_mmap was enabled.

(Bug#51868: http://bugs.mysql.com/bug.php?id=51868)

* If myisam_sort_buffer_size was set to a small value, table

repair for MyISAM tables with FULLTEXT indexes could crash the

server. (Bug#51866: http://bugs.mysql.com/bug.php?id=51866)

* In LOAD DATA INFILE, using a SET clause to set a column equal

to itself caused a server crash.

(Bug#51850: http://bugs.mysql.com/bug.php?id=51850)

* A problem with equality propagation optimization for prepared

statements and stored procedures caused a server crash upon

re-execution of the prepared statement or stored procedure.

(Bug#51650: http://bugs.mysql.com/bug.php?id=51650)

See also Bug#8115: http://bugs.mysql.com/bug.php?id=8115,

Bug#8849: http://bugs.mysql.com/bug.php?id=8849.

* The optimizer performed an incorrect join type when COALESCE()

appeared within an IN() operation.

(Bug#51598: http://bugs.mysql.com/bug.php?id=51598)

* The server crashed when the optimizer attempted to determine

constant tables but a table storage engine did not support

exact record count.

(Bug#51494: http://bugs.mysql.com/bug.php?id=51494)

* The server could crash populating the

INFORMATION_SCHEMA.PROCESSLIST table due to lack of mutex

protection.

(Bug#51377: http://bugs.mysql.com/bug.php?id=51377)

* Use of HANDLER statements with tables that had spatial indexes

caused a server crash.

(Bug#51357: http://bugs.mysql.com/bug.php?id=51357)

* With an XA transaction active, SET autocommit = 1 could cause

side effects such as memory corruption or a server crash.

(Bug#51342: http://bugs.mysql.com/bug.php?id=51342)

* Following a bulk insert into a MyISAM table, if MyISAM failed

to build indexes using repair by sort, data file corruption

could occur.

(Bug#51307: http://bugs.mysql.com/bug.php?id=51307)

* CHECKSUM TABLE could compute the checksum for BIT columns

incorrectly.

(Bug#51304: http://bugs.mysql.com/bug.php?id=51304)

* A HAVING clause on a joined table in some cases failed to

eliminate rows which should have been excluded from the result

set. (Bug#51242: http://bugs.mysql.com/bug.php?id=51242)

* The type inference used for view columns caused some columns

in views to be handled as the wrong type, as compared to the

same columns in base tables. DATE columns in base tables were

treated as TIME columns in views, and base table TIME columns

as view DATETIME columns.

(Bug#50918: http://bugs.mysql.com/bug.php?id=50918)

* The YEAR values 2000 and 0000 could be treated as equal.

(Bug#49910: http://bugs.mysql.com/bug.php?id=49910)

* Performing a single in-place ALTER TABLE containing ADD INDEX

and DROP INDEX options that used the same index name could

result in a corrupt table definition file. Now such ALTER

TABLE statements are no longer performed in place.

(Bug#49838: http://bugs.mysql.com/bug.php?id=49838)

* mysql_upgrade did not detect when CSV log tables incorrectly

contained columns that could be NULL. Now these columns are

altered to be NOT NULL.

(Bug#49823: http://bugs.mysql.com/bug.php?id=49823)

* If a stored function contained a RETURN statement with an ENUM

value in the ucs2 character set, SHOW CREATE FUNCTION and

SELECT DTD_IDENTIFIER FROM INFORMATION_SCHEMA.ROUTINES

returned incorrect values.

(Bug#48766: http://bugs.mysql.com/bug.php?id=48766)

* The server crashed when it could not determine the best

execution plan for queries involving outer joins with

nondeterministic ON clauses such as the ones containing the

RAND() function, a user-defined function, or a NOT

DETERMINISTIC stored function.

(Bug#48483: http://bugs.mysql.com/bug.php?id=48483)

* A query that read from a derived table (of the form SELECT …

FROM (SELECT …)) produced incorrect results when the

following conditions were present:

+ The table subquery contained a derived query ((SELECT …

) AS column).

+ The derived query could potentially produce zero rows or

a single NULL (that is, no rows matched, or the query

used an aggregate function such as SUM() running over

zero rows).

+ The table subquery joined at least two tables.

+ The join condition involved an index.

(Bug#47904: http://bugs.mysql.com/bug.php?id=47904)

* The optimization to read MIN() or MAX() values from an index

did not properly handle comparisons with NULL values. This

could produce incorrect results for MIN() or MAX()when the

WHERE clause tested a NOT NULL column for NULL.

(Bug#47762: http://bugs.mysql.com/bug.php?id=47762)

* Killing a query during the optimization phase of a subquery

could cause a server crash.

(Bug#47761: http://bugs.mysql.com/bug.php?id=47761)

* The query shown by EXPLAIN EXTENDED plus SHOW WARNINGS could

produce results different from the original query.

(Bug#47669: http://bugs.mysql.com/bug.php?id=47669)

* Renaming a column of an InnoDB table caused the server to go

out of sync with the InnoDB data dictionary.

(Bug#47621: http://bugs.mysql.com/bug.php?id=47621)

* MyISAM could write uninitialized data to new index pages. Now

zeros are written to unused bytes in the pages.

(Bug#47598: http://bugs.mysql.com/bug.php?id=47598)

* Setting myisam_repair_threads larger than 1 could result in

the cardinality for all indexes of a MyISAM table being set to

1 after parallel index repair.

(Bug#47444: http://bugs.mysql.com/bug.php?id=47444)

* In debug builds, if the listed columns in the view definition

of the table used in an INSERT … SELECT statement

mismatched, an assertion was raised in the query cache

invalidation code following the failing statement.

(Bug#46615: http://bugs.mysql.com/bug.php?id=46615)

* For a query that selected from a view and used an alias for

the view, the metadata used the alias name rather than the

view name in the MYSQL_FIELD.table member.

(Bug#41788: http://bugs.mysql.com/bug.php?id=41788)

* mysql_upgrade did not create temporary files properly.

(Bug#41057: http://bugs.mysql.com/bug.php?id=41057)

* It was possible for DROP TABLE of one MyISAM table to remove

the data and index files of a different MyISAM table.

(Bug#40980: http://bugs.mysql.com/bug.php?id=40980)

* If the arguments to a CONCAT() call included a local routine

variable, selecting the return value into a user variable

could produce an incorrect result.

(Bug#40625: http://bugs.mysql.com/bug.php?id=40625)

* SHOW CREATE VIEW returned invalid SQL if the definition

contained a SELECT ‘string’ statement where the string was

longer than the maximum length of a column name, due to the

fact that this text was also used as an alias (in the AS

clause).

Because not all names retrieved from arbitrary SELECT

statements can be used as view column names due to length and

format restrictions, the server now checks the conformity of

automatically generated column names and rewrites according to

a predefined format any names that are not acceptable as view

column names before storing the final view definition on disk.

In such cases, the name is now rewritten as Name_exp_pos,

where pos is the position of the column. To avoid this

conversion scheme, define explicit, valid names for view

columns using the column_list clause of the CREATE VIEW

statement.

As part of this fix, aliases are now generated only for

top-level statements.

(Bug#40277: http://bugs.mysql.com/bug.php?id=40277)

* While looking for the shortest index for a covering index

scan, the optimizer ignored that a clustered primary key read

the entire table.

(Bug#39653: http://bugs.mysql.com/bug.php?id=39653)

* mysqlbinlog had a memory leak in its option-processing code.

(Bug#38468: http://bugs.mysql.com/bug.php?id=38468)

* The test for readline during configuration failed when trying

to build MySQL in a directory other than the source tree root.

(Bug#35250: http://bugs.mysql.com/bug.php?id=35250)

Tagged with: [ ]
You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.