From: Mattias Jonsson Date: January 24 2011 12:41pm Subject: bzr commit into mysql-5.1 branch (mattias.jonsson:3565) Bug#59297 List-Archive: http://lists.mysql.com/commits/129439 X-Bug: 59297 Message-Id: <201101241243.p0O5EXu7013494@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0914652689==" --===============0914652689== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///C:/mysql-bzr/b59297-51/ based on revid:anders.song@stripped 3565 Mattias Jonsson 2011-01-24 Bug#59297: Can't find record in 'tablename' on update inner join Regression introduced in bug#52455. Problem was that the fixed function did not set the last used partition variable, resulting in wrong partition used when storing the position of the newly retrieved row. Fixed by setting the last used partition in ha_partition::index_read_idx_map. 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-12-22 09:50:36 +0000 +++ b/mysql-test/r/partition.result 2011-01-24 12:41:44 +0000 @@ -1,5 +1,43 @@ drop table if exists t1, t2; # +# Bug#59297: Can't find record in 'tablename' on update inner join +# +CREATE TABLE t1 ( +a char(2) NOT NULL, +b char(2) NOT NULL, +c int(10) unsigned NOT NULL, +d varchar(255) DEFAULT NULL, +e varchar(1000) DEFAULT NULL, +PRIMARY KEY (a, b, c), +KEY (a), +KEY (a, b) +) +/*!50100 PARTITION BY KEY (a) +PARTITIONS 20 */; +INSERT INTO t1 (a, b, c, d, e) VALUES +('07', '03', 343, '1', '07_03_343'), +('01', '04', 343, '2', '01_04_343'), +('01', '06', 343, '3', '01_06_343'), +('01', '07', 343, '4', '01_07_343'), +('01', '08', 343, '5', '01_08_343'), +('01', '09', 343, '6', '01_09_343'), +('03', '03', 343, '7', '03_03_343'), +('03', '06', 343, '8', '03_06_343'), +('03', '07', 343, '9', '03_07_343'), +('04', '03', 343, '10', '04_03_343'), +('04', '06', 343, '11', '04_06_343'), +('05', '03', 343, '12', '05_03_343'), +('11', '03', 343, '13', '11_03_343'), +('11', '04', 343, '14', '11_04_343') +; +UPDATE t1 AS A, +(SELECT '03' AS a, '06' AS b, 343 AS c, 'last' AS d) AS B +SET A.e = B.d +WHERE A.a = '03' +AND A.b = '06' +AND A.c = 343; +DROP TABLE t1; +# # Bug#57113: ha_partition::extra(ha_extra_function): # Assertion `m_extra_cache' failed CREATE TABLE t1 === modified file 'mysql-test/t/partition.test' --- a/mysql-test/t/partition.test 2010-12-22 09:50:36 +0000 +++ b/mysql-test/t/partition.test 2011-01-24 12:41:44 +0000 @@ -15,6 +15,49 @@ drop table if exists t1, t2; --enable_warnings --echo # +--echo # Bug#59297: Can't find record in 'tablename' on update inner join +--echo # + +CREATE TABLE t1 ( +a char(2) NOT NULL, +b char(2) NOT NULL, +c int(10) unsigned NOT NULL, +d varchar(255) DEFAULT NULL, +e varchar(1000) DEFAULT NULL, +PRIMARY KEY (a, b, c), +KEY (a), +KEY (a, b) +) +/*!50100 PARTITION BY KEY (a) +PARTITIONS 20 */; + +INSERT INTO t1 (a, b, c, d, e) VALUES +('07', '03', 343, '1', '07_03_343'), +('01', '04', 343, '2', '01_04_343'), +('01', '06', 343, '3', '01_06_343'), +('01', '07', 343, '4', '01_07_343'), +('01', '08', 343, '5', '01_08_343'), +('01', '09', 343, '6', '01_09_343'), +('03', '03', 343, '7', '03_03_343'), +('03', '06', 343, '8', '03_06_343'), +('03', '07', 343, '9', '03_07_343'), +('04', '03', 343, '10', '04_03_343'), +('04', '06', 343, '11', '04_06_343'), +('05', '03', 343, '12', '05_03_343'), +('11', '03', 343, '13', '11_03_343'), +('11', '04', 343, '14', '11_04_343') +; + +UPDATE t1 AS A, +(SELECT '03' AS a, '06' AS b, 343 AS c, 'last' AS d) AS B +SET A.e = B.d +WHERE A.a = '03' +AND A.b = '06' +AND A.c = 343; + +DROP TABLE t1; + +--echo # --echo # Bug#57113: ha_partition::extra(ha_extra_function): --echo # Assertion `m_extra_cache' failed CREATE TABLE t1 === modified file 'sql/ha_partition.cc' --- a/sql/ha_partition.cc 2010-12-16 14:40:52 +0000 +++ b/sql/ha_partition.cc 2011-01-24 12:41:44 +0000 @@ -4317,6 +4317,7 @@ int ha_partition::index_read_idx_map(uch break; } } + m_last_part= part; } else { --===============0914652689== 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\ # 6jme0uptm3gdo992 # target_branch: file:///C:/mysql-bzr/b59297-51/ # testament_sha1: 38951f55434c76e77569be4aab537b77e094c618 # timestamp: 2011-01-24 13:41:55 +0100 # base_revision_id: anders.song@stripped\ # 2i1k6vlf6gs0qdpy # # Begin bundle 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 2F5WqzyN4xcapFwZrNHT/4u5IpwoSCbqP5IA --===============0914652689==--