You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
268 lines
9.5 KiB
268 lines
9.5 KiB
select interval(55,10,20,30,40,50,60,70,80,90,100),interval(3,1,1+1,1+1+1+1),field("IBM","NCA","ICL","SUN","IBM","DIGITAL"),field("A","B","C"),elt(2,"ONE","TWO","THREE"),interval(0,1,2,3,4),elt(1,1,2,3)|0,elt(1,1.1,1.2,1.3)+0;
|
|
interval(55,10,20,30,40,50,60,70,80,90,100) interval(3,1,1+1,1+1+1+1) field("IBM","NCA","ICL","SUN","IBM","DIGITAL") field("A","B","C") elt(2,"ONE","TWO","THREE") interval(0,1,2,3,4) elt(1,1,2,3)|0 elt(1,1.1,1.2,1.3)+0
|
|
5 2 4 0 TWO 0 1 1.1
|
|
explain select INTERVAL(55,10,20,30,40,50,60,70,80,90,100),interval(3,1,1+1,1+1+1+1),field("IBM","NCA","ICL","SUN","IBM","DIGITAL"),field("A","B","C"),elt(2,"ONE","TWO","THREE"),interval(0,1,2,3,4),elt(1,1,2,3)|0,elt(1,1.1,1.2,1.3)+0;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select interval(55,10,20,30,40,50,60,70,80,90,100) AS `INTERVAL(55,10,20,30,40,50,60,70,80,90,100)`,interval(3,1,(1 + 1),(((1 + 1) + 1) + 1)) AS `interval(3,1,1+1,1+1+1+1)`,field('IBM','NCA','ICL','SUN','IBM','DIGITAL') AS `field("IBM","NCA","ICL","SUN","IBM","DIGITAL")`,field('A','B','C') AS `field("A","B","C")`,elt(2,'ONE','TWO','THREE') AS `elt(2,"ONE","TWO","THREE")`,interval(0,1,2,3,4) AS `interval(0,1,2,3,4)`,(elt(1,1,2,3) | 0) AS `elt(1,1,2,3)|0`,(elt(1,1.1,1.2,1.3) + 0) AS `elt(1,1.1,1.2,1.3)+0`
|
|
SELECT INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56);
|
|
INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56)
|
|
1
|
|
SELECT INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56, 77);
|
|
INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56, 77)
|
|
1
|
|
select find_in_set("b","a,b,c"),find_in_set("c","a,b,c"),find_in_set("dd","a,bbb,dd"),find_in_set("bbb","a,bbb,dd");
|
|
find_in_set("b","a,b,c") find_in_set("c","a,b,c") find_in_set("dd","a,bbb,dd") find_in_set("bbb","a,bbb,dd")
|
|
2 3 3 2
|
|
select find_in_set("d","a,b,c"),find_in_set("dd","a,bbb,d"),find_in_set("bb","a,bbb,dd");
|
|
find_in_set("d","a,b,c") find_in_set("dd","a,bbb,d") find_in_set("bb","a,bbb,dd")
|
|
0 0 0
|
|
select make_set(0,'a','b','c'),make_set(-1,'a','b','c'),make_set(1,'a','b','c'),make_set(2,'a','b','c'),make_set(1+2,concat('a','b'),'c');
|
|
make_set(0,'a','b','c') make_set(-1,'a','b','c') make_set(1,'a','b','c') make_set(2,'a','b','c') make_set(1+2,concat('a','b'),'c')
|
|
a,b,c a b ab,c
|
|
select make_set(NULL,'a','b','c'),make_set(1|4,'a',NULL,'c'),make_set(1+2,'a',NULL,'c');
|
|
make_set(NULL,'a','b','c') make_set(1|4,'a',NULL,'c') make_set(1+2,'a',NULL,'c')
|
|
NULL a,c a
|
|
select export_set(9,"Y","N","-",5),export_set(9,"Y","N"),export_set(9,"Y","N","");
|
|
export_set(9,"Y","N","-",5) export_set(9,"Y","N") export_set(9,"Y","N","")
|
|
Y-N-N-Y-N Y,N,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N YNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
|
|
select elt(2,1),field(NULL,"a","b","c");
|
|
elt(2,1) field(NULL,"a","b","c")
|
|
NULL 0
|
|
select field("b","a",NULL),field(1,0,NULL)+0,field(1.0,0.0,NULL)+0.0,field(1.0e1,0.0e1,NULL)+0.0e1;
|
|
field("b","a",NULL) field(1,0,NULL)+0 field(1.0,0.0,NULL)+0.0 field(1.0e1,0.0e1,NULL)+0.0e1
|
|
0 0 0.0 0
|
|
select field(NULL,"a",NULL),field(NULL,0,NULL)+0,field(NULL,0.0,NULL)+0.0,field(NULL,0.0e1,NULL)+0.0e1;
|
|
field(NULL,"a",NULL) field(NULL,0,NULL)+0 field(NULL,0.0,NULL)+0.0 field(NULL,0.0e1,NULL)+0.0e1
|
|
0 0 0.0 0
|
|
select find_in_set("","a,b,c"),find_in_set("","a,b,c,"),find_in_set("",",a,b,c");
|
|
find_in_set("","a,b,c") find_in_set("","a,b,c,") find_in_set("",",a,b,c")
|
|
0 4 1
|
|
select find_in_set("abc","abc"),find_in_set("ab","abc"),find_in_set("abcd","abc");
|
|
find_in_set("abc","abc") find_in_set("ab","abc") find_in_set("abcd","abc")
|
|
1 0 0
|
|
select interval(null, 1, 10, 100);
|
|
interval(null, 1, 10, 100)
|
|
-1
|
|
drop table if exists t1,t2;
|
|
create table t1 (id int(10) not null unique);
|
|
Warnings:
|
|
Warning 1681 Integer display width is deprecated and will be removed in a future release.
|
|
create table t2 (id int(10) not null primary key, val int(10) not null);
|
|
Warnings:
|
|
Warning 1681 Integer display width is deprecated and will be removed in a future release.
|
|
Warning 1681 Integer display width is deprecated and will be removed in a future release.
|
|
insert into t1 values (1),(2),(4);
|
|
insert into t2 values (1,1),(2,1),(3,1),(4,2);
|
|
select one.id, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id;
|
|
id elt(two.val,'one','two')
|
|
1 one
|
|
2 one
|
|
4 two
|
|
select one.id, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id order by one.id;
|
|
id elt(two.val,'one','two')
|
|
1 one
|
|
2 one
|
|
4 two
|
|
drop table t1,t2;
|
|
select find_in_set(binary 'a',binary 'A,B,C');
|
|
find_in_set(binary 'a',binary 'A,B,C')
|
|
0
|
|
select find_in_set('a',binary 'A,B,C');
|
|
find_in_set('a',binary 'A,B,C')
|
|
0
|
|
select find_in_set(binary 'a', 'A,B,C');
|
|
find_in_set(binary 'a', 'A,B,C')
|
|
0
|
|
select find_in_set('1','3,1,');
|
|
find_in_set('1','3,1,')
|
|
2
|
|
End of 4.1 tests
|
|
SELECT INTERVAL(0.0, NULL);
|
|
INTERVAL(0.0, NULL)
|
|
1
|
|
SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL));
|
|
INTERVAL(0.0, CAST(NULL AS DECIMAL))
|
|
1
|
|
SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL));
|
|
INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL))
|
|
1
|
|
SELECT INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
|
INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
|
|
8
|
|
SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
|
|
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
|
|
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL));
|
|
INTERVAL(0.0, CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
|
|
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),
|
|
CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL))
|
|
8
|
|
SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
|
|
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
|
|
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
|
|
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL));
|
|
INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
|
|
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
|
|
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL),
|
|
CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL))
|
|
8
|
|
End of 5.0 tests
|
|
drop table if exists t1;
|
|
create table t1 (f1 set('test1','test2','test3') character set utf8 default null)
|
|
default charset=latin1;
|
|
Warnings:
|
|
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
|
insert into t1 values (''),(null),(null),(''),(''),('');
|
|
select find_in_set(f1,f1) as a from t1,(select find_in_set(f1,f1) as b from t1) a;
|
|
a
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
drop table t1;
|
|
CREATE TABLE t1( a SET('a', 'b', 'c') );
|
|
CREATE TABLE t2( a SET('a', 'b', 'c') );
|
|
INSERT IGNORE INTO t1 VALUES ('d');
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'a' at row 1
|
|
INSERT INTO t2 VALUES ('');
|
|
SELECT CONVERT( a USING latin1 ) FROM t1;
|
|
CONVERT( a USING latin1 )
|
|
|
|
SELECT CONVERT( a USING latin1 ) FROM t2;
|
|
CONVERT( a USING latin1 )
|
|
|
|
DROP TABLE t1, t2;
|
|
#
|
|
# BUG#59405: FIND_IN_SET won't work normaly after upgrade from 5.1 to 5.5
|
|
#
|
|
CREATE TABLE t1(days set('1','2','3','4','5','6','7'));
|
|
INSERT INTO t1 VALUES('1,2,3,4,5,6,7'), (NULL), ('1,2,3,4,5,6,7');
|
|
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(DAYOFWEEK(CURRENT_DATE()), days);
|
|
days
|
|
1,2,3,4,5,6,7
|
|
1,2,3,4,5,6,7
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(DAYOFWEEK(CURRENT_DATE()), days) IS UNKNOWN;
|
|
days
|
|
NULL
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(DAYOFWEEK(CURRENT_DATE()), NULL);
|
|
days
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(DAYOFWEEK(CURRENT_DATE()), NULL) IS UNKNOWN;
|
|
days
|
|
1,2,3,4,5,6,7
|
|
NULL
|
|
1,2,3,4,5,6,7
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(7, days);
|
|
days
|
|
1,2,3,4,5,6,7
|
|
1,2,3,4,5,6,7
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(8, days);
|
|
days
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(NULL, days);
|
|
days
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(NULL, days) IS UNKNOWN;
|
|
days
|
|
1,2,3,4,5,6,7
|
|
NULL
|
|
1,2,3,4,5,6,7
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(NULL, NULL);
|
|
days
|
|
SELECT * FROM t1 WHERE FIND_IN_SET(NULL, NULL) IS UNKNOWN;
|
|
days
|
|
1,2,3,4,5,6,7
|
|
NULL
|
|
1,2,3,4,5,6,7
|
|
|
|
DROP TABLE t1;
|
|
#
|
|
# BUG#12211480: GROUP BY MAKE_SET WITH EMPTY SET VALUES CRASH IN MY_HASH_SORT_SIMPLE
|
|
#
|
|
CREATE TABLE t1 (a INT, b CHAR NOT NULL);
|
|
INSERT INTO t1 VALUES (NULL,'1'),(NULL,'1');
|
|
SELECT COUNT(*) FROM t1 GROUP BY MAKE_SET(a,b);
|
|
COUNT(*)
|
|
2
|
|
DROP TABLE t1;
|
|
# End of test BUG#12211480
|
|
#
|
|
# Bug#12677197 MAKE_SET() AND MY_EMPTY_STRING BUGS CAUSE CRASHING
|
|
#
|
|
do
|
|
nullif( ( rtrim( make_set((cast(('%S') as unsigned)),
|
|
(point((0xaf),(''))))
|
|
)
|
|
), (''))
|
|
;
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect INTEGER value: '%S'
|
|
do
|
|
dayofmonth( ( not( trim( trailing( convert((''), binary(4)))
|
|
from( make_set( ('>>'), ('`'))))
|
|
)))
|
|
;
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect INTEGER value: '>>'
|
|
Warning 1292 Incorrect datetime value: '1'
|
|
do quote(make_set((''), (cast(('-2147483649.1') as binary(513)))));
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect INTEGER value: ''
|
|
do
|
|
trim( both(-8388607)
|
|
from( make_set( ( extract( minute_second from
|
|
( str_to_date((rpad(1.0,4,1)), ('')))
|
|
)
|
|
),
|
|
( char((connection_id()) using macce)))
|
|
)
|
|
)
|
|
;
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect date value: '1.01'
|
|
Warning 1411 Incorrect datetime value: '1.01' for function str_to_date
|
|
# Bug#21547779 Assertion failed: select_lex->leaf_table_count == 0
|
|
CREATE TABLE t(a INTEGER) engine=innodb;
|
|
SELECT 1 IN (SELECT MAKE_SET(-1, 1, (SELECT 1 FROM t)) FROM t);
|
|
1 IN (SELECT MAKE_SET(-1, 1, (SELECT 1 FROM t)) FROM t)
|
|
0
|
|
DROP TABLE t;
|
|
#
|
|
# Bug#27751699 UBSAN: MY_STRNNCOLL_MB_BIN ,
|
|
# NULL POINTER PASSED AS ARGUMENT
|
|
#
|
|
select find_in_set(json_unquote(json_set('{}','$','')),1);
|
|
find_in_set(json_unquote(json_set('{}','$','')),1)
|
|
0
|
|
|