• Marko Mäkelä's avatar
    MDEV-11816 Disallow CREATE TEMPORARY TABLE…ROW_FORMAT=COMPRESSED · 7cf97ed4
    Marko Mäkelä authored
    MySQL 5.7 allows temporary tables to be created in ROW_FORMAT=COMPRESSED.
    The usefulness of this is questionable. WL#7899 in MySQL 8.0.0
    prevents the creation of such compressed tables, so that all InnoDB
    temporary tables will be located inside the predefined
    InnoDB temporary tablespace.
    
    Pick up and adjust some tests from MySQL 5.7 and 8.0.
    
    dict_tf_to_fsp_flags(): Remove the parameter is_temp.
    fsp_flags_init(): Remove the parameter is_temporary.
    
    row_mysql_drop_temp_tables(): Remove. There cannot be any temporary
    tables in InnoDB. (This never removed #sql* tables in the datadir
    which were created by DDL.)
    
    dict_table_t::dir_path_of_temp_table: Remove.
    
    create_table_info_t::m_temp_path: Remove.
    
    create_table_info_t::create_options_are_invalid(): Do not allow
    ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE for temporary tables.
    
    create_table_info_t::innobase_table_flags(): Do not unnecessarily
    prevent CREATE TEMPORARY TABLE with SPATIAL INDEX.
    (MySQL 5.7 does allow this.)
    
    fil_space_belongs_in_lru(): The only FIL_TYPE_TEMPORARY tablespace
    is never subjected to closing least-recently-used files.
    7cf97ed4
temp_table.test 1.83 KB