From: Mattias Jonsson Date: October 1 2010 1:42pm Subject: bzr commit into mysql-5.1-bugteam branch (mattias.jonsson:3521) List-Archive: http://lists.mysql.com/commits/119687 Message-Id: <201010011344.o91C0J8s024324@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4521913285399078014==" --===============4521913285399078014== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/mattiasj/mysql-bzr/topush-51-bugteam/ based on revid:mattias.jonsson@stripped 3521 Mattias Jonsson 2010-10-01 [merge] merge 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-10 09:52:35 +0000 +++ b/mysql-test/r/partition.result 2010-10-01 13:41:27 +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-08-10 08:43:12 +0000 +++ b/mysql-test/t/partition.test 2010-09-30 13:57:33 +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-10-01 11:39:49 +0000 +++ b/sql/ha_partition.cc 2010-10-01 13:41:27 +0000 @@ -5572,7 +5572,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. @@ -5580,6 +5579,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)); } @@ -5842,19 +5843,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; --===============4521913285399078014== 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\ # fc2p84mbzeqno8jt # target_branch: file:///Users/mattiasj/mysql-bzr/topush-51-bugteam/ # testament_sha1: aa0572d555a47586bfafd9f674433335d848ec5a # timestamp: 2010-10-01 15:43:54 +0200 # source_branch: file:///Users/mattiasj/mysql-bzr/b49161-51-bugteam/ # base_revision_id: mattias.jonsson@stripped\ # efecregidigm4bz5 # # Begin bundle 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 --===============4521913285399078014==--