Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
Description
This task is based on a patch/idea from Ali-SQL: "[Feature] Issue#34 Support force drop table" and a patch from Tencent related to the same problem.
--------
|
Usually the meta data is not consistent between server layer and InnoDB layer.
|
So we supply a new syntax to clear the meta data.
|
 |
Usage:
|
------
|
1. DROP TABLE FORCE t1;
|
2. ALTER TABLE t1 DROP PARTITION force p2;
|
https://github.com/alibaba/AliSQL/commit/fc7e697b8b34a7751da8c8dca54ba152601d9ee5
In the end we decided to support the idea of FORCE but without the FORCE keyword:
- If a .frm table doesn't exists, try dropping the table from all storage engines.
- If the .frm table exists but the table does not exist in the engine try dropping the table from all storage engines.
- Update storage engines using many table files (.CSV, MyISAM, Aria) to succeed with the drop even if some of the files are missing.
- Add HTON_AUTOMATIC_DELETE_TABLE to handlerton's where delete_table() is not needed and always succeed. This is used by ha_delete_table_force() to know which handlers to ignore when trying to drop a table without a .frm file.
The disadvantage of this solution is that a DROP TABLE on a non existing table will be a bit slower as we have to ask all active storage engines if they know anything about the table.
Things left to do in another MDEV:
- Handle dropping of partitioned tables without .par file or .frm
- Verify that one can drop partitions with a DROP TABLE #mysql50#...
Attachments
Issue Links
- blocks
-
MDEV-23570 deprecate keep_files_on_create
- Closed
- causes
-
MDEV-23549 CREATE fails after DROP without FRM
- Closed
-
MDEV-30170 no error for DROP TABLE and no warning for DROP TABLE IF EXISTS with absent table when Spider plugin is included
- Closed
-
MDEV-34205 ASAN stack-buffer-overflow in strxnmov | frm_file_exists
- Closed
- relates to
-
MCOL-4164 Multi-table DROP
- Closed
-
MDEV-25373 DROP TABLE doesn't raise error while dropping non-existing table in MariaDB 10.5.9 when OQGraph SE is loaded to the server
- Closed
-
MDEV-26966 The parameter innodb_force_load_corrupted makes no sense
- Closed
-
MDEV-15185 PARTITION files removed, but not from INFORMATION_SCHEMA.INNODB_SYS_TABLES
- Closed
-
MDEV-16417 Store Foreign Key metadata outside of InnoDB
- In Review
-
MDEV-23000 Ensure we get a warning from THD::drop_temporary_table() in case of disk errors
- Closed
-
MDEV-23185 CREATE OR REPLACE TABLE is less robust than DROP TABLE + CREATE TABLE
- Open