diff --git a/mysql-test/suite/innodb/t/table_flags.test b/mysql-test/suite/innodb/t/table_flags.test index 07fe39664f2..69f5d00693b 100644 --- a/mysql-test/suite/innodb/t/table_flags.test +++ b/mysql-test/suite/innodb/t/table_flags.test @@ -207,3 +207,9 @@ DROP TABLE tr,tc,td,tz,tp; --list_files $bugdir --remove_files_wildcard $bugdir --rmdir $bugdir + +call mtr.add_suppression("ERROR HY000: Can't create table `test`.`t1`"); +--error ER_CANT_CREATE_TABLE +CREATE TABLE t1(f1 INT, f2 VARCHAR(1), KEY k1(f2), + FULLTEXT KEY(f2), + FOREIGN KEY (f2) REFERENCES t1(f3))ENGINE=InnoDB; diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 6daffbd7ec1..cadb2969c7f 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -12865,7 +12865,8 @@ ha_innobase::create( if (info.drop_before_rollback()) { trx->error_state = DB_SUCCESS; row_drop_table_for_mysql(info.table_name(), - trx, SQLCOM_TRUNCATE, true); + trx, SQLCOM_TRUNCATE, true, + false); } trx_rollback_for_mysql(trx); row_mysql_unlock_data_dictionary(trx);