diff options
Diffstat (limited to 'mysql-test/t/plugin.test')
-rw-r--r-- | mysql-test/t/plugin.test | 58 |
1 files changed, 52 insertions, 6 deletions
diff --git a/mysql-test/t/plugin.test b/mysql-test/t/plugin.test index e09f3a810cb..33d4d0041f5 100644 --- a/mysql-test/t/plugin.test +++ b/mysql-test/t/plugin.test @@ -6,7 +6,7 @@ DROP TABLE t1; INSTALL PLUGIN example SONAME 'ha_example'; --replace_regex /\.dll/.so/ ---error 1125 +--error ER_PLUGIN_INSTALLED INSTALL PLUGIN EXAMPLE SONAME 'ha_example'; UNINSTALL PLUGIN example; @@ -16,12 +16,13 @@ INSTALL SONAME 'ha_example'; --replace_regex /\.dll/.so/ --query_vertical select * from information_schema.plugins where plugin_library like 'ha_example%' -CREATE TABLE t1(a int) ENGINE=EXAMPLE; +CREATE TABLE t1 (a int) ENGINE=EXAMPLE; +CREATE TABLE t2 (a int) ENGINE=EXAMPLE; +FLUSH TABLES; # Let's do some advanced ops with the example engine :) SELECT * FROM t1; - # a couple of tests for variables set global example_ulong_var=500; set global example_enum_var= e1; @@ -32,12 +33,26 @@ show variables like 'example%'; select @@session.example_int_var; UNINSTALL SONAME 'ha_example'; + +# the engine is NOT uninstalled yet, +# because the table `t1` is open, sitting in the table defintion cache + --replace_column 5 # --replace_regex /\.dll/.so/ --query_vertical select * from information_schema.plugins where plugin_library like 'ha_example%' - DROP TABLE t1; +# now the engine IS unloaded +# and the table `t2` belongs to an unknown engine + +--replace_column 5 # +--replace_regex /\.dll/.so/ +--query_vertical select * from information_schema.plugins where plugin_library like 'ha_example%' +--error ER_UNKNOWN_STORAGE_ENGINE +SELECT * FROM t2; +DROP TABLE t2; + + --error 1305 UNINSTALL PLUGIN EXAMPLE; @@ -109,7 +124,7 @@ SET @OLD_SQL_MODE=@@SQL_MODE; SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS'; --echo #illegal value fixed -CREATE TABLE t1 (a int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS; +CREATE TABLE t1 (a int, b int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS; show create table t1; --echo #alter table @@ -117,6 +132,8 @@ alter table t1 ULL=10000000; show create table t1; alter table t1 change a a int complex='c,c,c'; show create table t1; +alter table t1 one_or_two=two; +show create table t1; drop table t1; --echo #illegal value error @@ -132,6 +149,7 @@ CREATE TABLE t1 (a int) ENGINE=example ULL=1e2; CREATE TABLE t1 (a int) ENGINE=example ULL=0x1234; SHOW CREATE TABLE t1; +SET example_varopt_default=33; # does not affect varopt of t1 select create_options from information_schema.tables where table_schema='test' and table_name='t1'; @@ -140,6 +158,16 @@ SHOW CREATE TABLE t1; DROP TABLE t1; +create table t1 (a int) engine=example; # varopt is 10 +show create table t1; +drop table t1; + +create table t1 (a int) engine=example varopt=15; +show create table t1; +alter table t1 varopt=default; +show create table t1; +drop table t1; + SET @@SQL_MODE=@OLD_SQL_MODE; # @@ -232,4 +260,22 @@ select convert('admin𝌆' using utf8); --error ER_UDF_NO_PATHS install plugin foo soname 'admin𝌆'; ---echo # End of 5.5 test +# +# Bug#27302459: EMPTY VALUE IN MYSQL.PLUGIN TABLE CAUSES SERVER TO EXIT ON STARTUP +# +insert mysql.plugin values (); +source include/restart_mysqld.inc; +delete from mysql.plugin where name = ''; + +--echo # +--echo # MDEV-5309 - RENAME TABLE does not check for existence of the table's +--echo # engine +--echo # +INSTALL PLUGIN example SONAME 'ha_example'; +CREATE TABLE t1(a INT) ENGINE=EXAMPLE; +SELECT * FROM t1; +FLUSH TABLES; +UNINSTALL PLUGIN example; +--error ER_NO_SUCH_TABLE +RENAME TABLE t1 TO t2; +DROP TABLE t1; |