From: Mattias Jonsson Date: October 5 2010 12:11pm Subject: bzr commit into mysql-trunk-bugfixing branch (mattias.jonsson:3286) Bug#56484 List-Archive: http://lists.mysql.com/commits/119986 X-Bug: 56484 Message-Id: <201010051213.o94IWmpD013300@rcsinet13.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8306163560878756091==" --===============8306163560878756091== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/mattiasj/mysql-bzr/b56484-trunk-bf/ based on revid:mattias.jonsson@stripped 3286 Mattias Jonsson 2010-10-05 Bug#56484: !table || (!table->read_set || bitmap_is_set(table->read_set, field_index)) In debug build an ASSERT crashed the server because of use of columns which was not marked as used. Solution was to mark the columns as used. @ mysql-test/r/partition_exchange.result updated result @ mysql-test/t/partition_exchange.test Added test @ sql/sql_partition_admin.cc Marking all columns as used. modified: mysql-test/r/partition_exchange.result mysql-test/t/partition_exchange.test sql/sql_partition_admin.cc === modified file 'mysql-test/r/partition_exchange.result' --- a/mysql-test/r/partition_exchange.result 2010-08-25 14:00:02 +0000 +++ b/mysql-test/r/partition_exchange.result 2010-10-05 12:11:47 +0000 @@ -1,10 +1,24 @@ DROP TABLE IF EXISTS t1, t2, t3, t, tp, tsp, tmp; -CREATE TABLE t1 (s1 INT PRIMARY KEY) engine=innodb; -CREATE TABLE t2 (s1 INT, FOREIGN KEY (s1) REFERENCES t1 (s1)) engine=innodb; +# +# Bug#56484: !table || (!table->read_set || +# bitmap_is_set(table->read_set, field_index)) +# +CREATE TABLE t1 (a INT NOT NULL,b TIME NOT NULL DEFAULT '00:00:00') +ENGINE=MyISAM +PARTITION BY HASH (a) PARTITIONS 2; +CREATE TABLE t2 (a INT) ENGINE=MYISAM; +ALTER TABLE t1 EXCHANGE PARTITION p1 WITH TABLE t2; +ERROR HY000: Tables have different definitions +DROP TABLE t1, t2; +# +# Bug#55784: Foreign key integrity broken by alter table +# +CREATE TABLE t1 (s1 INT PRIMARY KEY) ENGINE=InnoDB; +CREATE TABLE t2 (s1 INT, FOREIGN KEY (s1) REFERENCES t1 (s1)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t2 VALUES (1),(2),(3); CREATE TABLE t3 (s1 INT PRIMARY KEY) -engine=innodb +ENGINE=InnoDB PARTITION BY LIST (s1) (PARTITION p1 VALUES IN (1,2,3)); ALTER TABLE t3 EXCHANGE PARTITION p1 WITH TABLE t1; === modified file 'mysql-test/t/partition_exchange.test' --- a/mysql-test/t/partition_exchange.test 2010-08-25 14:00:02 +0000 +++ b/mysql-test/t/partition_exchange.test 2010-10-05 12:11:47 +0000 @@ -5,16 +5,32 @@ DROP TABLE IF EXISTS t1, t2, t3, t, tp, tsp, tmp; --enable_warnings -CREATE TABLE t1 (s1 INT PRIMARY KEY) engine=innodb; +--echo # +--echo # Bug#56484: !table || (!table->read_set || +--echo # bitmap_is_set(table->read_set, field_index)) +--echo # +CREATE TABLE t1 (a INT NOT NULL,b TIME NOT NULL DEFAULT '00:00:00') +ENGINE=MyISAM +PARTITION BY HASH (a) PARTITIONS 2; -CREATE TABLE t2 (s1 INT, FOREIGN KEY (s1) REFERENCES t1 (s1)) engine=innodb; +CREATE TABLE t2 (a INT) ENGINE=MYISAM; +--error ER_TABLES_DIFFERENT_METADATA +ALTER TABLE t1 EXCHANGE PARTITION p1 WITH TABLE t2; +DROP TABLE t1, t2; + +--echo # +--echo # Bug#55784: Foreign key integrity broken by alter table +--echo # +CREATE TABLE t1 (s1 INT PRIMARY KEY) ENGINE=InnoDB; + +CREATE TABLE t2 (s1 INT, FOREIGN KEY (s1) REFERENCES t1 (s1)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t2 VALUES (1),(2),(3); CREATE TABLE t3 (s1 INT PRIMARY KEY) - engine=innodb + ENGINE=InnoDB PARTITION BY LIST (s1) (PARTITION p1 VALUES IN (1,2,3)); === modified file 'sql/sql_partition_admin.cc' --- a/sql/sql_partition_admin.cc 2010-08-25 14:00:02 +0000 +++ b/sql/sql_partition_admin.cc 2010-10-05 12:11:47 +0000 @@ -187,6 +187,9 @@ static bool compare_table_with_partition update_create_info_from_table(&table_create_info, table); /* get the current auto_increment value */ table->file->update_create_info(&table_create_info); + /* mark all columns used, since they are used when preparing the new table */ + part_table->use_all_columns(); + table->use_all_columns(); if (mysql_prepare_alter_table(thd, part_table, &part_create_info, &part_alter_info)) { --===============8306163560878756091== 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\ # 6z6rjumtujg2n5h3 # target_branch: file:///Users/mattiasj/mysql-bzr/b56484-trunk-bf/ # testament_sha1: 01eb3f9ae1b228771bf3208cac1fed9ebac231f8 # timestamp: 2010-10-05 14:11:56 +0200 # base_revision_id: mattias.jonsson@stripped\ # 8des9p1p4xa4zf2p # # Begin bundle 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 --===============8306163560878756091==--