Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-11412

Ensure that table is truly dropped when using DROP TABLE

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Fixed
    • Fix Version/s: 10.5.4
    • Component/s: Server
    • Labels:
      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

            Activity

              People

              Assignee:
              monty Michael Widenius
              Reporter:
              svoj Sergey Vojtovich
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: