Merge pull request from GitHub pr175
This commit is contained in:
committed by
wangzelin.wzl
parent
99f2835249
commit
58f7fb882e
151
test/mysql_test/test_suite/expr/t/expr_export_set.test
Normal file
151
test/mysql_test/test_suite/expr/t/expr_export_set.test
Normal file
@ -0,0 +1,151 @@
|
||||
--disable_query_log
|
||||
set @@session.explicit_defaults_for_timestamp=off;
|
||||
--enable_query_log
|
||||
#/--disableabortonerror/
|
||||
#/test for export_set function in ob_expr_export_set.cpp/
|
||||
--enable_abort_on_error
|
||||
--echo ================ expression export_set ================
|
||||
|
||||
# 基本检查
|
||||
select export_set(0,"Y","N","-",5);
|
||||
select export_set(7,"Y","N","-",5);
|
||||
select export_set(11,"Y","N","-",5);
|
||||
select export_set(20,"Y","N","-",5);
|
||||
select export_set(9,"","","-",5);
|
||||
select export_set(9,"Y","N","-",5);
|
||||
select export_set(9,"左","右","-",5);
|
||||
select export_set(9,"上","下","-",5);
|
||||
select export_set(5,"Y","N",".",5);
|
||||
select export_set(5,"Y","N","=",5);
|
||||
select export_set(5,"Y","N","????????",5);
|
||||
select export_set(100,"Y","N",".",3);
|
||||
select export_set(100,"Y","N",".",5);
|
||||
select export_set(100,"Y","N",".",7);
|
||||
select export_set(100,"Y","N",".",10);
|
||||
|
||||
# 参数NULL检查
|
||||
select export_set(null,"Y","N",".",5);
|
||||
select export_set(0,"Y","N",".",5);
|
||||
select export_set(5,null,"N",".",5);
|
||||
select export_set(5,'',"N",".",5);
|
||||
select export_set(5,"Y",null,".",5);
|
||||
select export_set(5,"Y",'',".",5);
|
||||
select export_set(5,"Y","N",null,5);
|
||||
select export_set(5,"Y","N",'',5);
|
||||
select export_set(5,"Y","N",".",null);
|
||||
select export_set(5,"Y","N",".",0);
|
||||
select export_set(55555555555555,"YY","NN",".",0);
|
||||
select export_set(55555555555555,"YY","NN",".......",0);
|
||||
select export_set(100,'',1);
|
||||
select export_set(100,1,'');
|
||||
select export_set(100,1,0,'');
|
||||
select export_set(1000,'',1);
|
||||
select export_set(1000,1,'');
|
||||
select export_set(1000,1,0,'');
|
||||
|
||||
# 默认参数检查
|
||||
select export_set(8,"Y","N");
|
||||
select export_set(88,"Y","N");
|
||||
select export_set(888,"Y","N");
|
||||
select export_set(8888,"Y","N");
|
||||
select export_set(8,"1","0");
|
||||
select export_set(8,"X","Y");
|
||||
select export_set(8,"Y","N",'+');
|
||||
select export_set(8,"1","0",'*');
|
||||
select export_set(8,"X","Y",'*');
|
||||
|
||||
# 参数类型不同
|
||||
select export_set(7,1,0,"-",5);
|
||||
select export_set(7,11,00,"-",5);
|
||||
select export_set(7,111,000,"-",5);
|
||||
select export_set(7,111,000,5,5);
|
||||
select export_set(true,1,0);
|
||||
select export_set(true,"1","0");
|
||||
select export_set(false,1,0);
|
||||
select export_set(false,"1","0");
|
||||
select export_set(1.4,1,0);
|
||||
select export_set(2.4,1,0);
|
||||
select export_set(1.4,"y","n");
|
||||
select export_set(2.4,"y","n");
|
||||
|
||||
# 边界检查
|
||||
# 超过uint64的上界,int64的下界,ob对溢出的处理和mysql不同,这是mysql的bug,不兼容
|
||||
# 目前保证-9223372036854775808到18446744073709551615与mysql兼容
|
||||
# select export_set(1111111111111111111111111111111111111111111111111111,"Y","N");
|
||||
select export_set(9223372036854775808,"Y","N");
|
||||
select export_set(9223372036854775809,"Y","N");
|
||||
select export_set(-9223372036854775808,"Y","N");
|
||||
select export_set(18446744073709551615,"Y","N");
|
||||
select export_set(9223372036854775808,"Y","N",",",92233720368547758080000000000);
|
||||
select export_set(9223372036854775808,"Y","N",",",9223372036854775808);
|
||||
select export_set(9223372036854775809,"Y","N",",",9223372036854775809);
|
||||
select export_set(9223372036854775809,"Y","N",",",9223372036854775809000000000000);
|
||||
select export_set(-9223372036854775808,"Y","N",",",-9223372036854775808);
|
||||
select export_set(-9223372036854775808,"Y","N",",",-9223372036854775808000000000);
|
||||
select export_set(18446744073709551615,"Y","N",",",18446744073709551615);
|
||||
select export_set(18446744073709551615,"Y","N",",",1844674407370955161500000000000);
|
||||
|
||||
# 参数错误检查
|
||||
--error 1582
|
||||
select export_set();
|
||||
--error 1582
|
||||
select export_set(1);
|
||||
--error 1582
|
||||
select export_set(1,2);
|
||||
--error 1582
|
||||
select export_set("");
|
||||
--error 1582
|
||||
select export_set("","");
|
||||
--error 1582
|
||||
select export_set(5,5);
|
||||
--error 1054
|
||||
select export_set(a,2,3);
|
||||
--error 1054
|
||||
select export_set(1,2,3,a);
|
||||
--error 1054
|
||||
select export_set(1,2,3,4,a);
|
||||
|
||||
# 用表数据做参数
|
||||
--disable_warnings
|
||||
drop table if exists test;
|
||||
--enable_warnings
|
||||
create table test(c1 int, c2 varchar(20), c3 varchar(20), c4 varchar(20), c5 int);
|
||||
insert into test values(11,"Y","N",",",10);
|
||||
insert into test values(null,"Y","N",",",10);
|
||||
insert into test values(11,null,"N",",",10);
|
||||
insert into test values(11,"Y",null,",",10);
|
||||
insert into test values(11,"Y","N",null,10);
|
||||
insert into test values(11,"Y","N",",",null);
|
||||
insert into test values(null,null,null,null,null);
|
||||
select export_set(c1,c2,c3,c4,c5) from test;
|
||||
select export_set(c1,c2,c3,c4) from test;
|
||||
select export_set(c1,c2,c3) from test;
|
||||
insert into test values(100000,"+","-",",",1000000);
|
||||
insert into test values(55555555,"+","-",",",100000);
|
||||
insert into test values(7777777,"+","-",",",10000);
|
||||
select export_set(c1,c2,c3,c4,5) from test;
|
||||
select export_set(c1,c2,c3,'??',5) from test;
|
||||
select export_set(c1,c2,c3) from test;
|
||||
--error 1582
|
||||
select export_set(c1) from test;
|
||||
--error 1582
|
||||
select export_set(c1,c2) from test;
|
||||
--error 1582
|
||||
select export_set() from test;
|
||||
|
||||
drop table test;
|
||||
|
||||
# ctas cases
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1 as select export_set(0,"Y","N","-",5);
|
||||
desc t1;
|
||||
drop table t1;
|
||||
create table t1 as select export_set(99,"YYY","NX","---",77);
|
||||
desc t1;
|
||||
drop table t1;
|
||||
create table t1 as select export_set(99,"1","11","111",77);
|
||||
desc t1;
|
||||
drop table t1;
|
||||
|
||||
Reference in New Issue
Block a user