mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge
This commit is contained in:
@ -160,3 +160,20 @@ t1 CREATE TABLE `t1` (
|
||||
`COALESCE('a' COLLATE latin1_bin,'b')` varchar(1) character set latin1 collate latin1_bin NOT NULL default ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (EMPNUM INT);
|
||||
INSERT INTO t1 VALUES (0), (2);
|
||||
CREATE TABLE t2 (EMPNUM DECIMAL (4, 2));
|
||||
INSERT INTO t2 VALUES (0.0), (9.0);
|
||||
SELECT COALESCE(t2.EMPNUM,t1.EMPNUM) AS CEMPNUM,
|
||||
t1.EMPNUM AS EMPMUM1, t2.EMPNUM AS EMPNUM2
|
||||
FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
|
||||
CEMPNUM EMPMUM1 EMPNUM2
|
||||
0.00 0 0.00
|
||||
2.00 2 NULL
|
||||
SELECT IFNULL(t2.EMPNUM,t1.EMPNUM) AS CEMPNUM,
|
||||
t1.EMPNUM AS EMPMUM1, t2.EMPNUM AS EMPNUM2
|
||||
FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
|
||||
CEMPNUM EMPMUM1 EMPNUM2
|
||||
0.00 0 0.00
|
||||
2.00 2 NULL
|
||||
DROP TABLE t1,t2;
|
||||
|
@ -888,3 +888,6 @@ NULL
|
||||
select ifnull(NULL, _utf8'string');
|
||||
ifnull(NULL, _utf8'string')
|
||||
string
|
||||
create table t1 (a varchar(255)) default character set utf8;
|
||||
insert into t1 values (1.0);
|
||||
drop table t1;
|
||||
|
@ -91,3 +91,20 @@ drop table t1;
|
||||
SELECT NULLIF(5,5) IS NULL, NULLIF(5,5) IS NOT NULL;
|
||||
NULLIF(5,5) IS NULL NULLIF(5,5) IS NOT NULL
|
||||
1 0
|
||||
CREATE TABLE `t1` (
|
||||
`id` int(11) NOT NULL ,
|
||||
`date` int(10) default NULL,
|
||||
`text` varchar(32) NOT NULL
|
||||
);
|
||||
INSERT INTO t1 VALUES (1,1110000000,'Day 1'),(2,1111000000,'Day 2'),(3,1112000000,'Day 3');
|
||||
SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord ASC;
|
||||
id date_ord text
|
||||
1 05-03-2005 Day 1
|
||||
2 16-03-2005 Day 2
|
||||
3 28-03-2005 Day 3
|
||||
SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord DESC;
|
||||
id date_ord text
|
||||
3 28-03-2005 Day 3
|
||||
2 16-03-2005 Day 2
|
||||
1 05-03-2005 Day 1
|
||||
DROP TABLE t1;
|
||||
|
@ -688,3 +688,6 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select timestamp_diff(WEEK,_latin1'2001-02-01',_latin1'2001-05-01') AS `a1`,timestamp_diff(SECOND_FRAC,_latin1'2001-02-01 12:59:59.120000',_latin1'2001-05-01 12:58:58.119999') AS `a2`
|
||||
select time_format('100:00:00', '%H %k %h %I %l');
|
||||
time_format('100:00:00', '%H %k %h %I %l')
|
||||
100 100 04 04 4
|
||||
|
@ -251,6 +251,213 @@ auto
|
||||
1
|
||||
3
|
||||
4
|
||||
select auto from t1 where
|
||||
(string between "aaaa" and "cccc") and
|
||||
(vstring between "aaaa" and "cccc") and
|
||||
(bin between 0xAAAA and 0xCCCC) and
|
||||
(vbin between 0xAAAA and 0xCCCC) and
|
||||
(tiny between -3 and -1) and
|
||||
(short between -3 and -1) and
|
||||
(medium between -3 and -1) and
|
||||
(long_int between -3 and -1) and
|
||||
(longlong between -3 and -1) and
|
||||
(utiny between 1 and 3) and
|
||||
(ushort between 1 and 3) and
|
||||
(umedium between 1 and 3) and
|
||||
(ulong between 1 and 3) and
|
||||
(ulonglong between 1 and 3) and
|
||||
(bits between b'001' and b'011') and
|
||||
(options between 'one' and 'three') and
|
||||
(flags between 'one' and 'one,two,three') and
|
||||
(date_field between '1901-01-01' and '1903-03-03') and
|
||||
(year_field between '1901' and '1903') and
|
||||
(time_field between '01:01:01' and '03:03:03') and
|
||||
(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
auto
|
||||
1
|
||||
3
|
||||
select auto from t1 where
|
||||
("aaaa" between string and string) and
|
||||
("aaaa" between vstring and vstring) and
|
||||
(0xAAAA between bin and bin) and
|
||||
(0xAAAA between vbin and vbin) and
|
||||
(-1 between tiny and tiny) and
|
||||
(-1 between short and short) and
|
||||
(-1 between medium and medium) and
|
||||
(-1 between long_int and long_int) and
|
||||
(-1 between longlong and longlong) and
|
||||
(1 between utiny and utiny) and
|
||||
(1 between ushort and ushort) and
|
||||
(1 between umedium and umedium) and
|
||||
(1 between ulong and ulong) and
|
||||
(1 between ulonglong and ulonglong) and
|
||||
(b'001' between bits and bits) and
|
||||
('one' between options and options) and
|
||||
('one' between flags and flags) and
|
||||
('1901-01-01' between date_field and date_field) and
|
||||
('1901' between year_field and year_field) and
|
||||
('01:01:01' between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' between date_time and date_time)
|
||||
order by auto;
|
||||
auto
|
||||
1
|
||||
select auto from t1 where
|
||||
(string not between "aaaa" and "cccc") and
|
||||
(vstring not between "aaaa" and "cccc") and
|
||||
(bin not between 0xAAAA and 0xCCCC) and
|
||||
(vbin not between 0xAAAA and 0xCCCC) and
|
||||
(tiny not between -3 and -1) and
|
||||
(short not between -3 and -1) and
|
||||
(medium not between -3 and -1) and
|
||||
(long_int not between -3 and -1) and
|
||||
(longlong not between -3 and -1) and
|
||||
(utiny not between 1 and 3) and
|
||||
(ushort not between 1 and 3) and
|
||||
(umedium not between 1 and 3) and
|
||||
(ulong not between 1 and 3) and
|
||||
(ulonglong not between 1 and 3) and
|
||||
(bits not between b'001' and b'011') and
|
||||
(options not between 'one' and 'three') and
|
||||
(flags not between 'one' and 'one,two,three') and
|
||||
(date_field not between '1901-01-01' and '1903-03-03') and
|
||||
(year_field not between '1901' and '1903') and
|
||||
(time_field not between '01:01:01' and '03:03:03') and
|
||||
(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
auto
|
||||
4
|
||||
select auto from t1 where
|
||||
("aaaa" not between string and string) and
|
||||
("aaaa" not between vstring and vstring) and
|
||||
(0xAAAA not between bin and bin) and
|
||||
(0xAAAA not between vbin and vbin) and
|
||||
(-1 not between tiny and tiny) and
|
||||
(-1 not between short and short) and
|
||||
(-1 not between medium and medium) and
|
||||
(-1 not between long_int and long_int) and
|
||||
(-1 not between longlong and longlong) and
|
||||
(1 not between utiny and utiny) and
|
||||
(1 not between ushort and ushort) and
|
||||
(1 not between umedium and umedium) and
|
||||
(1 not between ulong and ulong) and
|
||||
(1 not between ulonglong and ulonglong) and
|
||||
(b'001' not between bits and bits) and
|
||||
('one' not between options and options) and
|
||||
('one' not between flags and flags) and
|
||||
('1901-01-01' not between date_field and date_field) and
|
||||
('1901' not between year_field and year_field) and
|
||||
('01:01:01' not between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' not between date_time and date_time)
|
||||
order by auto;
|
||||
auto
|
||||
2
|
||||
3
|
||||
4
|
||||
select auto from t1 where
|
||||
string in("aaaa","cccc") and
|
||||
vstring in("aaaa","cccc") and
|
||||
bin in(0xAAAA,0xCCCC) and
|
||||
vbin in(0xAAAA,0xCCCC) and
|
||||
tiny in(-1,-3) and
|
||||
short in(-1,-3) and
|
||||
medium in(-1,-3) and
|
||||
long_int in(-1,-3) and
|
||||
longlong in(-1,-3) and
|
||||
utiny in(1,3) and
|
||||
ushort in(1,3) and
|
||||
umedium in(1,3) and
|
||||
ulong in(1,3) and
|
||||
ulonglong in(1,3) and
|
||||
bits in(b'001',b'011') and
|
||||
options in('one','three') and
|
||||
flags in('one','one,two,three') and
|
||||
date_field in('1901-01-01','1903-03-03') and
|
||||
year_field in('1901','1903') and
|
||||
time_field in('01:01:01','03:03:03') and
|
||||
date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
auto
|
||||
1
|
||||
3
|
||||
select auto from t1 where
|
||||
"aaaa" in(string) and
|
||||
"aaaa" in(vstring) and
|
||||
0xAAAA in(bin) and
|
||||
0xAAAA in(vbin) and
|
||||
(-1 in(tiny)) and
|
||||
(-1 in(short)) and
|
||||
(-1 in(medium)) and
|
||||
(-1 in(long_int)) and
|
||||
(-1 in(longlong)) and
|
||||
1 in(utiny) and
|
||||
1 in(ushort) and
|
||||
1 in(umedium) and
|
||||
1 in(ulong) and
|
||||
1 in(ulonglong) and
|
||||
b'001' in(bits) and
|
||||
'one' in(options) and
|
||||
'one' in(flags) and
|
||||
'1901-01-01' in(date_field) and
|
||||
'1901' in(year_field) and
|
||||
'01:01:01' in(time_field) and
|
||||
'1901-01-01 01:01:01' in(date_time)
|
||||
order by auto;
|
||||
auto
|
||||
1
|
||||
select auto from t1 where
|
||||
string not in("aaaa","cccc") and
|
||||
vstring not in("aaaa","cccc") and
|
||||
bin not in(0xAAAA,0xCCCC) and
|
||||
vbin not in(0xAAAA,0xCCCC) and
|
||||
tiny not in(-1,-3) and
|
||||
short not in(-1,-3) and
|
||||
medium not in(-1,-3) and
|
||||
long_int not in(-1,-3) and
|
||||
longlong not in(-1,-3) and
|
||||
utiny not in(1,3) and
|
||||
ushort not in(1,3) and
|
||||
umedium not in(1,3) and
|
||||
ulong not in(1,3) and
|
||||
ulonglong not in(1,3) and
|
||||
bits not in(b'001',b'011') and
|
||||
options not in('one','three') and
|
||||
flags not in('one','one,two,three') and
|
||||
date_field not in('1901-01-01','1903-03-03') and
|
||||
year_field not in('1901','1903') and
|
||||
time_field not in('01:01:01','03:03:03') and
|
||||
date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
auto
|
||||
2
|
||||
4
|
||||
select auto from t1 where
|
||||
"aaaa" not in(string) and
|
||||
"aaaa" not in(vstring) and
|
||||
0xAAAA not in(bin) and
|
||||
0xAAAA not in(vbin) and
|
||||
(-1 not in(tiny)) and
|
||||
(-1 not in(short)) and
|
||||
(-1 not in(medium)) and
|
||||
(-1 not in(long_int)) and
|
||||
(-1 not in(longlong)) and
|
||||
1 not in(utiny) and
|
||||
1 not in(ushort) and
|
||||
1 not in(umedium) and
|
||||
1 not in(ulong) and
|
||||
1 not in(ulonglong) and
|
||||
b'001' not in(bits) and
|
||||
'one' not in(options) and
|
||||
'one' not in(flags) and
|
||||
'1901-01-01' not in(date_field) and
|
||||
'1901' not in(year_field) and
|
||||
'01:01:01' not in(time_field) and
|
||||
'1901-01-01 01:01:01' not in(date_time)
|
||||
order by auto;
|
||||
auto
|
||||
2
|
||||
3
|
||||
4
|
||||
select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
|
||||
pk1 attr1 attr2 attr3
|
||||
2 2 NULL NULL
|
||||
@ -1023,6 +1230,421 @@ auto
|
||||
1
|
||||
3
|
||||
4
|
||||
explain
|
||||
select auto from t1 where
|
||||
(string between "aaaa" and "cccc") and
|
||||
(vstring between "aaaa" and "cccc") and
|
||||
(bin between 0xAAAA and 0xCCCC) and
|
||||
(vbin between 0xAAAA and 0xCCCC) and
|
||||
(tiny between -3 and -1) and
|
||||
(short between -3 and -1) and
|
||||
(medium between -3 and -1) and
|
||||
(long_int between -3 and -1) and
|
||||
(longlong between -3 and -1) and
|
||||
(utiny between 1 and 3) and
|
||||
(ushort between 1 and 3) and
|
||||
(umedium between 1 and 3) and
|
||||
(ulong between 1 and 3) and
|
||||
(ulonglong between 1 and 3) and
|
||||
/* (bits between b'001' and b'011') and */
|
||||
(options between 'one' and 'three') and
|
||||
(flags between 'one' and 'one,two,three') and
|
||||
(date_field between '1901-01-01' and '1903-03-03') and
|
||||
(year_field between '1901' and '1903') and
|
||||
(time_field between '01:01:01' and '03:03:03') and
|
||||
(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range medium_index medium_index 3 NULL 10 Using where with pushed condition; Using filesort
|
||||
select auto from t1 where
|
||||
(string between "aaaa" and "cccc") and
|
||||
(vstring between "aaaa" and "cccc") and
|
||||
(bin between 0xAAAA and 0xCCCC) and
|
||||
(vbin between 0xAAAA and 0xCCCC) and
|
||||
(tiny between -3 and -1) and
|
||||
(short between -3 and -1) and
|
||||
(medium between -3 and -1) and
|
||||
(long_int between -3 and -1) and
|
||||
(longlong between -3 and -1) and
|
||||
(utiny between 1 and 3) and
|
||||
(ushort between 1 and 3) and
|
||||
(umedium between 1 and 3) and
|
||||
(ulong between 1 and 3) and
|
||||
(ulonglong between 1 and 3) and
|
||||
/* (bits between b'001' and b'011') and */
|
||||
(options between 'one' and 'three') and
|
||||
(flags between 'one' and 'one,two,three') and
|
||||
(date_field between '1901-01-01' and '1903-03-03') and
|
||||
(year_field between '1901' and '1903') and
|
||||
(time_field between '01:01:01' and '03:03:03') and
|
||||
(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
auto
|
||||
1
|
||||
3
|
||||
explain
|
||||
select auto from t1 where
|
||||
("aaaa" between string and string) and
|
||||
("aaaa" between vstring and vstring) and
|
||||
(0xAAAA between bin and bin) and
|
||||
(0xAAAA between vbin and vbin) and
|
||||
(-1 between tiny and tiny) and
|
||||
(-1 between short and short) and
|
||||
(-1 between medium and medium) and
|
||||
(-1 between long_int and long_int) and
|
||||
(-1 between longlong and longlong) and
|
||||
(1 between utiny and utiny) and
|
||||
(1 between ushort and ushort) and
|
||||
(1 between umedium and umedium) and
|
||||
(1 between ulong and ulong) and
|
||||
(1 between ulonglong and ulonglong) and
|
||||
/* (b'001' between bits and bits) and */
|
||||
('one' between options and options) and
|
||||
('one' between flags and flags) and
|
||||
('1901-01-01' between date_field and date_field) and
|
||||
('1901' between year_field and year_field) and
|
||||
('01:01:01' between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' between date_time and date_time)
|
||||
order by auto;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
|
||||
select auto from t1 where
|
||||
("aaaa" between string and string) and
|
||||
("aaaa" between vstring and vstring) and
|
||||
(0xAAAA between bin and bin) and
|
||||
(0xAAAA between vbin and vbin) and
|
||||
(-1 between tiny and tiny) and
|
||||
(-1 between short and short) and
|
||||
(-1 between medium and medium) and
|
||||
(-1 between long_int and long_int) and
|
||||
(-1 between longlong and longlong) and
|
||||
(1 between utiny and utiny) and
|
||||
(1 between ushort and ushort) and
|
||||
(1 between umedium and umedium) and
|
||||
(1 between ulong and ulong) and
|
||||
(1 between ulonglong and ulonglong) and
|
||||
/* (b'001' between bits and bits) and */
|
||||
('one' between options and options) and
|
||||
('one' between flags and flags) and
|
||||
('1901-01-01' between date_field and date_field) and
|
||||
('1901' between year_field and year_field) and
|
||||
('01:01:01' between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' between date_time and date_time)
|
||||
order by auto;
|
||||
auto
|
||||
1
|
||||
explain
|
||||
select auto from t1 where
|
||||
(string not between "aaaa" and "cccc") and
|
||||
(vstring not between "aaaa" and "cccc") and
|
||||
(bin not between 0xAAAA and 0xCCCC) and
|
||||
(vbin not between 0xAAAA and 0xCCCC) and
|
||||
(tiny not between -3 and -1) and
|
||||
(short not between -3 and -1) and
|
||||
(medium not between -3 and -1) and
|
||||
(long_int not between -3 and -1) and
|
||||
(longlong not between -3 and -1) and
|
||||
(utiny not between 1 and 3) and
|
||||
(ushort not between 1 and 3) and
|
||||
(umedium not between 1 and 3) and
|
||||
(ulong not between 1 and 3) and
|
||||
(ulonglong not between 1 and 3) and
|
||||
/* (bits not between b'001' and b'011') and */
|
||||
(options not between 'one' and 'three') and
|
||||
(flags not between 'one' and 'one,two,three') and
|
||||
(date_field not between '1901-01-01' and '1903-03-03') and
|
||||
(year_field not between '1901' and '1903') and
|
||||
(time_field not between '01:01:01' and '03:03:03') and
|
||||
(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range medium_index medium_index 3 NULL 20 Using where with pushed condition; Using filesort
|
||||
select auto from t1 where
|
||||
(string not between "aaaa" and "cccc") and
|
||||
(vstring not between "aaaa" and "cccc") and
|
||||
(bin not between 0xAAAA and 0xCCCC) and
|
||||
(vbin not between 0xAAAA and 0xCCCC) and
|
||||
(tiny not between -3 and -1) and
|
||||
(short not between -3 and -1) and
|
||||
(medium not between -3 and -1) and
|
||||
(long_int not between -3 and -1) and
|
||||
(longlong not between -3 and -1) and
|
||||
(utiny not between 1 and 3) and
|
||||
(ushort not between 1 and 3) and
|
||||
(umedium not between 1 and 3) and
|
||||
(ulong not between 1 and 3) and
|
||||
(ulonglong not between 1 and 3) and
|
||||
/* (bits not between b'001' and b'011') and */
|
||||
(options not between 'one' and 'three') and
|
||||
(flags not between 'one' and 'one,two,three') and
|
||||
(date_field not between '1901-01-01' and '1903-03-03') and
|
||||
(year_field not between '1901' and '1903') and
|
||||
(time_field not between '01:01:01' and '03:03:03') and
|
||||
(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
auto
|
||||
4
|
||||
explain
|
||||
select auto from t1 where
|
||||
("aaaa" not between string and string) and
|
||||
("aaaa" not between vstring and vstring) and
|
||||
(0xAAAA not between bin and bin) and
|
||||
(0xAAAA not between vbin and vbin) and
|
||||
(-1 not between tiny and tiny) and
|
||||
(-1 not between short and short) and
|
||||
(-1 not between medium and medium) and
|
||||
(-1 not between long_int and long_int) and
|
||||
(-1 not between longlong and longlong) and
|
||||
(1 not between utiny and utiny) and
|
||||
(1 not between ushort and ushort) and
|
||||
(1 not between umedium and umedium) and
|
||||
(1 not between ulong and ulong) and
|
||||
(1 not between ulonglong and ulonglong) and
|
||||
/* (b'001' not between bits and bits) and */
|
||||
('one' not between options and options) and
|
||||
('one' not between flags and flags) and
|
||||
('1901-01-01' not between date_field and date_field) and
|
||||
('1901' not between year_field and year_field) and
|
||||
('01:01:01' not between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' not between date_time and date_time)
|
||||
order by auto;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
|
||||
select auto from t1 where
|
||||
("aaaa" not between string and string) and
|
||||
("aaaa" not between vstring and vstring) and
|
||||
(0xAAAA not between bin and bin) and
|
||||
(0xAAAA not between vbin and vbin) and
|
||||
(-1 not between tiny and tiny) and
|
||||
(-1 not between short and short) and
|
||||
(-1 not between medium and medium) and
|
||||
(-1 not between long_int and long_int) and
|
||||
(-1 not between longlong and longlong) and
|
||||
(1 not between utiny and utiny) and
|
||||
(1 not between ushort and ushort) and
|
||||
(1 not between umedium and umedium) and
|
||||
(1 not between ulong and ulong) and
|
||||
(1 not between ulonglong and ulonglong) and
|
||||
/* (b'001' not between bits and bits) and */
|
||||
('one' not between options and options) and
|
||||
('one' not between flags and flags) and
|
||||
('1901-01-01' not between date_field and date_field) and
|
||||
('1901' not between year_field and year_field) and
|
||||
('01:01:01' not between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' not between date_time and date_time)
|
||||
order by auto;
|
||||
auto
|
||||
2
|
||||
3
|
||||
4
|
||||
explain
|
||||
select auto from t1 where
|
||||
string in("aaaa","cccc") and
|
||||
vstring in("aaaa","cccc") and
|
||||
bin in(0xAAAA,0xCCCC) and
|
||||
vbin in(0xAAAA,0xCCCC) and
|
||||
tiny in(-1,-3) and
|
||||
short in(-1,-3) and
|
||||
medium in(-1,-3) and
|
||||
long_int in(-1,-3) and
|
||||
longlong in(-1,-3) and
|
||||
utiny in(1,3) and
|
||||
ushort in(1,3) and
|
||||
umedium in(1,3) and
|
||||
ulong in(1,3) and
|
||||
ulonglong in(1,3) and
|
||||
/* bits in(b'001',b'011') and */
|
||||
options in('one','three') and
|
||||
flags in('one','one,two,three') and
|
||||
date_field in('1901-01-01','1903-03-03') and
|
||||
year_field in('1901','1903') and
|
||||
time_field in('01:01:01','03:03:03') and
|
||||
date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range medium_index medium_index 3 NULL 20 Using where with pushed condition; Using filesort
|
||||
select auto from t1 where
|
||||
string in("aaaa","cccc") and
|
||||
vstring in("aaaa","cccc") and
|
||||
bin in(0xAAAA,0xCCCC) and
|
||||
vbin in(0xAAAA,0xCCCC) and
|
||||
tiny in(-1,-3) and
|
||||
short in(-1,-3) and
|
||||
medium in(-1,-3) and
|
||||
long_int in(-1,-3) and
|
||||
longlong in(-1,-3) and
|
||||
utiny in(1,3) and
|
||||
ushort in(1,3) and
|
||||
umedium in(1,3) and
|
||||
ulong in(1,3) and
|
||||
ulonglong in(1,3) and
|
||||
/* bits in(b'001',b'011') and */
|
||||
options in('one','three') and
|
||||
flags in('one','one,two,three') and
|
||||
date_field in('1901-01-01','1903-03-03') and
|
||||
year_field in('1901','1903') and
|
||||
time_field in('01:01:01','03:03:03') and
|
||||
date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
auto
|
||||
1
|
||||
3
|
||||
explain
|
||||
select auto from t1 where
|
||||
"aaaa" in(string) and
|
||||
"aaaa" in(vstring) and
|
||||
0xAAAA in(bin) and
|
||||
0xAAAA in(vbin) and
|
||||
(-1 in(tiny)) and
|
||||
(-1 in (short)) and
|
||||
(-1 in(medium)) and
|
||||
(-1 in(long_int)) and
|
||||
(-1 in(longlong)) and
|
||||
1 in(utiny) and
|
||||
1 in(ushort) and
|
||||
1 in(umedium) and
|
||||
1 in(ulong) and
|
||||
1 in(ulonglong) and
|
||||
/* b'001' in(bits) and */
|
||||
'one' in(options) and
|
||||
'one' in(flags) and
|
||||
'1901-01-01' in(date_field) and
|
||||
'1901' in(year_field) and
|
||||
'01:01:01' in(time_field) and
|
||||
'1901-01-01 01:01:01' in(date_time)
|
||||
order by auto;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
|
||||
select auto from t1 where
|
||||
"aaaa" in(string) and
|
||||
"aaaa" in(vstring) and
|
||||
0xAAAA in(bin) and
|
||||
0xAAAA in(vbin) and
|
||||
(-1 in(tiny)) and
|
||||
(-1 in (short)) and
|
||||
(-1 in(medium)) and
|
||||
(-1 in(long_int)) and
|
||||
(-1 in(longlong)) and
|
||||
1 in(utiny) and
|
||||
1 in(ushort) and
|
||||
1 in(umedium) and
|
||||
1 in(ulong) and
|
||||
1 in(ulonglong) and
|
||||
/* b'001' in(bits) and */
|
||||
'one' in(options) and
|
||||
'one' in(flags) and
|
||||
'1901-01-01' in(date_field) and
|
||||
'1901' in(year_field) and
|
||||
'01:01:01' in(time_field) and
|
||||
'1901-01-01 01:01:01' in(date_time)
|
||||
order by auto;
|
||||
auto
|
||||
1
|
||||
explain
|
||||
select auto from t1 where
|
||||
string not in("aaaa","cccc") and
|
||||
vstring not in("aaaa","cccc") and
|
||||
bin not in(0xAAAA,0xCCCC) and
|
||||
vbin not in(0xAAAA,0xCCCC) and
|
||||
tiny not in(-1,-3) and
|
||||
short not in(-1,-3) and
|
||||
medium not in(-1,-3) and
|
||||
long_int not in(-1,-3) and
|
||||
longlong not in(-1,-3) and
|
||||
utiny not in(1,3) and
|
||||
ushort not in(1,3) and
|
||||
umedium not in(1,3) and
|
||||
ulong not in(1,3) and
|
||||
ulonglong not in(1,3) and
|
||||
/* bits not in(b'001',b'011') and */
|
||||
options not in('one','three') and
|
||||
flags not in('one','one,two,three') and
|
||||
date_field not in('1901-01-01','1903-03-03') and
|
||||
year_field not in('1901','1903') and
|
||||
time_field not in('01:01:01','03:03:03') and
|
||||
date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range medium_index medium_index 3 NULL 30 Using where with pushed condition; Using filesort
|
||||
select auto from t1 where
|
||||
string not in("aaaa","cccc") and
|
||||
vstring not in("aaaa","cccc") and
|
||||
bin not in(0xAAAA,0xCCCC) and
|
||||
vbin not in(0xAAAA,0xCCCC) and
|
||||
tiny not in(-1,-3) and
|
||||
short not in(-1,-3) and
|
||||
medium not in(-1,-3) and
|
||||
long_int not in(-1,-3) and
|
||||
longlong not in(-1,-3) and
|
||||
utiny not in(1,3) and
|
||||
ushort not in(1,3) and
|
||||
umedium not in(1,3) and
|
||||
ulong not in(1,3) and
|
||||
ulonglong not in(1,3) and
|
||||
/* bits not in(b'001',b'011') and */
|
||||
options not in('one','three') and
|
||||
flags not in('one','one,two,three') and
|
||||
date_field not in('1901-01-01','1903-03-03') and
|
||||
year_field not in('1901','1903') and
|
||||
time_field not in('01:01:01','03:03:03') and
|
||||
date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
auto
|
||||
2
|
||||
4
|
||||
explain
|
||||
select auto from t1 where
|
||||
"aaaa" not in(string) and
|
||||
"aaaa" not in(vstring) and
|
||||
0xAAAA not in(bin) and
|
||||
0xAAAA not in(vbin) and
|
||||
(-1 not in(tiny)) and
|
||||
(-1 not in(short)) and
|
||||
(-1 not in(medium)) and
|
||||
(-1 not in(long_int)) and
|
||||
(-1 not in(longlong)) and
|
||||
1 not in(utiny) and
|
||||
1 not in(ushort) and
|
||||
1 not in(umedium) and
|
||||
1 not in(ulong) and
|
||||
1 not in(ulonglong) and
|
||||
/* b'001' not in(bits) and */
|
||||
'one' not in(options) and
|
||||
'one' not in(flags) and
|
||||
'1901-01-01' not in(date_field) and
|
||||
'1901' not in(year_field) and
|
||||
'01:01:01' not in(time_field) and
|
||||
'1901-01-01 01:01:01' not in(date_time)
|
||||
order by auto;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where with pushed condition; Using filesort
|
||||
select auto from t1 where
|
||||
"aaaa" not in(string) and
|
||||
"aaaa" not in(vstring) and
|
||||
0xAAAA not in(bin) and
|
||||
0xAAAA not in(vbin) and
|
||||
(-1 not in(tiny)) and
|
||||
(-1 not in(short)) and
|
||||
(-1 not in(medium)) and
|
||||
(-1 not in(long_int)) and
|
||||
(-1 not in(longlong)) and
|
||||
1 not in(utiny) and
|
||||
1 not in(ushort) and
|
||||
1 not in(umedium) and
|
||||
1 not in(ulong) and
|
||||
1 not in(ulonglong) and
|
||||
/* b'001' not in(bits) and */
|
||||
'one' not in(options) and
|
||||
'one' not in(flags) and
|
||||
'1901-01-01' not in(date_field) and
|
||||
'1901' not in(year_field) and
|
||||
'01:01:01' not in(time_field) and
|
||||
'1901-01-01 01:01:01' not in(date_time)
|
||||
order by auto;
|
||||
auto
|
||||
2
|
||||
3
|
||||
4
|
||||
update t1
|
||||
set medium = 17
|
||||
where
|
||||
@ -1139,5 +1761,10 @@ explain
|
||||
select * from t2 where (attr1 < 2) = (attr2 < 2) order by pk1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using filesort
|
||||
explain
|
||||
select * from t3 left join t4 on t4.attr2 = t3.attr2 where t4.attr1 > 1 and t4.attr3 < 5 or t4.attr1 is null order by t4.pk1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort
|
||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 6 Using where
|
||||
set engine_condition_pushdown = @old_ecpd;
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
|
@ -236,6 +236,12 @@ query_prealloc_size 8192
|
||||
range_alloc_block_size 2048
|
||||
transaction_alloc_block_size 8192
|
||||
transaction_prealloc_size 4096
|
||||
SELECT @@version LIKE 'non-existent';
|
||||
@@version LIKE 'non-existent'
|
||||
0
|
||||
SELECT @@version_compile_os LIKE 'non-existent';
|
||||
@@version_compile_os LIKE 'non-existent'
|
||||
0
|
||||
set big_tables=OFFF;
|
||||
ERROR 42000: Variable 'big_tables' can't be set to the value of 'OFFF'
|
||||
set big_tables="OFFF";
|
||||
|
@ -110,3 +110,22 @@ explain extended SELECT
|
||||
COALESCE('a' COLLATE latin1_bin,'b');
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Tests for bug #9939: conversion of the arguments for COALESCE and IFNULL
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (EMPNUM INT);
|
||||
INSERT INTO t1 VALUES (0), (2);
|
||||
CREATE TABLE t2 (EMPNUM DECIMAL (4, 2));
|
||||
INSERT INTO t2 VALUES (0.0), (9.0);
|
||||
|
||||
SELECT COALESCE(t2.EMPNUM,t1.EMPNUM) AS CEMPNUM,
|
||||
t1.EMPNUM AS EMPMUM1, t2.EMPNUM AS EMPNUM2
|
||||
FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
|
||||
|
||||
SELECT IFNULL(t2.EMPNUM,t1.EMPNUM) AS CEMPNUM,
|
||||
t1.EMPNUM AS EMPMUM1, t2.EMPNUM AS EMPNUM2
|
||||
FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
@ -724,3 +724,10 @@ select ifnull(a,'') from t1;
|
||||
drop table t1;
|
||||
select repeat(_utf8'+',3) as h union select NULL;
|
||||
select ifnull(NULL, _utf8'string');
|
||||
|
||||
#
|
||||
# Bug#10714: Inserting double value into utf8 column crashes server
|
||||
#
|
||||
create table t1 (a varchar(255)) default character set utf8;
|
||||
insert into t1 values (1.0);
|
||||
drop table t1;
|
||||
|
@ -61,3 +61,17 @@ drop table t1;
|
||||
# Bug #5595 NULLIF() IS NULL returns false if NULLIF() returns NULL
|
||||
#
|
||||
SELECT NULLIF(5,5) IS NULL, NULLIF(5,5) IS NOT NULL;
|
||||
|
||||
#
|
||||
# Bug #9669 Ordering on IF function with FROM_UNIXTIME function fails
|
||||
#
|
||||
CREATE TABLE `t1` (
|
||||
`id` int(11) NOT NULL ,
|
||||
`date` int(10) default NULL,
|
||||
`text` varchar(32) NOT NULL
|
||||
);
|
||||
INSERT INTO t1 VALUES (1,1110000000,'Day 1'),(2,1111000000,'Day 2'),(3,1112000000,'Day 3');
|
||||
SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord ASC;
|
||||
SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, text FROM t1 ORDER BY date_ord DESC;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
@ -336,3 +336,9 @@ DROP TABLE t1;
|
||||
|
||||
explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
|
||||
timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2;
|
||||
|
||||
#
|
||||
# Bug #10590: %h, %I, and %l format specifies should all return results in
|
||||
# the 0-11 range
|
||||
#
|
||||
select time_format('100:00:00', '%H %k %h %I %l');
|
||||
|
@ -249,6 +249,202 @@ bin not like concat(0xBB, '%') and
|
||||
vbin not like concat(0xBB, '%')
|
||||
order by auto;
|
||||
|
||||
# BETWEEN
|
||||
select auto from t1 where
|
||||
(string between "aaaa" and "cccc") and
|
||||
(vstring between "aaaa" and "cccc") and
|
||||
(bin between 0xAAAA and 0xCCCC) and
|
||||
(vbin between 0xAAAA and 0xCCCC) and
|
||||
(tiny between -3 and -1) and
|
||||
(short between -3 and -1) and
|
||||
(medium between -3 and -1) and
|
||||
(long_int between -3 and -1) and
|
||||
(longlong between -3 and -1) and
|
||||
(utiny between 1 and 3) and
|
||||
(ushort between 1 and 3) and
|
||||
(umedium between 1 and 3) and
|
||||
(ulong between 1 and 3) and
|
||||
(ulonglong between 1 and 3) and
|
||||
(bits between b'001' and b'011') and
|
||||
(options between 'one' and 'three') and
|
||||
(flags between 'one' and 'one,two,three') and
|
||||
(date_field between '1901-01-01' and '1903-03-03') and
|
||||
(year_field between '1901' and '1903') and
|
||||
(time_field between '01:01:01' and '03:03:03') and
|
||||
(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
("aaaa" between string and string) and
|
||||
("aaaa" between vstring and vstring) and
|
||||
(0xAAAA between bin and bin) and
|
||||
(0xAAAA between vbin and vbin) and
|
||||
(-1 between tiny and tiny) and
|
||||
(-1 between short and short) and
|
||||
(-1 between medium and medium) and
|
||||
(-1 between long_int and long_int) and
|
||||
(-1 between longlong and longlong) and
|
||||
(1 between utiny and utiny) and
|
||||
(1 between ushort and ushort) and
|
||||
(1 between umedium and umedium) and
|
||||
(1 between ulong and ulong) and
|
||||
(1 between ulonglong and ulonglong) and
|
||||
(b'001' between bits and bits) and
|
||||
('one' between options and options) and
|
||||
('one' between flags and flags) and
|
||||
('1901-01-01' between date_field and date_field) and
|
||||
('1901' between year_field and year_field) and
|
||||
('01:01:01' between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' between date_time and date_time)
|
||||
order by auto;
|
||||
|
||||
# NOT BETWEEN
|
||||
select auto from t1 where
|
||||
(string not between "aaaa" and "cccc") and
|
||||
(vstring not between "aaaa" and "cccc") and
|
||||
(bin not between 0xAAAA and 0xCCCC) and
|
||||
(vbin not between 0xAAAA and 0xCCCC) and
|
||||
(tiny not between -3 and -1) and
|
||||
(short not between -3 and -1) and
|
||||
(medium not between -3 and -1) and
|
||||
(long_int not between -3 and -1) and
|
||||
(longlong not between -3 and -1) and
|
||||
(utiny not between 1 and 3) and
|
||||
(ushort not between 1 and 3) and
|
||||
(umedium not between 1 and 3) and
|
||||
(ulong not between 1 and 3) and
|
||||
(ulonglong not between 1 and 3) and
|
||||
(bits not between b'001' and b'011') and
|
||||
(options not between 'one' and 'three') and
|
||||
(flags not between 'one' and 'one,two,three') and
|
||||
(date_field not between '1901-01-01' and '1903-03-03') and
|
||||
(year_field not between '1901' and '1903') and
|
||||
(time_field not between '01:01:01' and '03:03:03') and
|
||||
(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
("aaaa" not between string and string) and
|
||||
("aaaa" not between vstring and vstring) and
|
||||
(0xAAAA not between bin and bin) and
|
||||
(0xAAAA not between vbin and vbin) and
|
||||
(-1 not between tiny and tiny) and
|
||||
(-1 not between short and short) and
|
||||
(-1 not between medium and medium) and
|
||||
(-1 not between long_int and long_int) and
|
||||
(-1 not between longlong and longlong) and
|
||||
(1 not between utiny and utiny) and
|
||||
(1 not between ushort and ushort) and
|
||||
(1 not between umedium and umedium) and
|
||||
(1 not between ulong and ulong) and
|
||||
(1 not between ulonglong and ulonglong) and
|
||||
(b'001' not between bits and bits) and
|
||||
('one' not between options and options) and
|
||||
('one' not between flags and flags) and
|
||||
('1901-01-01' not between date_field and date_field) and
|
||||
('1901' not between year_field and year_field) and
|
||||
('01:01:01' not between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' not between date_time and date_time)
|
||||
order by auto;
|
||||
|
||||
# IN
|
||||
select auto from t1 where
|
||||
string in("aaaa","cccc") and
|
||||
vstring in("aaaa","cccc") and
|
||||
bin in(0xAAAA,0xCCCC) and
|
||||
vbin in(0xAAAA,0xCCCC) and
|
||||
tiny in(-1,-3) and
|
||||
short in(-1,-3) and
|
||||
medium in(-1,-3) and
|
||||
long_int in(-1,-3) and
|
||||
longlong in(-1,-3) and
|
||||
utiny in(1,3) and
|
||||
ushort in(1,3) and
|
||||
umedium in(1,3) and
|
||||
ulong in(1,3) and
|
||||
ulonglong in(1,3) and
|
||||
bits in(b'001',b'011') and
|
||||
options in('one','three') and
|
||||
flags in('one','one,two,three') and
|
||||
date_field in('1901-01-01','1903-03-03') and
|
||||
year_field in('1901','1903') and
|
||||
time_field in('01:01:01','03:03:03') and
|
||||
date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
"aaaa" in(string) and
|
||||
"aaaa" in(vstring) and
|
||||
0xAAAA in(bin) and
|
||||
0xAAAA in(vbin) and
|
||||
(-1 in(tiny)) and
|
||||
(-1 in(short)) and
|
||||
(-1 in(medium)) and
|
||||
(-1 in(long_int)) and
|
||||
(-1 in(longlong)) and
|
||||
1 in(utiny) and
|
||||
1 in(ushort) and
|
||||
1 in(umedium) and
|
||||
1 in(ulong) and
|
||||
1 in(ulonglong) and
|
||||
b'001' in(bits) and
|
||||
'one' in(options) and
|
||||
'one' in(flags) and
|
||||
'1901-01-01' in(date_field) and
|
||||
'1901' in(year_field) and
|
||||
'01:01:01' in(time_field) and
|
||||
'1901-01-01 01:01:01' in(date_time)
|
||||
order by auto;
|
||||
|
||||
# NOT IN
|
||||
select auto from t1 where
|
||||
string not in("aaaa","cccc") and
|
||||
vstring not in("aaaa","cccc") and
|
||||
bin not in(0xAAAA,0xCCCC) and
|
||||
vbin not in(0xAAAA,0xCCCC) and
|
||||
tiny not in(-1,-3) and
|
||||
short not in(-1,-3) and
|
||||
medium not in(-1,-3) and
|
||||
long_int not in(-1,-3) and
|
||||
longlong not in(-1,-3) and
|
||||
utiny not in(1,3) and
|
||||
ushort not in(1,3) and
|
||||
umedium not in(1,3) and
|
||||
ulong not in(1,3) and
|
||||
ulonglong not in(1,3) and
|
||||
bits not in(b'001',b'011') and
|
||||
options not in('one','three') and
|
||||
flags not in('one','one,two,three') and
|
||||
date_field not in('1901-01-01','1903-03-03') and
|
||||
year_field not in('1901','1903') and
|
||||
time_field not in('01:01:01','03:03:03') and
|
||||
date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
"aaaa" not in(string) and
|
||||
"aaaa" not in(vstring) and
|
||||
0xAAAA not in(bin) and
|
||||
0xAAAA not in(vbin) and
|
||||
(-1 not in(tiny)) and
|
||||
(-1 not in(short)) and
|
||||
(-1 not in(medium)) and
|
||||
(-1 not in(long_int)) and
|
||||
(-1 not in(longlong)) and
|
||||
1 not in(utiny) and
|
||||
1 not in(ushort) and
|
||||
1 not in(umedium) and
|
||||
1 not in(ulong) and
|
||||
1 not in(ulonglong) and
|
||||
b'001' not in(bits) and
|
||||
'one' not in(options) and
|
||||
'one' not in(flags) and
|
||||
'1901-01-01' not in(date_field) and
|
||||
'1901' not in(year_field) and
|
||||
'01:01:01' not in(time_field) and
|
||||
'1901-01-01 01:01:01' not in(date_time)
|
||||
order by auto;
|
||||
|
||||
# Various tests
|
||||
select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
|
||||
select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
|
||||
@ -955,6 +1151,402 @@ bin not like concat(0xBB, '%') and
|
||||
vbin not like concat(0xBB, '%')
|
||||
order by auto;
|
||||
|
||||
# BETWEEN
|
||||
explain
|
||||
select auto from t1 where
|
||||
(string between "aaaa" and "cccc") and
|
||||
(vstring between "aaaa" and "cccc") and
|
||||
(bin between 0xAAAA and 0xCCCC) and
|
||||
(vbin between 0xAAAA and 0xCCCC) and
|
||||
(tiny between -3 and -1) and
|
||||
(short between -3 and -1) and
|
||||
(medium between -3 and -1) and
|
||||
(long_int between -3 and -1) and
|
||||
(longlong between -3 and -1) and
|
||||
(utiny between 1 and 3) and
|
||||
(ushort between 1 and 3) and
|
||||
(umedium between 1 and 3) and
|
||||
(ulong between 1 and 3) and
|
||||
(ulonglong between 1 and 3) and
|
||||
/* (bits between b'001' and b'011') and */
|
||||
(options between 'one' and 'three') and
|
||||
(flags between 'one' and 'one,two,three') and
|
||||
(date_field between '1901-01-01' and '1903-03-03') and
|
||||
(year_field between '1901' and '1903') and
|
||||
(time_field between '01:01:01' and '03:03:03') and
|
||||
(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
(string between "aaaa" and "cccc") and
|
||||
(vstring between "aaaa" and "cccc") and
|
||||
(bin between 0xAAAA and 0xCCCC) and
|
||||
(vbin between 0xAAAA and 0xCCCC) and
|
||||
(tiny between -3 and -1) and
|
||||
(short between -3 and -1) and
|
||||
(medium between -3 and -1) and
|
||||
(long_int between -3 and -1) and
|
||||
(longlong between -3 and -1) and
|
||||
(utiny between 1 and 3) and
|
||||
(ushort between 1 and 3) and
|
||||
(umedium between 1 and 3) and
|
||||
(ulong between 1 and 3) and
|
||||
(ulonglong between 1 and 3) and
|
||||
/* (bits between b'001' and b'011') and */
|
||||
(options between 'one' and 'three') and
|
||||
(flags between 'one' and 'one,two,three') and
|
||||
(date_field between '1901-01-01' and '1903-03-03') and
|
||||
(year_field between '1901' and '1903') and
|
||||
(time_field between '01:01:01' and '03:03:03') and
|
||||
(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
explain
|
||||
select auto from t1 where
|
||||
("aaaa" between string and string) and
|
||||
("aaaa" between vstring and vstring) and
|
||||
(0xAAAA between bin and bin) and
|
||||
(0xAAAA between vbin and vbin) and
|
||||
(-1 between tiny and tiny) and
|
||||
(-1 between short and short) and
|
||||
(-1 between medium and medium) and
|
||||
(-1 between long_int and long_int) and
|
||||
(-1 between longlong and longlong) and
|
||||
(1 between utiny and utiny) and
|
||||
(1 between ushort and ushort) and
|
||||
(1 between umedium and umedium) and
|
||||
(1 between ulong and ulong) and
|
||||
(1 between ulonglong and ulonglong) and
|
||||
/* (b'001' between bits and bits) and */
|
||||
('one' between options and options) and
|
||||
('one' between flags and flags) and
|
||||
('1901-01-01' between date_field and date_field) and
|
||||
('1901' between year_field and year_field) and
|
||||
('01:01:01' between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' between date_time and date_time)
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
("aaaa" between string and string) and
|
||||
("aaaa" between vstring and vstring) and
|
||||
(0xAAAA between bin and bin) and
|
||||
(0xAAAA between vbin and vbin) and
|
||||
(-1 between tiny and tiny) and
|
||||
(-1 between short and short) and
|
||||
(-1 between medium and medium) and
|
||||
(-1 between long_int and long_int) and
|
||||
(-1 between longlong and longlong) and
|
||||
(1 between utiny and utiny) and
|
||||
(1 between ushort and ushort) and
|
||||
(1 between umedium and umedium) and
|
||||
(1 between ulong and ulong) and
|
||||
(1 between ulonglong and ulonglong) and
|
||||
/* (b'001' between bits and bits) and */
|
||||
('one' between options and options) and
|
||||
('one' between flags and flags) and
|
||||
('1901-01-01' between date_field and date_field) and
|
||||
('1901' between year_field and year_field) and
|
||||
('01:01:01' between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' between date_time and date_time)
|
||||
order by auto;
|
||||
|
||||
# NOT BETWEEN
|
||||
explain
|
||||
select auto from t1 where
|
||||
(string not between "aaaa" and "cccc") and
|
||||
(vstring not between "aaaa" and "cccc") and
|
||||
(bin not between 0xAAAA and 0xCCCC) and
|
||||
(vbin not between 0xAAAA and 0xCCCC) and
|
||||
(tiny not between -3 and -1) and
|
||||
(short not between -3 and -1) and
|
||||
(medium not between -3 and -1) and
|
||||
(long_int not between -3 and -1) and
|
||||
(longlong not between -3 and -1) and
|
||||
(utiny not between 1 and 3) and
|
||||
(ushort not between 1 and 3) and
|
||||
(umedium not between 1 and 3) and
|
||||
(ulong not between 1 and 3) and
|
||||
(ulonglong not between 1 and 3) and
|
||||
/* (bits not between b'001' and b'011') and */
|
||||
(options not between 'one' and 'three') and
|
||||
(flags not between 'one' and 'one,two,three') and
|
||||
(date_field not between '1901-01-01' and '1903-03-03') and
|
||||
(year_field not between '1901' and '1903') and
|
||||
(time_field not between '01:01:01' and '03:03:03') and
|
||||
(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
(string not between "aaaa" and "cccc") and
|
||||
(vstring not between "aaaa" and "cccc") and
|
||||
(bin not between 0xAAAA and 0xCCCC) and
|
||||
(vbin not between 0xAAAA and 0xCCCC) and
|
||||
(tiny not between -3 and -1) and
|
||||
(short not between -3 and -1) and
|
||||
(medium not between -3 and -1) and
|
||||
(long_int not between -3 and -1) and
|
||||
(longlong not between -3 and -1) and
|
||||
(utiny not between 1 and 3) and
|
||||
(ushort not between 1 and 3) and
|
||||
(umedium not between 1 and 3) and
|
||||
(ulong not between 1 and 3) and
|
||||
(ulonglong not between 1 and 3) and
|
||||
/* (bits not between b'001' and b'011') and */
|
||||
(options not between 'one' and 'three') and
|
||||
(flags not between 'one' and 'one,two,three') and
|
||||
(date_field not between '1901-01-01' and '1903-03-03') and
|
||||
(year_field not between '1901' and '1903') and
|
||||
(time_field not between '01:01:01' and '03:03:03') and
|
||||
(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
explain
|
||||
select auto from t1 where
|
||||
("aaaa" not between string and string) and
|
||||
("aaaa" not between vstring and vstring) and
|
||||
(0xAAAA not between bin and bin) and
|
||||
(0xAAAA not between vbin and vbin) and
|
||||
(-1 not between tiny and tiny) and
|
||||
(-1 not between short and short) and
|
||||
(-1 not between medium and medium) and
|
||||
(-1 not between long_int and long_int) and
|
||||
(-1 not between longlong and longlong) and
|
||||
(1 not between utiny and utiny) and
|
||||
(1 not between ushort and ushort) and
|
||||
(1 not between umedium and umedium) and
|
||||
(1 not between ulong and ulong) and
|
||||
(1 not between ulonglong and ulonglong) and
|
||||
/* (b'001' not between bits and bits) and */
|
||||
('one' not between options and options) and
|
||||
('one' not between flags and flags) and
|
||||
('1901-01-01' not between date_field and date_field) and
|
||||
('1901' not between year_field and year_field) and
|
||||
('01:01:01' not between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' not between date_time and date_time)
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
("aaaa" not between string and string) and
|
||||
("aaaa" not between vstring and vstring) and
|
||||
(0xAAAA not between bin and bin) and
|
||||
(0xAAAA not between vbin and vbin) and
|
||||
(-1 not between tiny and tiny) and
|
||||
(-1 not between short and short) and
|
||||
(-1 not between medium and medium) and
|
||||
(-1 not between long_int and long_int) and
|
||||
(-1 not between longlong and longlong) and
|
||||
(1 not between utiny and utiny) and
|
||||
(1 not between ushort and ushort) and
|
||||
(1 not between umedium and umedium) and
|
||||
(1 not between ulong and ulong) and
|
||||
(1 not between ulonglong and ulonglong) and
|
||||
/* (b'001' not between bits and bits) and */
|
||||
('one' not between options and options) and
|
||||
('one' not between flags and flags) and
|
||||
('1901-01-01' not between date_field and date_field) and
|
||||
('1901' not between year_field and year_field) and
|
||||
('01:01:01' not between time_field and time_field) and
|
||||
('1901-01-01 01:01:01' not between date_time and date_time)
|
||||
order by auto;
|
||||
|
||||
# IN
|
||||
explain
|
||||
select auto from t1 where
|
||||
string in("aaaa","cccc") and
|
||||
vstring in("aaaa","cccc") and
|
||||
bin in(0xAAAA,0xCCCC) and
|
||||
vbin in(0xAAAA,0xCCCC) and
|
||||
tiny in(-1,-3) and
|
||||
short in(-1,-3) and
|
||||
medium in(-1,-3) and
|
||||
long_int in(-1,-3) and
|
||||
longlong in(-1,-3) and
|
||||
utiny in(1,3) and
|
||||
ushort in(1,3) and
|
||||
umedium in(1,3) and
|
||||
ulong in(1,3) and
|
||||
ulonglong in(1,3) and
|
||||
/* bits in(b'001',b'011') and */
|
||||
options in('one','three') and
|
||||
flags in('one','one,two,three') and
|
||||
date_field in('1901-01-01','1903-03-03') and
|
||||
year_field in('1901','1903') and
|
||||
time_field in('01:01:01','03:03:03') and
|
||||
date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
string in("aaaa","cccc") and
|
||||
vstring in("aaaa","cccc") and
|
||||
bin in(0xAAAA,0xCCCC) and
|
||||
vbin in(0xAAAA,0xCCCC) and
|
||||
tiny in(-1,-3) and
|
||||
short in(-1,-3) and
|
||||
medium in(-1,-3) and
|
||||
long_int in(-1,-3) and
|
||||
longlong in(-1,-3) and
|
||||
utiny in(1,3) and
|
||||
ushort in(1,3) and
|
||||
umedium in(1,3) and
|
||||
ulong in(1,3) and
|
||||
ulonglong in(1,3) and
|
||||
/* bits in(b'001',b'011') and */
|
||||
options in('one','three') and
|
||||
flags in('one','one,two,three') and
|
||||
date_field in('1901-01-01','1903-03-03') and
|
||||
year_field in('1901','1903') and
|
||||
time_field in('01:01:01','03:03:03') and
|
||||
date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
explain
|
||||
select auto from t1 where
|
||||
"aaaa" in(string) and
|
||||
"aaaa" in(vstring) and
|
||||
0xAAAA in(bin) and
|
||||
0xAAAA in(vbin) and
|
||||
(-1 in(tiny)) and
|
||||
(-1 in (short)) and
|
||||
(-1 in(medium)) and
|
||||
(-1 in(long_int)) and
|
||||
(-1 in(longlong)) and
|
||||
1 in(utiny) and
|
||||
1 in(ushort) and
|
||||
1 in(umedium) and
|
||||
1 in(ulong) and
|
||||
1 in(ulonglong) and
|
||||
/* b'001' in(bits) and */
|
||||
'one' in(options) and
|
||||
'one' in(flags) and
|
||||
'1901-01-01' in(date_field) and
|
||||
'1901' in(year_field) and
|
||||
'01:01:01' in(time_field) and
|
||||
'1901-01-01 01:01:01' in(date_time)
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
"aaaa" in(string) and
|
||||
"aaaa" in(vstring) and
|
||||
0xAAAA in(bin) and
|
||||
0xAAAA in(vbin) and
|
||||
(-1 in(tiny)) and
|
||||
(-1 in (short)) and
|
||||
(-1 in(medium)) and
|
||||
(-1 in(long_int)) and
|
||||
(-1 in(longlong)) and
|
||||
1 in(utiny) and
|
||||
1 in(ushort) and
|
||||
1 in(umedium) and
|
||||
1 in(ulong) and
|
||||
1 in(ulonglong) and
|
||||
/* b'001' in(bits) and */
|
||||
'one' in(options) and
|
||||
'one' in(flags) and
|
||||
'1901-01-01' in(date_field) and
|
||||
'1901' in(year_field) and
|
||||
'01:01:01' in(time_field) and
|
||||
'1901-01-01 01:01:01' in(date_time)
|
||||
order by auto;
|
||||
|
||||
# NOT IN
|
||||
explain
|
||||
select auto from t1 where
|
||||
string not in("aaaa","cccc") and
|
||||
vstring not in("aaaa","cccc") and
|
||||
bin not in(0xAAAA,0xCCCC) and
|
||||
vbin not in(0xAAAA,0xCCCC) and
|
||||
tiny not in(-1,-3) and
|
||||
short not in(-1,-3) and
|
||||
medium not in(-1,-3) and
|
||||
long_int not in(-1,-3) and
|
||||
longlong not in(-1,-3) and
|
||||
utiny not in(1,3) and
|
||||
ushort not in(1,3) and
|
||||
umedium not in(1,3) and
|
||||
ulong not in(1,3) and
|
||||
ulonglong not in(1,3) and
|
||||
/* bits not in(b'001',b'011') and */
|
||||
options not in('one','three') and
|
||||
flags not in('one','one,two,three') and
|
||||
date_field not in('1901-01-01','1903-03-03') and
|
||||
year_field not in('1901','1903') and
|
||||
time_field not in('01:01:01','03:03:03') and
|
||||
date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
string not in("aaaa","cccc") and
|
||||
vstring not in("aaaa","cccc") and
|
||||
bin not in(0xAAAA,0xCCCC) and
|
||||
vbin not in(0xAAAA,0xCCCC) and
|
||||
tiny not in(-1,-3) and
|
||||
short not in(-1,-3) and
|
||||
medium not in(-1,-3) and
|
||||
long_int not in(-1,-3) and
|
||||
longlong not in(-1,-3) and
|
||||
utiny not in(1,3) and
|
||||
ushort not in(1,3) and
|
||||
umedium not in(1,3) and
|
||||
ulong not in(1,3) and
|
||||
ulonglong not in(1,3) and
|
||||
/* bits not in(b'001',b'011') and */
|
||||
options not in('one','three') and
|
||||
flags not in('one','one,two,three') and
|
||||
date_field not in('1901-01-01','1903-03-03') and
|
||||
year_field not in('1901','1903') and
|
||||
time_field not in('01:01:01','03:03:03') and
|
||||
date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
|
||||
order by auto;
|
||||
|
||||
explain
|
||||
select auto from t1 where
|
||||
"aaaa" not in(string) and
|
||||
"aaaa" not in(vstring) and
|
||||
0xAAAA not in(bin) and
|
||||
0xAAAA not in(vbin) and
|
||||
(-1 not in(tiny)) and
|
||||
(-1 not in(short)) and
|
||||
(-1 not in(medium)) and
|
||||
(-1 not in(long_int)) and
|
||||
(-1 not in(longlong)) and
|
||||
1 not in(utiny) and
|
||||
1 not in(ushort) and
|
||||
1 not in(umedium) and
|
||||
1 not in(ulong) and
|
||||
1 not in(ulonglong) and
|
||||
/* b'001' not in(bits) and */
|
||||
'one' not in(options) and
|
||||
'one' not in(flags) and
|
||||
'1901-01-01' not in(date_field) and
|
||||
'1901' not in(year_field) and
|
||||
'01:01:01' not in(time_field) and
|
||||
'1901-01-01 01:01:01' not in(date_time)
|
||||
order by auto;
|
||||
|
||||
select auto from t1 where
|
||||
"aaaa" not in(string) and
|
||||
"aaaa" not in(vstring) and
|
||||
0xAAAA not in(bin) and
|
||||
0xAAAA not in(vbin) and
|
||||
(-1 not in(tiny)) and
|
||||
(-1 not in(short)) and
|
||||
(-1 not in(medium)) and
|
||||
(-1 not in(long_int)) and
|
||||
(-1 not in(longlong)) and
|
||||
1 not in(utiny) and
|
||||
1 not in(ushort) and
|
||||
1 not in(umedium) and
|
||||
1 not in(ulong) and
|
||||
1 not in(ulonglong) and
|
||||
/* b'001' not in(bits) and */
|
||||
'one' not in(options) and
|
||||
'one' not in(flags) and
|
||||
'1901-01-01' not in(date_field) and
|
||||
'1901' not in(year_field) and
|
||||
'01:01:01' not in(time_field) and
|
||||
'1901-01-01 01:01:01' not in(date_time)
|
||||
order by auto;
|
||||
|
||||
# Update test
|
||||
update t1
|
||||
set medium = 17
|
||||
@ -1044,6 +1636,8 @@ explain
|
||||
select auto from t1 where string = "aaaa" collate latin1_general_ci order by auto;
|
||||
explain
|
||||
select * from t2 where (attr1 < 2) = (attr2 < 2) order by pk1;
|
||||
explain
|
||||
select * from t3 left join t4 on t4.attr2 = t3.attr2 where t4.attr1 > 1 and t4.attr3 < 5 or t4.attr1 is null order by t4.pk1;
|
||||
|
||||
set engine_condition_pushdown = @old_ecpd;
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
|
@ -130,6 +130,13 @@ set @@query_alloc_block_size=default, @@query_prealloc_size=default;
|
||||
set transaction_alloc_block_size=default, @@transaction_prealloc_size=default;
|
||||
show variables like '%alloc%';
|
||||
|
||||
#
|
||||
# Bug #10904 Illegal mix of collations between
|
||||
# a system variable and a constant
|
||||
#
|
||||
SELECT @@version LIKE 'non-existent';
|
||||
SELECT @@version_compile_os LIKE 'non-existent';
|
||||
|
||||
# The following should give errors
|
||||
|
||||
--error 1231
|
||||
|
Reference in New Issue
Block a user