1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434
|
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
|