mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-25743: Unnecessary copying of table names in InnoDB dictionary
Many InnoDB data dictionary cache operations require that the table name be copied so that it will be NUL terminated. (For example, SYS_TABLES.NAME is not guaranteed to be NUL-terminated.) dict_table_t::is_garbage_name(): Check if a name belongs to the background drop table queue. dict_check_if_system_table_exists(): Remove. dict_sys_t::load_sys_tables(): Load the non-hard-coded system tables SYS_FOREIGN, SYS_FOREIGN_COLS, SYS_VIRTUAL on startup. dict_sys_t::create_or_check_sys_tables(): Replaces dict_create_or_check_foreign_constraint_tables() and dict_create_or_check_sys_virtual(). dict_sys_t::load_table(): Replaces dict_table_get_low() and dict_load_table(). dict_sys_t::find_table(): Renamed from get_table(). dict_sys_t::sys_tables_exist(): Check whether all the non-hard-coded tables SYS_FOREIGN, SYS_FOREIGN_COLS, SYS_VIRTUAL exist. trx_t::has_stats_table_lock(): Moved to dict0stats.cc. Some error messages will now report table names in the internal databasename/tablename format, instead of `databasename`.`tablename`.
This commit is contained in:
@@ -7,7 +7,7 @@ call mtr.add_suppression("InnoDB: Unknown index id .* on page");
|
||||
call mtr.add_suppression("InnoDB: Operating system error number");
|
||||
call mtr.add_suppression("InnoDB: The error means");
|
||||
call mtr.add_suppression("InnoDB: Cannot open datafile .*t1\\.ibd");
|
||||
call mtr.add_suppression("InnoDB: Ignoring tablespace for `test`\\.`t1`");
|
||||
call mtr.add_suppression("InnoDB: Ignoring tablespace for test/t1 ");
|
||||
FLUSH TABLES;
|
||||
SET SESSION innodb_strict_mode=1;
|
||||
CREATE TABLE t1 (c1 INT) ENGINE = Innodb
|
||||
|
Reference in New Issue
Block a user