diff options
Diffstat (limited to 'mysql-test/t/enforce_storage_engine.test')
-rw-r--r-- | mysql-test/t/enforce_storage_engine.test | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/mysql-test/t/enforce_storage_engine.test b/mysql-test/t/enforce_storage_engine.test index 83deac07fe0..6b422477fe6 100644 --- a/mysql-test/t/enforce_storage_engine.test +++ b/mysql-test/t/enforce_storage_engine.test @@ -1,5 +1,7 @@ -- source include/not_embedded.inc +set local sql_mode=""; +set global sql_mode=""; --disable_warnings drop table if exists t1; --enable_warnings @@ -69,5 +71,41 @@ CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)); SHOW CREATE TABLE t1; DROP TABLE t1; ---error 1228 +SET GLOBAL enforce_storage_engine=Memory; +SET SESSION sql_mode=''; + +connect (con1,localhost,root,,); +connection con1; +select @@session.enforce_storage_engine; +select @@global.enforce_storage_engine; +CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)); +SHOW CREATE TABLE t1; +DROP TABLE t1; +connection default; +disconnect con1; + +set global sql_mode=default; +SET SESSION enforce_storage_engine=NULL; SET GLOBAL enforce_storage_engine=NULL; + +# +# MDEV-8577: With enforce-storage-engine mysql_upgrade corrupts the schema: +# ALTER TABLE should either bypass enforce-storage-engine, or mysql_upgrade +# should refuse to run +# +CREATE TABLE t3 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=MyISAM; +INSERT INTO t3 values (NULL, 'test'); +SET SESSION enforce_storage_engine=Memory; +ALTER TABLE t3 ENGINE=MyISAM; +SHOW CREATE TABLE t3; +DROP TABLE t3; +SET SESSION enforce_storage_engine=NULL; +CREATE TABLE t3 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=MyISAM; +INSERT INTO t3 values (NULL, 'test'); +SET SESSION enforce_storage_engine=Memory; +ALTER TABLE t3 ADD COLUMN c3 INT; +SHOW CREATE TABLE t3; +DROP TABLE t3; + +SET SESSION enforce_storage_engine=NULL; +SET GLOBAL enforce_storage_engine=NULL;
\ No newline at end of file |