--source include/not_windows_embedded.inc --source include/have_example_plugin.inc CREATE TABLE t1(a int) ENGINE=EXAMPLE; DROP TABLE t1; eval INSTALL PLUGIN example SONAME 'ha_example'; --replace_regex /\.dll/.so/ --error 1125 eval INSTALL PLUGIN EXAMPLE SONAME 'ha_example'; UNINSTALL PLUGIN example; eval INSTALL SONAME 'ha_example'; --replace_column 5 # --replace_regex /\.dll/.so/ --query_vertical select * from information_schema.plugins where plugin_library like 'ha_example%' CREATE TABLE t1(a int) ENGINE=EXAMPLE; # 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; show status like 'example%'; show variables like 'example%'; eval UNINSTALL SONAME 'ha_example'; --replace_column 5 # --replace_regex /\.dll/.so/ --query_vertical select * from information_schema.plugins where plugin_library like 'ha_example%' DROP TABLE t1; --error 1305 UNINSTALL PLUGIN EXAMPLE; --error 1305 UNINSTALL PLUGIN non_exist; --echo # --echo # Bug#32034: check_func_enum() does not check correct values but set it --echo # to impossible int val --echo # eval INSTALL PLUGIN example SONAME 'ha_example'; SET GLOBAL example_enum_var= e1; SET GLOBAL example_enum_var= e2; --error 1231 SET GLOBAL example_enum_var= impossible; UNINSTALL PLUGIN example; # # Bug #32757 hang with sql_mode set when setting some global variables # eval INSTALL PLUGIN example SONAME 'ha_example'; select @@session.sql_mode into @old_sql_mode; # first, try normal sql_mode (no error, send OK) set session sql_mode=''; set global example_ulong_var=500; select @@global.example_ulong_var; # overflow -- correct value, but throw warning set global example_ulong_var=1111; select @@global.example_ulong_var; # now, try STRICT (error occurrs, no message is sent, so send default) set session sql_mode='STRICT_ALL_TABLES'; set global example_ulong_var=500; select @@global.example_ulong_var; # overflow -- throw warning, do NOT change value --error ER_WRONG_VALUE_FOR_VAR set global example_ulong_var=1111; select @@global.example_ulong_var; set session sql_mode=@old_sql_mode; # finally, show that conditions that already raised an error are not # adversely affected (error was already sent, do nothing) --error ER_WRONG_VALUE_FOR_VAR set session old=bla; ############################################################### # engine-specific clauses in the CREATE TABLE: --echo #legal values CREATE TABLE t1 ( a int complex='c,f,f,f' ) ENGINE=example ULL=10000 STR='dskj' one_or_two='one' YESNO=0; show create table t1; drop table t1; 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; show create table t1; --echo #alter table alter table t1 ULL=10000000; show create table t1; alter table t1 change a a int complex='c,c,c'; show create table t1; drop table t1; --echo #illegal value error SET SQL_MODE=''; --error ER_BAD_OPTION_VALUE CREATE TABLE t1 (a int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS; --error ER_PARSE_ERROR CREATE TABLE t1 (a int) ENGINE=example ULL=10.00; --error ER_PARSE_ERROR CREATE TABLE t1 (a int) ENGINE=example ULL=1e2; CREATE TABLE t1 (a int) ENGINE=example ULL=0x1234; SHOW CREATE TABLE t1; select create_options from information_schema.tables where table_schema='test' and table_name='t1'; ALTER TABLE t1 ULL=DEFAULT; SHOW CREATE TABLE t1; DROP TABLE t1; SET @@SQL_MODE=@OLD_SQL_MODE; # # The only preparable statement above was CREATE TABLE. # We need to prepare another statement here to force the # previous one to be deallocated (mysqltest reuses the same handle) # and to unlock all thread-local plugin locks. Otherwise the plugin won't # uninstall. # select 1; UNINSTALL PLUGIN example;