2010-07-08 14:36:55 +02:00
|
|
|
--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;
|
2010-08-20 21:17:51 +02:00
|
|
|
--replace_result $MYSQLD_DATADIR ./
|
MDEV-27753 Incorrect ENGINE type of table after crash for CONNECT table
whenever possible, partitioning should use the full
partition plugin name, not the one byte legacy code.
Normally, ha_partition can get the engine plugin from
table_share->default_part_plugin.
But in some cases, e.g. in DROP TABLE, the table isn't
opened, table_share is NULL, and ha_partition has to parse
the frm, much like dd_frm_type() does.
temporary_tables.cc, sql_table.cc:
When dropping a table, it must be deleted in the engine
first, then frm file. Because frm can be the only true
source of metadata that the engine might need for DROP.
table.cc:
when opening a partitioned table, if the engine for
partitions is not found, do not fallback to MyISAM.
2022-03-11 20:18:22 +01:00
|
|
|
--error ER_NOT_FORM_FILE
|
2010-07-08 14:36:55 +02:00
|
|
|
SHOW CREATE TABLE t1;
|
2015-11-18 17:42:39 +02:00
|
|
|
|
|
|
|
# The replace is needed for Solaris
|
|
|
|
--replace_result "Not owner" "Operation not permitted"
|
2015-06-16 17:27:53 +02:00
|
|
|
--error ER_GET_ERRNO
|
2010-07-08 14:36:55 +02:00
|
|
|
DROP TABLE t1;
|
|
|
|
--list_files $MYSQLD_DATADIR/test t1*
|
|
|
|
--remove_file $MYSQLD_DATADIR/test/t1.frm
|
|
|
|
--remove_file $MYSQLD_DATADIR/test/t1.par
|