2009-10-08 10:39:15 +02:00
|
|
|
--source include/not_windows_embedded.inc
|
2006-12-15 00:09:56 +01:00
|
|
|
--source include/have_example_plugin.inc
|
|
|
|
|
|
|
|
CREATE TABLE t1(a int) ENGINE=EXAMPLE;
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
2009-06-10 10:59:49 +02:00
|
|
|
--replace_regex /\.dll/.so/
|
|
|
|
eval INSTALL PLUGIN example SONAME $HA_EXAMPLE_SO;
|
|
|
|
--replace_regex /\.dll/.so/
|
2006-12-15 00:09:56 +01:00
|
|
|
--error 1125
|
2009-06-10 10:59:49 +02:00
|
|
|
eval INSTALL PLUGIN EXAMPLE SONAME $HA_EXAMPLE_SO;
|
2006-12-15 00:09:56 +01:00
|
|
|
|
|
|
|
UNINSTALL PLUGIN example;
|
|
|
|
|
2009-06-10 10:59:49 +02:00
|
|
|
--replace_regex /\.dll/.so/
|
|
|
|
eval INSTALL PLUGIN example SONAME $HA_EXAMPLE_SO;
|
2006-12-15 00:09:56 +01:00
|
|
|
|
|
|
|
CREATE TABLE t1(a int) ENGINE=EXAMPLE;
|
|
|
|
|
|
|
|
# Let's do some advanced ops with the example engine :)
|
|
|
|
SELECT * FROM t1;
|
|
|
|
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
2010-03-03 15:44:14 +01:00
|
|
|
# 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%';
|
|
|
|
|
2007-05-21 14:48:29 +02:00
|
|
|
UNINSTALL PLUGIN example;
|
|
|
|
--error 1305
|
|
|
|
UNINSTALL PLUGIN EXAMPLE;
|
2006-12-15 00:09:56 +01:00
|
|
|
|
|
|
|
--error 1305
|
|
|
|
UNINSTALL PLUGIN non_exist;
|
2007-11-14 10:48:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
--echo #
|
|
|
|
--echo # Bug#32034: check_func_enum() does not check correct values but set it
|
|
|
|
--echo # to impossible int val
|
|
|
|
--echo #
|
2009-06-10 10:59:49 +02:00
|
|
|
--replace_regex /\.dll/.so/
|
|
|
|
eval INSTALL PLUGIN example SONAME $HA_EXAMPLE_SO;
|
2007-11-14 10:48:21 +01:00
|
|
|
|
|
|
|
SET GLOBAL example_enum_var= e1;
|
|
|
|
SET GLOBAL example_enum_var= e2;
|
|
|
|
--error 1231
|
|
|
|
SET GLOBAL example_enum_var= impossible;
|
|
|
|
|
|
|
|
UNINSTALL PLUGIN example;
|
2008-02-24 14:12:17 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# Bug #32757 hang with sql_mode set when setting some global variables
|
|
|
|
#
|
2009-06-10 10:59:49 +02:00
|
|
|
--replace_regex /\.dll/.so/
|
|
|
|
eval INSTALL PLUGIN example SONAME $HA_EXAMPLE_SO;
|
2008-02-24 14:12:17 +01:00
|
|
|
|
|
|
|
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_INCORRECT_GLOBAL_LOCAL_VAR
|
|
|
|
set session old=bla;
|
|
|
|
|
2010-04-08 14:10:05 +02:00
|
|
|
###############################################################
|
|
|
|
# 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;
|
|
|
|
SET @@SQL_MODE=@OLD_SQL_MODE;
|
|
|
|
|
2010-04-08 19:19:01 +02:00
|
|
|
#
|
|
|
|
# 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 it won't
|
|
|
|
# uninstall.
|
|
|
|
#
|
|
|
|
select 1;
|
2008-02-24 14:12:17 +01:00
|
|
|
UNINSTALL PLUGIN example;
|