mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
47 lines
1.8 KiB
Text
47 lines
1.8 KiB
Text
|
#Bug#13955083 ALLOW IN-PLACE DDL OPERATIONS ON MISSING OR DISCARDED TABLESPACES
|
||
|
|
||
|
--source include/not_embedded.inc
|
||
|
--source include/have_innodb.inc
|
||
|
|
||
|
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: 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;
|