mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			334 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			334 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
CREATE TABLE t1(a int) ENGINE=EXAMPLE;
 | 
						|
ERROR 42000: Unknown storage engine 'EXAMPLE'
 | 
						|
INSTALL PLUGIN example SONAME 'ha_example';
 | 
						|
INSTALL PLUGIN EXAMPLE SONAME 'ha_example';
 | 
						|
ERROR HY000: Plugin 'EXAMPLE' already installed
 | 
						|
UNINSTALL PLUGIN example;
 | 
						|
INSTALL SONAME 'ha_example';
 | 
						|
select * from information_schema.plugins where plugin_library like 'ha_example%';
 | 
						|
PLUGIN_NAME	EXAMPLE
 | 
						|
PLUGIN_VERSION	0.1
 | 
						|
PLUGIN_STATUS	ACTIVE
 | 
						|
PLUGIN_TYPE	STORAGE ENGINE
 | 
						|
PLUGIN_TYPE_VERSION	#
 | 
						|
PLUGIN_LIBRARY	ha_example.so
 | 
						|
PLUGIN_LIBRARY_VERSION	1.13
 | 
						|
PLUGIN_AUTHOR	Brian Aker, MySQL AB
 | 
						|
PLUGIN_DESCRIPTION	Example storage engine
 | 
						|
PLUGIN_LICENSE	GPL
 | 
						|
LOAD_OPTION	ON
 | 
						|
PLUGIN_MATURITY	Experimental
 | 
						|
PLUGIN_AUTH_VERSION	0.1
 | 
						|
PLUGIN_NAME	UNUSABLE
 | 
						|
PLUGIN_VERSION	3.14
 | 
						|
PLUGIN_STATUS	ACTIVE
 | 
						|
PLUGIN_TYPE	DAEMON
 | 
						|
PLUGIN_TYPE_VERSION	#
 | 
						|
PLUGIN_LIBRARY	ha_example.so
 | 
						|
PLUGIN_LIBRARY_VERSION	1.13
 | 
						|
PLUGIN_AUTHOR	Sergei Golubchik
 | 
						|
PLUGIN_DESCRIPTION	Unusable Daemon
 | 
						|
PLUGIN_LICENSE	GPL
 | 
						|
LOAD_OPTION	ON
 | 
						|
PLUGIN_MATURITY	Experimental
 | 
						|
PLUGIN_AUTH_VERSION	3.14.15.926
 | 
						|
CREATE TABLE t1 (a int) ENGINE=EXAMPLE;
 | 
						|
CREATE TABLE t2 (a int) ENGINE=EXAMPLE;
 | 
						|
FLUSH TABLES;
 | 
						|
SELECT * FROM t1;
 | 
						|
a
 | 
						|
set global example_ulong_var=500;
 | 
						|
set global example_enum_var= e1;
 | 
						|
set session example_int_var= -1;
 | 
						|
show status like 'example%';
 | 
						|
Variable_name	Value
 | 
						|
Example_func_example	enum_var is 0, ulong_var is 500, int_var is -1, double_var is 8.500000, really
 | 
						|
show variables like 'example%';
 | 
						|
Variable_name	Value
 | 
						|
example_double_thdvar	8.500000
 | 
						|
example_double_var	8.500000
 | 
						|
example_enum_var	e1
 | 
						|
example_int_var	-1
 | 
						|
example_ulong_var	500
 | 
						|
example_varopt_default	5
 | 
						|
select @@session.example_int_var;
 | 
						|
@@session.example_int_var
 | 
						|
-1
 | 
						|
UNINSTALL SONAME 'ha_example';
 | 
						|
Warnings:
 | 
						|
Warning	1620	Plugin is busy and will be uninstalled on shutdown
 | 
						|
select * from information_schema.plugins where plugin_library like 'ha_example%';
 | 
						|
PLUGIN_NAME	EXAMPLE
 | 
						|
PLUGIN_VERSION	0.1
 | 
						|
PLUGIN_STATUS	DELETED
 | 
						|
PLUGIN_TYPE	STORAGE ENGINE
 | 
						|
PLUGIN_TYPE_VERSION	#
 | 
						|
PLUGIN_LIBRARY	ha_example.so
 | 
						|
PLUGIN_LIBRARY_VERSION	1.13
 | 
						|
PLUGIN_AUTHOR	Brian Aker, MySQL AB
 | 
						|
PLUGIN_DESCRIPTION	Example storage engine
 | 
						|
PLUGIN_LICENSE	GPL
 | 
						|
LOAD_OPTION	ON
 | 
						|
PLUGIN_MATURITY	Experimental
 | 
						|
PLUGIN_AUTH_VERSION	0.1
 | 
						|
DROP TABLE t1;
 | 
						|
select * from information_schema.plugins where plugin_library like 'ha_example%';
 | 
						|
SELECT * FROM t2;
 | 
						|
ERROR 42000: Unknown storage engine 'EXAMPLE'
 | 
						|
DROP TABLE t2;
 | 
						|
UNINSTALL PLUGIN EXAMPLE;
 | 
						|
ERROR 42000: PLUGIN EXAMPLE does not exist
 | 
						|
UNINSTALL PLUGIN non_exist;
 | 
						|
ERROR 42000: PLUGIN non_exist does not exist
 | 
						|
UNINSTALL SONAME 'non_exist';
 | 
						|
ERROR 42000: SONAME non_exist.so does not exist
 | 
						|
#
 | 
						|
# Bug#32034: check_func_enum() does not check correct values but set it
 | 
						|
#            to impossible int val
 | 
						|
#
 | 
						|
INSTALL PLUGIN example SONAME 'ha_example';
 | 
						|
SET GLOBAL example_enum_var= e1;
 | 
						|
SET GLOBAL example_enum_var= e2;
 | 
						|
SET GLOBAL example_enum_var= impossible;
 | 
						|
ERROR 42000: Variable 'example_enum_var' can't be set to the value of 'impossible'
 | 
						|
UNINSTALL PLUGIN example;
 | 
						|
INSTALL PLUGIN example SONAME 'ha_example';
 | 
						|
select @@session.sql_mode into @old_sql_mode;
 | 
						|
set session sql_mode='';
 | 
						|
set global example_ulong_var=500;
 | 
						|
select @@global.example_ulong_var;
 | 
						|
@@global.example_ulong_var
 | 
						|
500
 | 
						|
set global example_ulong_var=1111;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect example_ulong_var value: '1111'
 | 
						|
select @@global.example_ulong_var;
 | 
						|
@@global.example_ulong_var
 | 
						|
1000
 | 
						|
set session sql_mode='STRICT_ALL_TABLES';
 | 
						|
set global example_ulong_var=500;
 | 
						|
select @@global.example_ulong_var;
 | 
						|
@@global.example_ulong_var
 | 
						|
500
 | 
						|
set global example_ulong_var=1111;
 | 
						|
ERROR 42000: Variable 'example_ulong_var' can't be set to the value of '1111'
 | 
						|
select @@global.example_ulong_var;
 | 
						|
@@global.example_ulong_var
 | 
						|
500
 | 
						|
set session sql_mode=@old_sql_mode;
 | 
						|
set session old=bla;
 | 
						|
ERROR 42000: Variable 'old' can't be set to the value of 'bla'
 | 
						|
#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;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL `complex`='c,f,f,f'
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `ULL`=10000 `STR`='dskj' `one_or_two`='one' `YESNO`=0
 | 
						|
drop table t1;
 | 
						|
SET @OLD_SQL_MODE=@@SQL_MODE;
 | 
						|
SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
 | 
						|
#illegal value fixed
 | 
						|
CREATE TABLE t1 (a int, b int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS;
 | 
						|
Warnings:
 | 
						|
Warning	1912	Incorrect value '10000000000000000000' for option 'ULL'
 | 
						|
Warning	1912	Incorrect value 'ttt' for option 'one_or_two'
 | 
						|
Warning	1912	Incorrect value 'SSS' for option 'YESNO'
 | 
						|
show create table t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL,
 | 
						|
  `b` int(11) DEFAULT NULL
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `ULL`=10000000000000000000 `one_or_two`='ttt' `YESNO`=SSS
 | 
						|
#alter table
 | 
						|
alter table t1 ULL=10000000;
 | 
						|
Warnings:
 | 
						|
Note	1105	EXAMPLE DEBUG: ULL 4294967290 -> 10000000
 | 
						|
show create table t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL,
 | 
						|
  `b` int(11) DEFAULT NULL
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `one_or_two`='ttt' `YESNO`=SSS `ULL`=10000000
 | 
						|
alter table t1 change a a int complex='c,c,c';
 | 
						|
Warnings:
 | 
						|
Note	1105	EXAMPLE DEBUG: Field `a` COMPLEX '(null)' -> 'c,c,c'
 | 
						|
show create table t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL `complex`='c,c,c',
 | 
						|
  `b` int(11) DEFAULT NULL
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `one_or_two`='ttt' `YESNO`=SSS `ULL`=10000000
 | 
						|
alter table t1 one_or_two=two;
 | 
						|
show create table t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL `complex`='c,c,c',
 | 
						|
  `b` int(11) DEFAULT NULL
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `YESNO`=SSS `ULL`=10000000 `one_or_two`=two
 | 
						|
drop table t1;
 | 
						|
#illegal value error
 | 
						|
SET SQL_MODE='';
 | 
						|
CREATE TABLE t1 (a int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS;
 | 
						|
ERROR HY000: Incorrect value '10000000000000000000' for option 'ULL'
 | 
						|
CREATE TABLE t1 (a int) ENGINE=example ULL=10.00;
 | 
						|
ERROR 42000: Only integers allowed as number here near '10.00' at line 1
 | 
						|
CREATE TABLE t1 (a int) ENGINE=example ULL=1e2;
 | 
						|
ERROR 42000: Only integers allowed as number here near '1e2' at line 1
 | 
						|
CREATE TABLE t1 (a int) ENGINE=example ULL=0x1234;
 | 
						|
SHOW CREATE TABLE t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `ULL`=4660
 | 
						|
SET example_varopt_default=33;
 | 
						|
select create_options from information_schema.tables where table_schema='test' and table_name='t1';
 | 
						|
create_options
 | 
						|
`ULL`=4660
 | 
						|
ALTER TABLE t1 ULL=DEFAULT;
 | 
						|
Warnings:
 | 
						|
Note	1105	EXAMPLE DEBUG: ULL 4660 -> 4294967295
 | 
						|
SHOW CREATE TABLE t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1
 | 
						|
DROP TABLE t1;
 | 
						|
create table t1 (a int) engine=example;
 | 
						|
show create table t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `VAROPT`=33
 | 
						|
drop table t1;
 | 
						|
create table t1 (a int) engine=example varopt=15;
 | 
						|
show create table t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `varopt`=15
 | 
						|
alter table t1 varopt=default;
 | 
						|
show create table t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(11) DEFAULT NULL
 | 
						|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `VAROPT`=33
 | 
						|
drop table t1;
 | 
						|
SET @@SQL_MODE=@OLD_SQL_MODE;
 | 
						|
select 1;
 | 
						|
1
 | 
						|
1
 | 
						|
UNINSTALL PLUGIN example;
 | 
						|
#
 | 
						|
# Bug #16194302  SUPPORT FOR FLOATING-POINT SYSTEM
 | 
						|
#                VARIABLES USING THE PLUGIN INTERFACE.
 | 
						|
#
 | 
						|
INSTALL PLUGIN example SONAME 'ha_example';
 | 
						|
SET GLOBAL example_double_var = -0.1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect example_double_var value: '-0.1'
 | 
						|
SELECT @@GLOBAL.example_double_var;
 | 
						|
@@GLOBAL.example_double_var
 | 
						|
0.500000
 | 
						|
SET GLOBAL example_double_var = 0.000001;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect example_double_var value: '0.000001'
 | 
						|
SELECT @@GLOBAL.example_double_var;
 | 
						|
@@GLOBAL.example_double_var
 | 
						|
0.500000
 | 
						|
SET GLOBAL example_double_var = 0.4;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect example_double_var value: '0.4'
 | 
						|
SELECT @@GLOBAL.example_double_var;
 | 
						|
@@GLOBAL.example_double_var
 | 
						|
0.500000
 | 
						|
SET GLOBAL example_double_var = 123.456789;
 | 
						|
SELECT @@GLOBAL.example_double_var;
 | 
						|
@@GLOBAL.example_double_var
 | 
						|
123.456789
 | 
						|
SET GLOBAL example_double_var = 500;
 | 
						|
SELECT @@GLOBAL.example_double_var;
 | 
						|
@@GLOBAL.example_double_var
 | 
						|
500.000000
 | 
						|
SET GLOBAL example_double_var = 999.999999;
 | 
						|
SELECT @@GLOBAL.example_double_var;
 | 
						|
@@GLOBAL.example_double_var
 | 
						|
999.999999
 | 
						|
SET GLOBAL example_double_var = 1000.51;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect example_double_var value: '1000.51'
 | 
						|
SELECT @@GLOBAL.example_double_var;
 | 
						|
@@GLOBAL.example_double_var
 | 
						|
1000.500000
 | 
						|
SET SESSION example_double_thdvar = -0.1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect example_double_thdvar value: '-0.1'
 | 
						|
SELECT @@SESSION.example_double_thdvar;
 | 
						|
@@SESSION.example_double_thdvar
 | 
						|
0.500000
 | 
						|
SET SESSION example_double_thdvar = 0.000001;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect example_double_thdvar value: '0.000001'
 | 
						|
SELECT @@SESSION.example_double_thdvar;
 | 
						|
@@SESSION.example_double_thdvar
 | 
						|
0.500000
 | 
						|
SET SESSION example_double_thdvar = 0.4;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect example_double_thdvar value: '0.4'
 | 
						|
SELECT @@SESSION.example_double_thdvar;
 | 
						|
@@SESSION.example_double_thdvar
 | 
						|
0.500000
 | 
						|
SET SESSION example_double_thdvar = 123.456789;
 | 
						|
SELECT @@SESSION.example_double_thdvar;
 | 
						|
@@SESSION.example_double_thdvar
 | 
						|
123.456789
 | 
						|
SET SESSION example_double_thdvar = 500;
 | 
						|
SELECT @@SESSION.example_double_thdvar;
 | 
						|
@@SESSION.example_double_thdvar
 | 
						|
500.000000
 | 
						|
SET SESSION example_double_thdvar = 999.999999;
 | 
						|
SELECT @@SESSION.example_double_thdvar;
 | 
						|
@@SESSION.example_double_thdvar
 | 
						|
999.999999
 | 
						|
SET SESSION example_double_thdvar = 1000.51;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect example_double_thdvar value: '1000.51'
 | 
						|
SELECT @@SESSION.example_double_thdvar;
 | 
						|
@@SESSION.example_double_thdvar
 | 
						|
1000.500000
 | 
						|
UNINSTALL PLUGIN example;
 | 
						|
UNINSTALL PLUGIN MyISAM;
 | 
						|
ERROR HY000: Built-in plugins cannot be deleted
 | 
						|
select plugin_name from information_schema.plugins where plugin_library like 'ha_example%';
 | 
						|
plugin_name
 | 
						|
install soname 'ha_example';
 | 
						|
select plugin_name from information_schema.plugins where plugin_library like 'ha_example%';
 | 
						|
plugin_name
 | 
						|
EXAMPLE
 | 
						|
UNUSABLE
 | 
						|
uninstall plugin example;
 | 
						|
select plugin_name from information_schema.plugins where plugin_library like 'ha_example%';
 | 
						|
plugin_name
 | 
						|
UNUSABLE
 | 
						|
install soname 'ha_example';
 | 
						|
select plugin_name from information_schema.plugins where plugin_library like 'ha_example%';
 | 
						|
plugin_name
 | 
						|
EXAMPLE
 | 
						|
UNUSABLE
 | 
						|
uninstall soname 'ha_example';
 | 
						|
select plugin_name from information_schema.plugins where plugin_library like 'ha_example%';
 | 
						|
plugin_name
 | 
						|
#
 | 
						|
# MDEV-5309 - RENAME TABLE does not check for existence of the table's
 | 
						|
#             engine
 | 
						|
#
 | 
						|
INSTALL PLUGIN example SONAME 'ha_example';
 | 
						|
CREATE TABLE t1(a INT) ENGINE=EXAMPLE;
 | 
						|
SELECT * FROM t1;
 | 
						|
a
 | 
						|
FLUSH TABLES;
 | 
						|
UNINSTALL PLUGIN example;
 | 
						|
RENAME TABLE t1 TO t2;
 | 
						|
ERROR 42S02: Table 'test.t1' doesn't exist
 | 
						|
DROP TABLE t1;
 |