mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
bfed2c7d57
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.
16 lines
500 B
Text
16 lines
500 B
Text
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 HY000: Got error 1 "Operation not permitted" from storage engine partition
|
|
t1.frm
|
|
t1.par
|