mirror of
https://github.com/MariaDB/server.git
synced 2025-02-10 15:35:34 +01:00
![Marko Mäkelä](/assets/img/avatar_default.png)
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`.
22 lines
681 B
Text
22 lines
681 B
Text
--source include/have_innodb.inc
|
|
--source include/not_embedded.inc
|
|
|
|
call mtr.add_suppression("InnoDB: Operating system error number ");
|
|
call mtr.add_suppression("InnoDB: (The error means|If you are|Cannot open datafile) ");
|
|
call mtr.add_suppression("InnoDB: Ignoring tablespace for test/t ");
|
|
call mtr.add_suppression("InnoDB: Table test/t .* does not exist");
|
|
|
|
CREATE TABLE t (a SERIAL) ENGINE=InnoDB;
|
|
INSERT INTO t() VALUES();
|
|
SHOW CREATE TABLE t;
|
|
let $datadir=`select @@datadir`;
|
|
|
|
--source include/shutdown_mysqld.inc
|
|
--remove_file $datadir/test/t.ibd
|
|
--source include/start_mysqld.inc
|
|
|
|
--error ER_GET_ERRNO
|
|
SELECT * FROM t;
|
|
--error ER_GET_ERRNO
|
|
TRUNCATE TABLE t;
|
|
DROP TABLE t;
|