mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
73be27c07f
There was no error thrown when creating a table with a virtual table computed by an expression returning a row. This caused a crash when inserting into the table. Removed periods at the end of the error messages for virtual columns. Adjusted output in test result files accordingly.
125 lines
4.2 KiB
Text
125 lines
4.2 KiB
Text
CREATE TABLE t1(a int) ENGINE=EXAMPLE;
|
|
Warnings:
|
|
Warning 1286 Unknown table engine 'EXAMPLE'
|
|
Warning 1266 Using storage engine MyISAM for table 't1'
|
|
DROP TABLE t1;
|
|
INSTALL PLUGIN example SONAME 'ha_example.so';
|
|
INSTALL PLUGIN EXAMPLE SONAME 'ha_example.so';
|
|
ERROR HY000: Function 'EXAMPLE' already exists
|
|
UNINSTALL PLUGIN example;
|
|
INSTALL PLUGIN example SONAME 'ha_example.so';
|
|
CREATE TABLE t1(a int) ENGINE=EXAMPLE;
|
|
SELECT * FROM t1;
|
|
a
|
|
DROP TABLE t1;
|
|
set global example_ulong_var=500;
|
|
set global example_enum_var= e1;
|
|
show status like 'example%';
|
|
Variable_name Value
|
|
example_func_example enum_var is 0, ulong_var is 500, really
|
|
show variables like 'example%';
|
|
Variable_name Value
|
|
example_enum_var e1
|
|
example_ulong_var 500
|
|
UNINSTALL PLUGIN example;
|
|
UNINSTALL PLUGIN EXAMPLE;
|
|
ERROR 42000: PLUGIN EXAMPLE does not exist
|
|
UNINSTALL PLUGIN non_exist;
|
|
ERROR 42000: PLUGIN non_exist 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.so';
|
|
SET GLOBAL example_enum_var= e1;
|
|
SET GLOBAL example_enum_var= e2;
|
|
SET GLOBAL example_enum_var= impossible;
|
|
ERROR 42000: Variable 'enum_var' can't be set to the value of 'impossible'
|
|
UNINSTALL PLUGIN example;
|
|
INSTALL PLUGIN example SONAME 'ha_example.so';
|
|
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 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 '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 HY000: Variable 'old' is a read only variable
|
|
#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) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS;
|
|
Warnings:
|
|
Warning 1652 Incorrect value '10000000000000000000' for option 'ULL'
|
|
Warning 1652 Incorrect value 'ttt' for option 'one_or_two'
|
|
Warning 1652 Incorrect value 'SSS' for option 'YESNO'
|
|
show create table t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) DEFAULT NULL
|
|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `ULL`=10000000000000000000 `one_or_two`='ttt' `YESNO`=SSS
|
|
#alter table
|
|
alter table t1 ULL=10000000;
|
|
show create table t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` 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';
|
|
show create table t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) DEFAULT NULL `complex`='c,c,c'
|
|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1 `one_or_two`='ttt' `YESNO`=SSS `ULL`=10000000
|
|
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
|
|
ALTER TABLE t1 ULL=DEFAULT;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`a` int(11) DEFAULT NULL
|
|
) ENGINE=EXAMPLE DEFAULT CHARSET=latin1
|
|
DROP TABLE t1;
|
|
SET @@SQL_MODE=@OLD_SQL_MODE;
|
|
select 1;
|
|
1
|
|
1
|
|
UNINSTALL PLUGIN example;
|