mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
49e2c8f0a6
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`.
34 lines
1.2 KiB
Text
34 lines
1.2 KiB
Text
--source include/have_innodb.inc
|
|
|
|
#
|
|
# MDEV-13499: Backing up table that "doesn't exist in engine" cause crash in mariabackup when using encryption
|
|
#
|
|
create table t1(c1 int) engine=InnoDB;
|
|
INSERT INTO t1 VALUES(1);
|
|
let MYSQLD_DATADIR=`select @@datadir`;
|
|
|
|
--disable_query_log
|
|
call mtr.add_suppression("InnoDB: Cannot open datafile for read-only: '.*test.t1\.ibd'");
|
|
call mtr.add_suppression('InnoDB: Operating system error number');
|
|
call mtr.add_suppression('InnoDB: The error means the system cannot find the path specified\.');
|
|
call mtr.add_suppression('InnoDB: Table test/t1 in the InnoDB data dictionary has tablespace id .*, but tablespace with that id or name does not exist');
|
|
call mtr.add_suppression('InnoDB: Ignoring tablespace for test/t1 because it could not be opened\.');
|
|
--enable_query_log
|
|
|
|
--source include/shutdown_mysqld.inc
|
|
|
|
--remove_file $MYSQLD_DATADIR/test/t1.ibd
|
|
|
|
--source include/start_mysqld.inc
|
|
|
|
echo # xtrabackup backup;
|
|
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
|
|
--disable_result_log
|
|
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
|
|
--enable_result_log
|
|
|
|
rmdir $targetdir;
|
|
|
|
--error ER_GET_ERRNO
|
|
select * from t1;
|
|
drop table t1;
|