mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
36eba98817
Changing the default server character set from latin1 to utf8mb4.
434 lines
15 KiB
Text
434 lines
15 KiB
Text
CREATE TABLE t1(a int) ENGINE=EXAMPLE;
|
|
ERROR 42000: Unknown storage engine 'EXAMPLE'
|
|
INSTALL PLUGIN non_exist SONAME 'ha_example';
|
|
ERROR HY000: Can't find symbol 'non_exist' in library 'ha_example.so'
|
|
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.15
|
|
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.15
|
|
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;
|
|
set global example_deprecated_var=1;
|
|
Warnings:
|
|
Warning 1287 '@@example_deprecated_var' is deprecated and will be removed in a future release
|
|
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_deprecated_var 0
|
|
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.15
|
|
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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
|
|
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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `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=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `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
|
|
set names utf8;
|
|
select convert('admin𝌆' using utf8);
|
|
convert('admin\xF0\x9D\x8C\x86' using utf8)
|
|
admin????
|
|
Warnings:
|
|
Warning 1300 Invalid utf8mb3 character string: '\xF0\x9D\x8C\x86'
|
|
install plugin foo soname 'admin𝌆';
|
|
ERROR HY000: No paths allowed for shared library
|
|
# End of 5.5 test
|
|
#
|
|
# 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;
|
|
# End of 10.1 test
|
|
#
|
|
# MDEV-21258: Can't uninstall plugin if the library file doesn't exist
|
|
#
|
|
insert into mysql.plugin values ("unexisting_plugin", "soname");
|
|
select * from mysql.plugin WHERE name='unexisting_plugin';
|
|
name dl
|
|
unexisting_plugin soname
|
|
UNINSTALL PLUGIN unexisting_plugin;
|
|
select * from mysql.plugin WHERE name='unexisting_plugin';
|
|
name dl
|
|
UNINSTALL PLUGIN unexisting_plugin;
|
|
ERROR 42000: PLUGIN unexisting_plugin does not exist
|
|
#
|
|
# MDEV-26323 use-after-poison issue of MariaDB server
|
|
#
|
|
INSTALL PLUGIN DEALLOCATE SONAME '';
|
|
ERROR HY000: Can't open shared library '.so'
|
|
INSTALL PLUGIN DEALLOCATE SONAME 'x';
|
|
ERROR HY000: Can't open shared library 'x.so'
|
|
INSTALL PLUGIN DEALLOCATE SONAME 'xx';
|
|
ERROR HY000: Can't open shared library 'xx.so'
|
|
# End of 10.2 tests
|
|
#
|
|
# MDEV-16294: INSTALL PLUGIN IF NOT EXISTS / UNINSTALL PLUGIN IF EXISTS
|
|
#
|
|
# INSTALL IF NOT EXISTS PLUGIN name SONAME library /
|
|
# UNINSTALL IF EXISTS PLUGIN|SONAME name
|
|
#
|
|
select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%';
|
|
PLUGIN_NAME PLUGIN_STATUS PLUGIN_TYPE
|
|
INSTALL PLUGIN IF NOT EXISTS example SONAME 'ha_example';
|
|
select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%';
|
|
PLUGIN_NAME PLUGIN_STATUS PLUGIN_TYPE
|
|
EXAMPLE ACTIVE STORAGE ENGINE
|
|
INSTALL PLUGIN example SONAME 'ha_example';
|
|
ERROR HY000: Plugin 'example' already installed
|
|
INSTALL PLUGIN IF NOT EXISTS example SONAME 'ha_example';
|
|
Warnings:
|
|
Note 1968 Plugin 'example' already installed
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Note 1968 Plugin 'example' already installed
|
|
UNINSTALL PLUGIN IF EXISTS example;
|
|
select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%';
|
|
PLUGIN_NAME PLUGIN_STATUS PLUGIN_TYPE
|
|
UNINSTALL PLUGIN IF EXISTS example;
|
|
Warnings:
|
|
Note 1305 PLUGIN example does not exist
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Note 1305 PLUGIN example does not exist
|
|
UNINSTALL PLUGIN example;
|
|
ERROR 42000: PLUGIN example does not exist
|
|
INSTALL SONAME 'ha_example';
|
|
select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%';
|
|
PLUGIN_NAME PLUGIN_STATUS PLUGIN_TYPE
|
|
EXAMPLE ACTIVE STORAGE ENGINE
|
|
UNUSABLE ACTIVE DAEMON
|
|
UNINSTALL SONAME IF EXISTS 'ha_example';
|
|
UNINSTALL SONAME IF EXISTS 'ha_example';
|
|
Warnings:
|
|
Note 1305 SONAME ha_example.so does not exist
|
|
SHOW WARNINGS;
|
|
Level Code Message
|
|
Note 1305 SONAME ha_example.so does not exist
|
|
select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%';
|
|
PLUGIN_NAME PLUGIN_STATUS PLUGIN_TYPE
|
|
UNINSTALL SONAME 'ha_example';
|
|
ERROR 42000: SONAME ha_example.so does not exist
|
|
#
|
|
# Make sure temporary tables maintain plugin references properly
|
|
#
|
|
INSTALL PLUGIN example SONAME 'ha_example';
|
|
CREATE TEMPORARY TABLE t1(a INT) ENGINE=example;
|
|
UNINSTALL PLUGIN example;
|
|
Warnings:
|
|
Warning 1620 Plugin is busy and will be uninstalled on shutdown
|
|
INSTALL PLUGIN example SONAME 'ha_example';
|
|
ERROR HY000: Plugin 'example' already installed
|
|
DROP TABLE t1;
|
|
INSTALL PLUGIN example SONAME 'ha_example';
|
|
CREATE TEMPORARY TABLE t1(a INT) ENGINE=example;
|
|
DROP TABLE t1;
|
|
UNINSTALL PLUGIN example;
|
|
# End of 10.4 tests
|