From: Mattias Jonsson Date: August 19 2010 7:21am Subject: bzr commit into mysql-5.1-bugteam branch (mattias.jonsson:3485) List-Archive: http://lists.mysql.com/commits/116175 Message-Id: <201008190724.o7J0TX6w009372@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6852921782491461239==" --===============6852921782491461239== 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:li-bing.song@stripped 3485 Mattias Jonsson 2010-08-19 [merge] merge added: mysql-test/include/not_blackhole.inc mysql-test/r/partition_not_blackhole.result mysql-test/std_data/parts/t1_blackhole.frm mysql-test/std_data/parts/t1_blackhole.par mysql-test/t/partition_not_blackhole-master.opt mysql-test/t/partition_not_blackhole.test modified: sql/ha_partition.cc === added file 'mysql-test/include/not_blackhole.inc' --- a/mysql-test/include/not_blackhole.inc 1970-01-01 00:00:00 +0000 +++ b/mysql-test/include/not_blackhole.inc 2010-07-08 12:36:55 +0000 @@ -0,0 +1,5 @@ +if (`SELECT count(*) FROM information_schema.engines WHERE + (support = 'YES' OR support = 'DEFAULT') AND + engine = 'blackhole'`){ + skip Blackhole engine enabled; +} === added file 'mysql-test/r/partition_not_blackhole.result' --- a/mysql-test/r/partition_not_blackhole.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/r/partition_not_blackhole.result 2010-07-08 12:36:55 +0000 @@ -0,0 +1,16 @@ +DROP TABLE IF EXISTS t1; +# +# Bug#46086: crash when dropping a partitioned table and +# the original engine is disabled +# Copy a .frm and .par file which was created with: +# create table `t1` (`id` int primary key) engine=blackhole +# partition by key () partitions 1; +SHOW TABLES; +Tables_in_test +t1 +SHOW CREATE TABLE t1; +ERROR HY000: Incorrect information in file: './test/t1.frm' +DROP TABLE t1; +ERROR 42S02: Unknown table 't1' +t1.frm +t1.par === added file 'mysql-test/std_data/parts/t1_blackhole.frm' Binary files a/mysql-test/std_data/parts/t1_blackhole.frm 1970-01-01 00:00:00 +0000 and b/mysql-test/std_data/parts/t1_blackhole.frm 2010-07-08 12:36:55 +0000 differ === added file 'mysql-test/std_data/parts/t1_blackhole.par' Binary files a/mysql-test/std_data/parts/t1_blackhole.par 1970-01-01 00:00:00 +0000 and b/mysql-test/std_data/parts/t1_blackhole.par 2010-07-08 12:36:55 +0000 differ === added file 'mysql-test/t/partition_not_blackhole-master.opt' --- a/mysql-test/t/partition_not_blackhole-master.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/t/partition_not_blackhole-master.opt 2010-07-08 12:36:55 +0000 @@ -0,0 +1 @@ +--loose-skip-blackhole === added file 'mysql-test/t/partition_not_blackhole.test' --- a/mysql-test/t/partition_not_blackhole.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/t/partition_not_blackhole.test 2010-07-08 12:36:55 +0000 @@ -0,0 +1,25 @@ +--source include/have_partition.inc +--source include/not_blackhole.inc + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +let $MYSQLD_DATADIR= `SELECT @@datadir`; + +--echo # +--echo # Bug#46086: crash when dropping a partitioned table and +--echo # the original engine is disabled +--echo # Copy a .frm and .par file which was created with: +--echo # create table `t1` (`id` int primary key) engine=blackhole +--echo # partition by key () partitions 1; +--copy_file std_data/parts/t1_blackhole.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/parts/t1_blackhole.par $MYSQLD_DATADIR/test/t1.par +SHOW TABLES; +--error ER_NOT_FORM_FILE +SHOW CREATE TABLE t1; +--error ER_BAD_TABLE_ERROR +DROP TABLE t1; +--list_files $MYSQLD_DATADIR/test t1* +--remove_file $MYSQLD_DATADIR/test/t1.frm +--remove_file $MYSQLD_DATADIR/test/t1.par === modified file 'sql/ha_partition.cc' --- a/sql/ha_partition.cc 2010-07-08 23:09:31 +0000 +++ b/sql/ha_partition.cc 2010-08-19 07:20:17 +0000 @@ -2403,9 +2403,14 @@ bool ha_partition::get_from_handler_file tot_partition_words= (m_tot_parts + 3) / 4; engine_array= (handlerton **) my_alloca(m_tot_parts * sizeof(handlerton*)); for (i= 0; i < m_tot_parts; i++) + { engine_array[i]= ha_resolve_by_legacy_type(ha_thd(), (enum legacy_db_type) - *(uchar *) ((file_buffer) + 12 + i)); + *(uchar *) ((file_buffer) + + 12 + i)); + if (!engine_array[i]) + goto err3; + } address_tot_name_len= file_buffer + 12 + 4 * tot_partition_words; tot_name_words= (uint4korr(address_tot_name_len) + 3) / 4; if (len_words != (tot_partition_words + tot_name_words + 4)) --===============6852921782491461239== 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\ # 61qqj353s1fx2d9u # target_branch: file:///Users/mattiasj/mysql-bzr/topush-51-bugteam/ # testament_sha1: 44f7e12faa5ea4adbd64f55c93b7a1a97e52faa0 # timestamp: 2010-08-19 09:22:26 +0200 # source_branch: file:///Users/mattiasj/mysql-bzr/b49161-51-bugteam/ # base_revision_id: li-bing.song@stripped\ # 7tvcxjc3xllkn100 # # Begin bundle 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 3T+vwf7f3/IgCOfPUaf8XckU4UJBlfBjsA== --===============6852921782491461239==--