mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
54 lines
2.5 KiB
Text
54 lines
2.5 KiB
Text
#Bug#13955083 ALLOW IN-PLACE DDL OPERATIONS ON MISSING OR DISCARDED TABLESPACES
|
|
|
|
--source include/not_embedded.inc
|
|
--source include/have_innodb.inc
|
|
|
|
call mtr.add_suppression("InnoDB: Cannot open datafile for read-only: .*");
|
|
|
|
let $MYSQLD_DATADIR=`select @@datadir`;
|
|
SET GLOBAL innodb_file_per_table=1;
|
|
CREATE TABLE t(a INT)ENGINE=InnoDB;
|
|
|
|
# Shut down the server
|
|
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
-- shutdown_server
|
|
-- source include/wait_until_disconnected.inc
|
|
|
|
# Remove the tablespace file.
|
|
let IBD=$MYSQLD_DATADIR/test/t.ibd;
|
|
perl;
|
|
unlink "$ENV{IBD}" || die "Unable to unlink $ENV{IBD}\n";
|
|
EOF
|
|
|
|
# Restart the server.
|
|
-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
-- enable_reconnect
|
|
-- source include/wait_until_connected_again.inc
|
|
|
|
call mtr.add_suppression("InnoDB: Operating system error number .* in a file operation.");
|
|
call mtr.add_suppression("InnoDB: The error means the system cannot find the path specified.");
|
|
call mtr.add_suppression("InnoDB: If you are installing InnoDB, remember that you must create directories yourself, InnoDB does not create them.");
|
|
call mtr.add_suppression("InnoDB: Cannot open datafile for read-only: './test/t.ibd' OS error: .*");
|
|
call mtr.add_suppression("InnoDB: Ignoring tablespace `test/t` because it could not be opened.");
|
|
call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* because the .ibd file is missing. Please refer to .*");
|
|
call mtr.add_suppression("InnoDB: Error: trying to open a table, but could not$");
|
|
call mtr.add_suppression("MySQL is trying to open a table handle but the \.ibd file for$");
|
|
call mtr.add_suppression("InnoDB: Table 'test/t'$");
|
|
call mtr.add_suppression("Could not find a valid tablespace file for");
|
|
call mtr.add_suppression("InnoDB: Tablespace open failed for '\"test\"\.\"t\"', ignored");
|
|
call mtr.add_suppression("InnoDB: Failed to find tablespace for table '\"test\"\.\"t\"' in the cache");
|
|
call mtr.add_suppression("InnoDB: Cannot delete tablespace [0-9]+.*not found");
|
|
call mtr.add_suppression("Table .*t in the InnoDB data dictionary has tablespace id .*, but tablespace with that id or name does not exist");
|
|
|
|
# The ER_NO_SUCH_TABLE is being thrown by ha_innobase::open().
|
|
# The table does exist, only the tablespace does not exist.
|
|
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
|
SELECT * FROM t;
|
|
|
|
--error ER_NO_SUCH_TABLE_IN_ENGINE
|
|
ALTER TABLE t ADD INDEX (a), ALGORITHM=INPLACE;
|
|
--error ER_NO_SUCH_TABLE
|
|
ALTER TABLE t1 ADD INDEX (a), ALGORITHM=COPY;
|
|
|
|
ALTER TABLE t DISCARD TABLESPACE;
|
|
DROP TABLE t;
|