mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
d929342b0f
Syntax. Server support. Test cases. InnoDB bugfixes: * don't mess around with system sprintf's, always use my_error() for errors. * don't use InnoDB internal error codes where OS error codes are expected. * don't say "file not found", when it was.
46 lines
1.8 KiB
Text
46 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;
|