Skip to content
  • Christopher Powers's avatar
    3034e786
    Bug#21105475 DROP TABLE DOESN'T DROP TABLE ENTRIES STARTING WITH # FROM P_S TABLE · 3034e786
    Christopher Powers authored
    The Performance Schema identifies temporary tables by assuming that all tables
    named with the "#sql" prefix are temporaryand can be ignored. However,
    non-temporary tables having the "#sql" prefix are incorrectly identified as
    temporary.
    
    To avoid this ambiguity, the Performance Schema will identify temporary tables
    using attributes other than the table name, depending on the state:
    
    1) table_share->tmp_table if the share is available and complete, e.g. get_table_share()
    2) CREATE: (ha_create_table) Create info flags or explicit boolean for truncated MyISAM temp tables
    3) DROP: The filename, guaranteed to have a #sql prefix. Table share not available.
    
    Regardless of the table name, the filenames for temporary and intermediate
    tables always have the "#sql" prefix, e.g. "#sql-1234". For non-temporary
    tables, a "#" prefix is encoded to @0023 in the filename, e.g. table "#sql_foo"
    has the filename "@0023sql_foo."
    3034e786
    Bug#21105475 DROP TABLE DOESN'T DROP TABLE ENTRIES STARTING WITH # FROM P_S TABLE
    Christopher Powers authored
    The Performance Schema identifies temporary tables by assuming that all tables
    named with the "#sql" prefix are temporaryand can be ignored. However,
    non-temporary tables having the "#sql" prefix are incorrectly identified as
    temporary.
    
    To avoid this ambiguity, the Performance Schema will identify temporary tables
    using attributes other than the table name, depending on the state:
    
    1) table_share->tmp_table if the share is available and complete, e.g. get_table_share()
    2) CREATE: (ha_create_table) Create info flags or explicit boolean for truncated MyISAM temp tables
    3) DROP: The filename, guaranteed to have a #sql prefix. Table share not available.
    
    Regardless of the table name, the filenames for temporary and intermediate
    tables always have the "#sql" prefix, e.g. "#sql-1234". For non-temporary
    tables, a "#" prefix is encoded to @0023 in the filename, e.g. table "#sql_foo"
    has the filename "@0023sql_foo."
Loading