From: Mattias Jonsson Date: September 30 2010 2:05pm Subject: bzr commit into mysql-5.5-bugteam branch (mattias.jonsson:3211) Bug#55458 Bug#57113 List-Archive: http://lists.mysql.com/commits/119553 X-Bug: 55458,57113 Message-Id: <201009301406.o8UCXBG9008703@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4514821051909809814==" --===============4514821051909809814== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/mattiasj/mysql-bzr/test-5.5-bugteam/ based on revid:georgi.kodinov@stripped 3211 Mattias Jonsson 2010-09-30 [merge] Manual merge of post push fix for bug#55458 (bug#57113) into mysql-5.5-bugteam modified: mysql-test/r/partition.result mysql-test/t/partition.test sql/ha_partition.cc === modified file 'mysql-test/r/partition.result' --- a/mysql-test/r/partition.result 2010-09-13 13:56:56 +0000 +++ b/mysql-test/r/partition.result 2010-09-30 14:03:32 +0000 @@ -1,5 +1,20 @@ drop table if exists t1, t2; # +# Bug#57113: ha_partition::extra(ha_extra_function): +# Assertion `m_extra_cache' failed +CREATE TABLE t1 +(id INT NOT NULL PRIMARY KEY, +name VARCHAR(16) NOT NULL, +year YEAR, +INDEX name (name(8)) +) +PARTITION BY HASH(id) PARTITIONS 2; +INSERT INTO t1 VALUES ( 1, 'FooBar', '1924' ); +CREATE TABLE t2 (id INT); +INSERT INTO t2 VALUES (1),(2); +UPDATE t1, t2 SET t1.year = '1955' WHERE t1.name = 'FooBar'; +DROP TABLE t1, t2; +# # Bug#55458: Partitioned MyISAM table gets crashed by multi-table update # CREATE TABLE t1 ( === modified file 'mysql-test/t/partition.test' --- a/mysql-test/t/partition.test 2010-09-13 13:56:56 +0000 +++ b/mysql-test/t/partition.test 2010-09-30 14:03:32 +0000 @@ -15,6 +15,28 @@ drop table if exists t1, t2; --enable_warnings --echo # +--echo # Bug#57113: ha_partition::extra(ha_extra_function): +--echo # Assertion `m_extra_cache' failed +CREATE TABLE t1 +(id INT NOT NULL PRIMARY KEY, + name VARCHAR(16) NOT NULL, + year YEAR, + INDEX name (name(8)) +) +PARTITION BY HASH(id) PARTITIONS 2; + +INSERT INTO t1 VALUES ( 1, 'FooBar', '1924' ); + +CREATE TABLE t2 (id INT); + +INSERT INTO t2 VALUES (1),(2); + +UPDATE t1, t2 SET t1.year = '1955' WHERE t1.name = 'FooBar'; + +DROP TABLE t1, t2; + + +--echo # --echo # Bug#55458: Partitioned MyISAM table gets crashed by multi-table update --echo # CREATE TABLE t1 ( === modified file 'sql/ha_partition.cc' --- a/sql/ha_partition.cc 2010-09-13 13:56:56 +0000 +++ b/sql/ha_partition.cc 2010-09-30 14:03:32 +0000 @@ -5698,7 +5698,6 @@ int ha_partition::extra(enum ha_extra_fu DBUG_RETURN(prepare_for_rename()); break; case HA_EXTRA_PREPARE_FOR_UPDATE: - DBUG_ASSERT(m_extra_cache); /* Needs to be run on the first partition in the range now, and later in late_extra_cache, when switching to a new partition to scan. @@ -5706,6 +5705,8 @@ int ha_partition::extra(enum ha_extra_fu m_extra_prepare_for_update= TRUE; if (m_part_spec.start_part != NO_CURRENT_PART_ID) { + if (!m_extra_cache) + m_extra_cache_part_id= m_part_spec.start_part; DBUG_ASSERT(m_extra_cache_part_id == m_part_spec.start_part); (void) m_file[m_part_spec.start_part]->extra(HA_EXTRA_PREPARE_FOR_UPDATE); } @@ -5977,19 +5978,22 @@ void ha_partition::late_extra_cache(uint { handler *file; DBUG_ENTER("ha_partition::late_extra_cache"); - DBUG_PRINT("info", ("extra_cache %u partid %u size %u", m_extra_cache, + DBUG_PRINT("info", ("extra_cache %u prepare %u partid %u size %u", + m_extra_cache, m_extra_prepare_for_update, partition_id, m_extra_cache_size)); if (!m_extra_cache && !m_extra_prepare_for_update) DBUG_VOID_RETURN; file= m_file[partition_id]; - if (m_extra_cache_size == 0) - (void) file->extra(HA_EXTRA_CACHE); - else - (void) file->extra_opt(HA_EXTRA_CACHE, m_extra_cache_size); + if (m_extra_cache) + { + if (m_extra_cache_size == 0) + (void) file->extra(HA_EXTRA_CACHE); + else + (void) file->extra_opt(HA_EXTRA_CACHE, m_extra_cache_size); + } if (m_extra_prepare_for_update) { - DBUG_ASSERT(m_extra_cache); (void) file->extra(HA_EXTRA_PREPARE_FOR_UPDATE); } m_extra_cache_part_id= partition_id; --===============4514821051909809814== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/mattias.jonsson@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: mattias.jonsson@stripped\ # hlghjdafj5f5vmpp # target_branch: file:///Users/mattiasj/mysql-bzr/test-5.5-bugteam/ # testament_sha1: e4d65d924f9ab7a2580620c21b9eb2edc033e383 # timestamp: 2010-09-30 16:05:40 +0200 # source_branch: file:///Users/mattiasj/mysql-bzr/b55458-51-bt/ # base_revision_id: georgi.kodinov@stripped\ # mweq8vd6xd65hivi # # Begin bundle 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 hkbyMNAjGANdKS2Ukx/xdyRThQkBCA0O8A== --===============4514821051909809814==--