From: Mattias Jonsson Date: April 29 2011 11:00am Subject: bzr commit into mysql-5.1 branch (mattias.jonsson:3677) Bug#58655 Bug#11765667 List-Archive: http://lists.mysql.com/commits/136391 X-Bug: 58655,11765667 Message-Id: <201104291100.p3TB0NR9028852@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1621473414==" --===============1621473414== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///C:/ade/mysql-bzr/b11765667-51/ based on revid:mattias.jonsson@stripped 3677 Mattias Jonsson 2011-04-29 bug#11765667: bug#58655: ASSERTION FAILED, SERVER CRASHES WITH MYSQLD GOT SIGNAL 6 The partitioning engine checked the auto_increment column even if it was not to be written, triggering a DBUG_ASSERT. Fixed by checking if table->write_set for that column was set. 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 2011-03-09 17:12:23 +0000 +++ b/mysql-test/r/partition.result 2011-04-29 11:00:16 +0000 @@ -1,5 +1,34 @@ drop table if exists t1, t2; # +# Bug#11765667: bug#58655: ASSERTION FAILED, +# SERVER CRASHES WITH MYSQLD GOT SIGNAL 6 +# +CREATE TABLE t1 ( +id MEDIUMINT NOT NULL AUTO_INCREMENT, +dt DATE, st VARCHAR(255), uid INT, +id2nd LONGBLOB, filler VARCHAR(255), PRIMARY KEY(id, dt) +); +INSERT INTO t1 (dt, st, uid, id2nd, filler) VALUES +('1991-03-14', 'Initial Insert', 200, 1234567, 'No Data'), +('1991-02-26', 'Initial Insert', 201, 1234567, 'No Data'), +('1992-03-16', 'Initial Insert', 234, 1234567, 'No Data'), +('1992-07-02', 'Initial Insert', 287, 1234567, 'No Data'), +('1991-05-26', 'Initial Insert', 256, 1234567, 'No Data'), +('1991-04-25', 'Initial Insert', 222, 1234567, 'No Data'), +('1993-03-12', 'Initial Insert', 267, 1234567, 'No Data'), +('1993-03-14', 'Initial Insert', 291, 1234567, 'No Data'), +('1991-12-20', 'Initial Insert', 298, 1234567, 'No Data'), +('1994-10-31', 'Initial Insert', 220, 1234567, 'No Data'); +ALTER TABLE t1 PARTITION BY LIST (YEAR(dt)) ( +PARTITION d1 VALUES IN (1991, 1994), +PARTITION d2 VALUES IN (1993), +PARTITION d3 VALUES IN (1992, 1995, 1996) +); +INSERT INTO t1 (dt, st, uid, id2nd, filler) VALUES +('1991-07-14', 'After Partitioning Insert', 299, 1234567, 'Insert row'); +UPDATE t1 SET filler='Updating the row' WHERE uid=298; +DROP TABLE t1; +# # Bug#59297: Can't find record in 'tablename' on update inner join # CREATE TABLE t1 ( === modified file 'mysql-test/t/partition.test' --- a/mysql-test/t/partition.test 2011-03-09 17:12:23 +0000 +++ b/mysql-test/t/partition.test 2011-04-29 11:00:16 +0000 @@ -15,6 +15,37 @@ drop table if exists t1, t2; --enable_warnings --echo # +--echo # Bug#11765667: bug#58655: ASSERTION FAILED, +--echo # SERVER CRASHES WITH MYSQLD GOT SIGNAL 6 +--echo # +CREATE TABLE t1 ( + id MEDIUMINT NOT NULL AUTO_INCREMENT, + dt DATE, st VARCHAR(255), uid INT, + id2nd LONGBLOB, filler VARCHAR(255), PRIMARY KEY(id, dt) +); +INSERT INTO t1 (dt, st, uid, id2nd, filler) VALUES + ('1991-03-14', 'Initial Insert', 200, 1234567, 'No Data'), + ('1991-02-26', 'Initial Insert', 201, 1234567, 'No Data'), + ('1992-03-16', 'Initial Insert', 234, 1234567, 'No Data'), + ('1992-07-02', 'Initial Insert', 287, 1234567, 'No Data'), + ('1991-05-26', 'Initial Insert', 256, 1234567, 'No Data'), + ('1991-04-25', 'Initial Insert', 222, 1234567, 'No Data'), + ('1993-03-12', 'Initial Insert', 267, 1234567, 'No Data'), + ('1993-03-14', 'Initial Insert', 291, 1234567, 'No Data'), + ('1991-12-20', 'Initial Insert', 298, 1234567, 'No Data'), + ('1994-10-31', 'Initial Insert', 220, 1234567, 'No Data'); +ALTER TABLE t1 PARTITION BY LIST (YEAR(dt)) ( + PARTITION d1 VALUES IN (1991, 1994), + PARTITION d2 VALUES IN (1993), + PARTITION d3 VALUES IN (1992, 1995, 1996) +); +INSERT INTO t1 (dt, st, uid, id2nd, filler) VALUES + ('1991-07-14', 'After Partitioning Insert', 299, 1234567, 'Insert row'); +UPDATE t1 SET filler='Updating the row' WHERE uid=298; + +DROP TABLE t1; + +--echo # --echo # Bug#59297: Can't find record in 'tablename' on update inner join --echo # === modified file 'sql/ha_partition.cc' --- a/sql/ha_partition.cc 2011-04-29 07:48:26 +0000 +++ b/sql/ha_partition.cc 2011-04-29 11:00:16 +0000 @@ -3403,15 +3403,19 @@ int ha_partition::update_row(const uchar exit: /* - if updating an auto_increment column, update + If updating an auto_increment column, update table_share->ha_data->next_auto_inc_val if needed. (not to be used if auto_increment on secondary field in a multi-column index) mysql_update does not set table->next_number_field, so we use table->found_next_number_field instead. + Also checking that the field is marked in the write set. */ - if (table->found_next_number_field && new_data == table->record[0] && - !table->s->next_number_keypart) + if (table->found_next_number_field && + new_data == table->record[0] && + !table->s->next_number_keypart && + bitmap_is_set(table->write_set, + table->found_next_number_field->field_index)) { HA_DATA_PARTITION *ha_data= (HA_DATA_PARTITION*) table_share->ha_data; if (!ha_data->auto_inc_initialized) @@ -3974,6 +3978,7 @@ void ha_partition::position(const uchar void ha_partition::column_bitmaps_signal() { handler::column_bitmaps_signal(); + /* Must read all partition fields to make position() call possible */ bitmap_union(table->read_set, &m_part_info->full_part_field_set); } --===============1621473414== 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\ # qh4vx2dvbcgiwdln # target_branch: file:///C:/ade/mysql-bzr/b11765667-51/ # testament_sha1: 5c42c60cb1e65a65995acb94fb33e0edac8359b3 # timestamp: 2011-04-29 13:00:23 +0200 # base_revision_id: mattias.jonsson@stripped\ # rteiadudow1gvzv3 # # Begin bundle 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 QwNQAdg= --===============1621473414==--