1
DROP TABLE IF EXISTS t1,t2,t3,t4;
3
auto int(5) unsigned NOT NULL auto_increment,
8
tiny tinyint(4) DEFAULT '0' NOT NULL ,
9
short smallint(6) DEFAULT '1' NOT NULL ,
10
medium mediumint(8) DEFAULT '0' NOT NULL,
11
long_int int(11) DEFAULT '0' NOT NULL,
12
longlong bigint(13) DEFAULT '0' NOT NULL,
13
real_float float(13,1) DEFAULT 0.0 NOT NULL,
14
real_double double(16,4),
15
real_decimal decimal(16,4),
16
utiny tinyint(3) unsigned DEFAULT '0' NOT NULL,
17
ushort smallint(5) unsigned zerofill DEFAULT '00000' NOT NULL,
18
umedium mediumint(8) unsigned DEFAULT '0' NOT NULL,
19
ulong int(11) unsigned DEFAULT '0' NOT NULL,
20
ulonglong bigint(13) unsigned DEFAULT '0' NOT NULL,
22
options enum('zero','one','two','three','four') not null,
23
flags set('zero','one','two','three','four') not null,
32
(NULL,"aaaa","aaaa",0xAAAA,0xAAAA,-1,-1,-1,-1,-1,1.1,1.1,1.1,1,1,1,1,1,
35
'01:01:01','1901-01-01 01:01:01',NULL),
36
(NULL,"bbbb","bbbb",0xBBBB,0xBBBB,-2,-2,-2,-2,-2,2.2,2.2,2.2,2,2,2,2,2,
37
b'010','two','one,two',
39
'02:02:02','1902-02-02 02:02:02',NULL),
40
(NULL,"cccc","cccc",0xCCCC,0xCCCC,-3,-3,-3,-3,-3,3.3,3.3,3.3,3,3,3,3,3,
41
b'011','three','one,two,three',
43
'03:03:03','1903-03-03 03:03:03',NULL),
44
(NULL,"dddd","dddd",0xDDDD,0xDDDD,-4,-4,-4,-4,-4,4.4,4.4,4.4,4,4,4,4,4,
45
b'100','four','one,two,three,four',
47
'04:04:04','1904-04-04 04:04:04',NULL);
48
CREATE TABLE t2 (pk1 int unsigned NOT NULL PRIMARY KEY, attr1 int unsigned NOT NULL, attr2 int unsigned, attr3 VARCHAR(10) ) ENGINE=ndbcluster;
49
insert into t2 values (0,0,0, "a"),(1,1,1,"b"),(2,2,NULL,NULL),(3,3,3,"d"),(4,4,4,"e"),(5,5,5,"f");
50
CREATE TABLE t3 (pk1 int unsigned NOT NULL PRIMARY KEY, attr1 int unsigned NOT NULL, attr2 bigint unsigned, attr3 tinyint unsigned, attr4 VARCHAR(10) ) ENGINE=ndbcluster;
51
insert into t3 values (0,0,0,0,"a"),(1,1,9223372036854775803,1,"b"),(2,2,9223372036854775804,2,"c"),(3,3,9223372036854775805,3,"d"),(4,4,9223372036854775806,4,"e"),(5,5,9223372036854775807,5,"f");
52
CREATE TABLE t4 (pk1 int unsigned NOT NULL PRIMARY KEY, attr1 int unsigned NOT NULL, attr2 bigint unsigned, attr3 tinyint unsigned, attr4 VARCHAR(10) , KEY (attr1)) ENGINE=ndbcluster;
53
insert into t4 values (0,0,0,0,"a"),(1,1,9223372036854775803,1,"b"),(2,2,9223372036854775804,2,"c"),(3,3,9223372036854775805,3,"d"),(4,4,9223372036854775806,4,"e"),(5,5,9223372036854775807,5,"f");
54
set @old_ecpd = @@session.engine_condition_pushdown;
55
set engine_condition_pushdown = off;
56
select auto from t1 where
66
real_float > 1.0 and real_float < 2.0 and
67
real_double > 1.0 and real_double < 2.0 and
68
real_decimal > 1.0 and real_decimal < 2.0 and
77
date_field = '1901-01-01' and
78
year_field = '1901' and
79
time_field = '01:01:01' and
80
date_time = '1901-01-01 01:01:01'
84
select auto from t1 where
94
(real_float < 1.0 or real_float > 2.0) and
95
(real_double < 1.0 or real_double > 2.0) and
96
(real_decimal < 1.0 or real_decimal > 2.0) and
105
date_field != '1901-01-01' and
106
year_field != '1901' and
107
time_field != '01:01:01' and
108
date_time != '1901-01-01 01:01:01'
114
select auto from t1 where
125
real_double > 1.1 and
126
real_decimal > 1.1 and
133
(options = 'two' or options = 'three' or options = 'four') and
134
(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
135
date_field > '1901-01-01' and
136
year_field > '1901' and
137
time_field > '01:01:01' and
138
date_time > '1901-01-01 01:01:01'
144
select auto from t1 where
146
vstring >= "aaaa" and
154
real_float >= 1.0 and
155
real_double >= 1.0 and
156
real_decimal >= 1.0 and
163
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
164
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
165
date_field >= '1901-01-01' and
166
year_field >= '1901' and
167
time_field >= '01:01:01' and
168
date_time >= '1901-01-01 01:01:01'
175
select auto from t1 where
186
real_double < 4.4 and
187
real_decimal < 4.4 and
194
(options = 'one' or options = 'two' or options = 'three') and
195
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
196
date_field < '1904-01-01' and
197
year_field < '1904' and
198
time_field < '04:04:04' and
199
date_time < '1904-04-04 04:04:04'
205
select auto from t1 where
207
vstring <= "dddd" and
215
real_float <= 4.5 and
216
real_double <= 4.5 and
217
real_decimal <= 4.5 and
224
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
225
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
226
date_field <= '1904-04-04' and
227
year_field <= '1904' and
228
time_field <= '04:04:04' and
229
date_time <= '1904-04-04 04:04:04'
236
select auto from t1 where
238
vstring like "b%" and
239
bin like concat(0xBB, '%') and
240
vbin like concat(0xBB, '%')
244
select auto from t1 where
245
string not like "b%" and
246
vstring not like "b%" and
247
bin not like concat(0xBB, '%') and
248
vbin not like concat(0xBB, '%')
254
select auto from t1 where
255
(string between "aaaa" and "cccc") and
256
(vstring between "aaaa" and "cccc") and
257
(bin between 0xAAAA and 0xCCCC) and
258
(vbin between 0xAAAA and 0xCCCC) and
259
(tiny between -3 and -1) and
260
(short between -3 and -1) and
261
(medium between -3 and -1) and
262
(long_int between -3 and -1) and
263
(longlong between -3 and -1) and
264
(utiny between 1 and 3) and
265
(ushort between 1 and 3) and
266
(umedium between 1 and 3) and
267
(ulong between 1 and 3) and
268
(ulonglong between 1 and 3) and
269
(bits between b'001' and b'011') and
270
(options between 'one' and 'three') and
271
(flags between 'one' and 'one,two,three') and
272
(date_field between '1901-01-01' and '1903-03-03') and
273
(year_field between '1901' and '1903') and
274
(time_field between '01:01:01' and '03:03:03') and
275
(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
280
select auto from t1 where
281
("aaaa" between string and string) and
282
("aaaa" between vstring and vstring) and
283
(0xAAAA between bin and bin) and
284
(0xAAAA between vbin and vbin) and
285
(-1 between tiny and tiny) and
286
(-1 between short and short) and
287
(-1 between medium and medium) and
288
(-1 between long_int and long_int) and
289
(-1 between longlong and longlong) and
290
(1 between utiny and utiny) and
291
(1 between ushort and ushort) and
292
(1 between umedium and umedium) and
293
(1 between ulong and ulong) and
294
(1 between ulonglong and ulonglong) and
295
(b'001' between bits and bits) and
296
('one' between options and options) and
297
('one' between flags and flags) and
298
('1901-01-01' between date_field and date_field) and
299
('1901' between year_field and year_field) and
300
('01:01:01' between time_field and time_field) and
301
('1901-01-01 01:01:01' between date_time and date_time)
305
select auto from t1 where
306
(string not between "aaaa" and "cccc") and
307
(vstring not between "aaaa" and "cccc") and
308
(bin not between 0xAAAA and 0xCCCC) and
309
(vbin not between 0xAAAA and 0xCCCC) and
310
(tiny not between -3 and -1) and
311
(short not between -3 and -1) and
312
(medium not between -3 and -1) and
313
(long_int not between -3 and -1) and
314
(longlong not between -3 and -1) and
315
(utiny not between 1 and 3) and
316
(ushort not between 1 and 3) and
317
(umedium not between 1 and 3) and
318
(ulong not between 1 and 3) and
319
(ulonglong not between 1 and 3) and
320
(bits not between b'001' and b'011') and
321
(options not between 'one' and 'three') and
322
(flags not between 'one' and 'one,two,three') and
323
(date_field not between '1901-01-01' and '1903-03-03') and
324
(year_field not between '1901' and '1903') and
325
(time_field not between '01:01:01' and '03:03:03') and
326
(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
330
select auto from t1 where
331
("aaaa" not between string and string) and
332
("aaaa" not between vstring and vstring) and
333
(0xAAAA not between bin and bin) and
334
(0xAAAA not between vbin and vbin) and
335
(-1 not between tiny and tiny) and
336
(-1 not between short and short) and
337
(-1 not between medium and medium) and
338
(-1 not between long_int and long_int) and
339
(-1 not between longlong and longlong) and
340
(1 not between utiny and utiny) and
341
(1 not between ushort and ushort) and
342
(1 not between umedium and umedium) and
343
(1 not between ulong and ulong) and
344
(1 not between ulonglong and ulonglong) and
345
(b'001' not between bits and bits) and
346
('one' not between options and options) and
347
('one' not between flags and flags) and
348
('1901-01-01' not between date_field and date_field) and
349
('1901' not between year_field and year_field) and
350
('01:01:01' not between time_field and time_field) and
351
('1901-01-01 01:01:01' not between date_time and date_time)
357
select auto from t1 where
358
string in("aaaa","cccc") and
359
vstring in("aaaa","cccc") and
360
bin in(0xAAAA,0xCCCC) and
361
vbin in(0xAAAA,0xCCCC) and
365
long_int in(-1,-3) and
366
longlong in(-1,-3) and
371
ulonglong in(1,3) and
372
bits in(b'001',b'011') and
373
options in('one','three') and
374
flags in('one','one,two,three') and
375
date_field in('1901-01-01','1903-03-03') and
376
year_field in('1901','1903') and
377
time_field in('01:01:01','03:03:03') and
378
date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
383
select auto from t1 where
384
"aaaa" in(string) and
385
"aaaa" in(vstring) and
391
(-1 in(long_int)) and
392
(-1 in(longlong)) and
399
'one' in(options) and
401
'1901-01-01' in(date_field) and
402
'1901' in(year_field) and
403
'01:01:01' in(time_field) and
404
'1901-01-01 01:01:01' in(date_time)
408
select auto from t1 where
409
string not in("aaaa","cccc") and
410
vstring not in("aaaa","cccc") and
411
bin not in(0xAAAA,0xCCCC) and
412
vbin not in(0xAAAA,0xCCCC) and
413
tiny not in(-1,-3) and
414
short not in(-1,-3) and
415
medium not in(-1,-3) and
416
long_int not in(-1,-3) and
417
longlong not in(-1,-3) and
418
utiny not in(1,3) and
419
ushort not in(1,3) and
420
umedium not in(1,3) and
421
ulong not in(1,3) and
422
ulonglong not in(1,3) and
423
bits not in(b'001',b'011') and
424
options not in('one','three') and
425
flags not in('one','one,two,three') and
426
date_field not in('1901-01-01','1903-03-03') and
427
year_field not in('1901','1903') and
428
time_field not in('01:01:01','03:03:03') and
429
date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
434
select auto from t1 where
435
"aaaa" not in(string) and
436
"aaaa" not in(vstring) and
437
0xAAAA not in(bin) and
438
0xAAAA not in(vbin) and
439
(-1 not in(tiny)) and
440
(-1 not in(short)) and
441
(-1 not in(medium)) and
442
(-1 not in(long_int)) and
443
(-1 not in(longlong)) and
446
1 not in(umedium) and
448
1 not in(ulonglong) and
449
b'001' not in(bits) and
450
'one' not in(options) and
451
'one' not in(flags) and
452
'1901-01-01' not in(date_field) and
453
'1901' not in(year_field) and
454
'01:01:01' not in(time_field) and
455
'1901-01-01 01:01:01' not in(date_time)
461
select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
462
pk1 attr1 attr2 attr3
465
select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
466
pk1 attr1 attr2 attr3
470
select * from t3 where attr2 > 9223372036854775803 and attr3 != 3 order by pk1;
471
pk1 attr1 attr2 attr3 attr4
472
2 2 9223372036854775804 2 c
473
4 4 9223372036854775806 4 e
474
5 5 9223372036854775807 5 f
475
select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
476
pk1 attr1 attr2 attr3 pk1 attr1 attr2 attr3 attr4
478
select * from t4 where attr1 < 5 and attr2 > 9223372036854775803 and attr3 != 3 order by t4.pk1;
479
pk1 attr1 attr2 attr3 attr4
480
2 2 9223372036854775804 2 c
481
4 4 9223372036854775806 4 e
482
select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
483
pk1 attr1 attr2 attr3 attr4 pk1 attr1 attr2 attr3 attr4
484
2 2 9223372036854775804 2 c 2 2 9223372036854775804 2 c
485
3 3 9223372036854775805 3 d 3 3 9223372036854775805 3 d
486
4 4 9223372036854775806 4 e 4 4 9223372036854775806 4 e
487
set engine_condition_pushdown = on;
489
select auto from t1 where
499
real_float > 1.0 and real_float < 2.0 and
500
real_double > 1.0 and real_double < 2.0 and
501
real_decimal > 1.0 and real_decimal < 2.0 and
507
/* bits = b'001' and */
510
date_field = '1901-01-01' and
511
year_field = '1901' and
512
time_field = '01:01:01' and
513
date_time = '1901-01-01 01:01:01'
515
id select_type table type possible_keys key key_len ref rows Extra
516
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
517
select auto from t1 where
527
real_float > 1.0 and real_float < 2.0 and
528
real_double > 1.0 and real_double < 2.0 and
529
real_decimal > 1.0 and real_decimal < 2.0 and
535
/* bits = b'001' and */
538
date_field = '1901-01-01' and
539
year_field = '1901' and
540
time_field = '01:01:01' and
541
date_time = '1901-01-01 01:01:01'
546
select auto from t1 where
548
vstring != "aaaa" and
556
(real_float < 1.0 or real_float > 2.0) and
557
(real_double < 1.0 or real_double > 2.0) and
558
(real_decimal < 1.0 or real_decimal > 2.0) and
564
/* bits != b'001' and */
567
date_field != '1901-01-01' and
568
year_field != '1901' and
569
time_field != '01:01:01' and
570
date_time != '1901-01-01 01:01:01'
572
id select_type table type possible_keys key key_len ref rows Extra
573
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
574
select auto from t1 where
576
vstring != "aaaa" and
584
(real_float < 1.0 or real_float > 2.0) and
585
(real_double < 1.0 or real_double > 2.0) and
586
(real_decimal < 1.0 or real_decimal > 2.0) and
592
/* bits != b'001' and */
595
date_field != '1901-01-01' and
596
year_field != '1901' and
597
time_field != '01:01:01' and
598
date_time != '1901-01-01 01:01:01'
605
select auto from t1 where
616
real_double > 1.1 and
617
real_decimal > 1.1 and
623
/* bits > b'001' and */
624
(options = 'two' or options = 'three' or options = 'four') and
625
(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
626
date_field > '1901-01-01' and
627
year_field > '1901' and
628
time_field > '01:01:01' and
629
date_time > '1901-01-01 01:01:01'
631
id select_type table type possible_keys key key_len ref rows Extra
632
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
633
select auto from t1 where
644
real_double > 1.1 and
645
real_decimal > 1.1 and
651
/* bits > b'001' and */
652
(options = 'two' or options = 'three' or options = 'four') and
653
(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
654
date_field > '1901-01-01' and
655
year_field > '1901' and
656
time_field > '01:01:01' and
657
date_time > '1901-01-01 01:01:01'
664
select auto from t1 where
666
vstring >= "aaaa" and
674
real_float >= 1.0 and
675
real_double >= 1.0 and
676
real_decimal >= 1.0 and
682
/* bits >= b'001' and */
683
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
684
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
685
date_field >= '1901-01-01' and
686
year_field >= '1901' and
687
time_field >= '01:01:01' and
688
date_time >= '1901-01-01 01:01:01'
690
id select_type table type possible_keys key key_len ref rows Extra
691
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
692
select auto from t1 where
694
vstring >= "aaaa" and
702
real_float >= 1.0 and
703
real_double >= 1.0 and
704
real_decimal >= 1.0 and
710
/* bits >= b'001' and */
711
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
712
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
713
date_field >= '1901-01-01' and
714
year_field >= '1901' and
715
time_field >= '01:01:01' and
716
date_time >= '1901-01-01 01:01:01'
724
select auto from t1 where
735
real_double < 4.4 and
736
real_decimal < 4.4 and
742
/* bits < b'100' and */
743
(options = 'one' or options = 'two' or options = 'three') and
744
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
745
date_field < '1904-01-01' and
746
year_field < '1904' and
747
time_field < '04:04:04' and
748
date_time < '1904-04-04 04:04:04'
750
id select_type table type possible_keys key key_len ref rows Extra
751
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
752
select auto from t1 where
763
real_double < 4.4 and
764
real_decimal < 4.4 and
770
/* bits < b'100' and */
771
(options = 'one' or options = 'two' or options = 'three') and
772
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
773
date_field < '1904-01-01' and
774
year_field < '1904' and
775
time_field < '04:04:04' and
776
date_time < '1904-04-04 04:04:04'
783
select auto from t1 where
785
vstring <= "dddd" and
793
real_float <= 4.5 and
794
real_double <= 4.5 and
795
real_decimal <= 4.5 and
796
utiny <= 4 - 1 + 1 and /* Checking function composition */
801
/* bits <= b'100' and */
802
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
803
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
804
date_field <= '1904-04-04' and
805
year_field <= '1904' and
806
time_field <= '04:04:04' and
807
date_time <= '1904-04-04 04:04:04'
809
id select_type table type possible_keys key key_len ref rows Extra
810
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
811
select auto from t1 where
813
vstring <= "dddd" and
821
real_float <= 4.5 and
822
real_double <= 4.5 and
823
real_decimal <= 4.5 and
824
utiny <= 4 - 1 + 1 and /* Checking function composition */
829
/* bits <= b'100' and */
830
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
831
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
832
date_field <= '1904-04-04' and
833
year_field <= '1904' and
834
time_field <= '04:04:04' and
835
date_time <= '1904-04-04 04:04:04'
842
create index medium_index on t1(medium);
844
select auto from t1 where
854
real_float > 1.0 and real_float < 2.0 and
855
real_double > 1.0 and real_double < 2.0 and
856
real_decimal > 1.0 and real_decimal < 2.0 and
862
/* bits = b'001' and */
865
date_field = '1901-01-01' and
866
year_field = '1901' and
867
time_field = '01:01:01' and
868
date_time = '1901-01-01 01:01:01'
870
id select_type table type possible_keys key key_len ref rows Extra
871
1 SIMPLE t1 ref medium_index medium_index 3 const # Using where with pushed condition; Using filesort
872
select auto from t1 where
882
real_float > 1.0 and real_float < 2.0 and
883
real_double > 1.0 and real_double < 2.0 and
884
real_decimal > 1.0 and real_decimal < 2.0 and
890
/* bits = b'001' and */
893
date_field = '1901-01-01' and
894
year_field = '1901' and
895
time_field = '01:01:01' and
896
date_time = '1901-01-01 01:01:01'
901
select auto from t1 where
903
vstring != "aaaa" and
911
(real_float < 1.0 or real_float > 2.0) and
912
(real_double < 1.0 or real_double > 2.0) and
913
(real_decimal < 1.0 or real_decimal > 2.0) and
919
/* bits != b'001' and */
922
date_field != '1901-01-01' and
923
year_field != '1901' and
924
time_field != '01:01:01' and
925
date_time != '1901-01-01 01:01:01'
927
id select_type table type possible_keys key key_len ref rows Extra
928
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
929
select auto from t1 where
931
vstring != "aaaa" and
939
(real_float < 1.0 or real_float > 2.0) and
940
(real_double < 1.0 or real_double > 2.0) and
941
(real_decimal < 1.0 or real_decimal > 2.0) and
947
/* bits != b'001' and */
950
date_field != '1901-01-01' and
951
year_field != '1901' and
952
time_field != '01:01:01' and
953
date_time != '1901-01-01 01:01:01'
960
select auto from t1 where
971
real_double > 1.1 and
972
real_decimal > 1.1 and
978
/* bits > b'001' and */
979
(options = 'two' or options = 'three' or options = 'four') and
980
(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
981
date_field > '1901-01-01' and
982
year_field > '1901' and
983
time_field > '01:01:01' and
984
date_time > '1901-01-01 01:01:01'
986
id select_type table type possible_keys key key_len ref rows Extra
987
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
988
select auto from t1 where
999
real_double > 1.1 and
1000
real_decimal > 1.1 and
1006
/* bits > b'001' and */
1007
(options = 'two' or options = 'three' or options = 'four') and
1008
(flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
1009
date_field > '1901-01-01' and
1010
year_field > '1901' and
1011
time_field > '01:01:01' and
1012
date_time > '1901-01-01 01:01:01'
1019
select auto from t1 where
1020
string >= "aaaa" and
1021
vstring >= "aaaa" and
1029
real_float >= 1.0 and
1030
real_double >= 1.0 and
1031
real_decimal >= 1.0 and
1037
/* bits >= b'001' and */
1038
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
1039
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
1040
date_field >= '1901-01-01' and
1041
year_field >= '1901' and
1042
time_field >= '01:01:01' and
1043
date_time >= '1901-01-01 01:01:01'
1045
id select_type table type possible_keys key key_len ref rows Extra
1046
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
1047
select auto from t1 where
1048
string >= "aaaa" and
1049
vstring >= "aaaa" and
1057
real_float >= 1.0 and
1058
real_double >= 1.0 and
1059
real_decimal >= 1.0 and
1065
/* bits >= b'001' and */
1066
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
1067
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
1068
date_field >= '1901-01-01' and
1069
year_field >= '1901' and
1070
time_field >= '01:01:01' and
1071
date_time >= '1901-01-01 01:01:01'
1079
select auto from t1 where
1081
vstring < "dddd" and
1089
real_float < 4.4 and
1090
real_double < 4.4 and
1091
real_decimal < 4.4 and
1097
/* bits < b'100' and */
1098
(options = 'one' or options = 'two' or options = 'three') and
1099
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
1100
date_field < '1904-01-01' and
1101
year_field < '1904' and
1102
time_field < '04:04:04' and
1103
date_time < '1904-04-04 04:04:04'
1105
id select_type table type possible_keys key key_len ref rows Extra
1106
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
1107
select auto from t1 where
1109
vstring < "dddd" and
1117
real_float < 4.4 and
1118
real_double < 4.4 and
1119
real_decimal < 4.4 and
1125
/* bits < b'100' and */
1126
(options = 'one' or options = 'two' or options = 'three') and
1127
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three') and
1128
date_field < '1904-01-01' and
1129
year_field < '1904' and
1130
time_field < '04:04:04' and
1131
date_time < '1904-04-04 04:04:04'
1138
select auto from t1 where
1139
string <= "dddd" and
1140
vstring <= "dddd" and
1148
real_float <= 4.5 and
1149
real_double <= 4.5 and
1150
real_decimal <= 4.5 and
1151
utiny <= 4 - 1 + 1 and /* Checking function composition */
1156
/* bits <= b'100' and */
1157
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
1158
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
1159
date_field <= '1904-04-04' and
1160
year_field <= '1904' and
1161
time_field <= '04:04:04' and
1162
date_time <= '1904-04-04 04:04:04'
1164
id select_type table type possible_keys key key_len ref rows Extra
1165
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
1166
select auto from t1 where
1167
string <= "dddd" and
1168
vstring <= "dddd" and
1176
real_float <= 4.5 and
1177
real_double <= 4.5 and
1178
real_decimal <= 4.5 and
1179
utiny <= 4 - 1 + 1 and /* Checking function composition */
1184
/* bits <= b'100' and */
1185
(options = 'one' or options = 'two' or options = 'three' or options = 'four') and
1186
(flags = 'one' or flags = 'one,two' or flags = 'one,two,three' or flags = 'one,two,three,four') and
1187
date_field <= '1904-04-04' and
1188
year_field <= '1904' and
1189
time_field <= '04:04:04' and
1190
date_time <= '1904-04-04 04:04:04'
1198
select auto from t1 where
1199
string like "b%" and
1200
vstring like "b%" and
1201
bin like concat(0xBB, '%') and
1202
vbin like concat(0xBB, '%')
1204
id select_type table type possible_keys key key_len ref rows Extra
1205
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
1206
select auto from t1 where
1207
string like "b%" and
1208
vstring like "b%" and
1209
bin like concat(0xBB, '%') and
1210
vbin like concat(0xBB, '%')
1215
select auto from t1 where
1216
string not like "b%" and
1217
vstring not like "b%" and
1218
bin not like concat(0xBB, '%') and
1219
vbin not like concat(0xBB, '%')
1221
id select_type table type possible_keys key key_len ref rows Extra
1222
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
1223
select auto from t1 where
1224
string not like "b%" and
1225
vstring not like "b%" and
1226
bin not like concat(0xBB, '%') and
1227
vbin not like concat(0xBB, '%')
1234
select auto from t1 where
1235
(string between "aaaa" and "cccc") and
1236
(vstring between "aaaa" and "cccc") and
1237
(bin between 0xAAAA and 0xCCCC) and
1238
(vbin between 0xAAAA and 0xCCCC) and
1239
(tiny between -3 and -1) and
1240
(short between -3 and -1) and
1241
(medium between -3 and -1) and
1242
(long_int between -3 and -1) and
1243
(longlong between -3 and -1) and
1244
(utiny between 1 and 3) and
1245
(ushort between 1 and 3) and
1246
(umedium between 1 and 3) and
1247
(ulong between 1 and 3) and
1248
(ulonglong between 1 and 3) and
1249
/* (bits between b'001' and b'011') and */
1250
(options between 'one' and 'three') and
1251
(flags between 'one' and 'one,two,three') and
1252
(date_field between '1901-01-01' and '1903-03-03') and
1253
(year_field between '1901' and '1903') and
1254
(time_field between '01:01:01' and '03:03:03') and
1255
(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
1257
id select_type table type possible_keys key key_len ref rows Extra
1258
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
1259
select auto from t1 where
1260
(string between "aaaa" and "cccc") and
1261
(vstring between "aaaa" and "cccc") and
1262
(bin between 0xAAAA and 0xCCCC) and
1263
(vbin between 0xAAAA and 0xCCCC) and
1264
(tiny between -3 and -1) and
1265
(short between -3 and -1) and
1266
(medium between -3 and -1) and
1267
(long_int between -3 and -1) and
1268
(longlong between -3 and -1) and
1269
(utiny between 1 and 3) and
1270
(ushort between 1 and 3) and
1271
(umedium between 1 and 3) and
1272
(ulong between 1 and 3) and
1273
(ulonglong between 1 and 3) and
1274
/* (bits between b'001' and b'011') and */
1275
(options between 'one' and 'three') and
1276
(flags between 'one' and 'one,two,three') and
1277
(date_field between '1901-01-01' and '1903-03-03') and
1278
(year_field between '1901' and '1903') and
1279
(time_field between '01:01:01' and '03:03:03') and
1280
(date_time between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
1286
select auto from t1 where
1287
("aaaa" between string and string) and
1288
("aaaa" between vstring and vstring) and
1289
(0xAAAA between bin and bin) and
1290
(0xAAAA between vbin and vbin) and
1291
(-1 between tiny and tiny) and
1292
(-1 between short and short) and
1293
(-1 between medium and medium) and
1294
(-1 between long_int and long_int) and
1295
(-1 between longlong and longlong) and
1296
(1 between utiny and utiny) and
1297
(1 between ushort and ushort) and
1298
(1 between umedium and umedium) and
1299
(1 between ulong and ulong) and
1300
(1 between ulonglong and ulonglong) and
1301
/* (b'001' between bits and bits) and */
1302
('one' between options and options) and
1303
('one' between flags and flags) and
1304
('1901-01-01' between date_field and date_field) and
1305
('1901' between year_field and year_field) and
1306
('01:01:01' between time_field and time_field) and
1307
('1901-01-01 01:01:01' between date_time and date_time)
1309
id select_type table type possible_keys key key_len ref rows Extra
1310
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
1311
select auto from t1 where
1312
("aaaa" between string and string) and
1313
("aaaa" between vstring and vstring) and
1314
(0xAAAA between bin and bin) and
1315
(0xAAAA between vbin and vbin) and
1316
(-1 between tiny and tiny) and
1317
(-1 between short and short) and
1318
(-1 between medium and medium) and
1319
(-1 between long_int and long_int) and
1320
(-1 between longlong and longlong) and
1321
(1 between utiny and utiny) and
1322
(1 between ushort and ushort) and
1323
(1 between umedium and umedium) and
1324
(1 between ulong and ulong) and
1325
(1 between ulonglong and ulonglong) and
1326
/* (b'001' between bits and bits) and */
1327
('one' between options and options) and
1328
('one' between flags and flags) and
1329
('1901-01-01' between date_field and date_field) and
1330
('1901' between year_field and year_field) and
1331
('01:01:01' between time_field and time_field) and
1332
('1901-01-01 01:01:01' between date_time and date_time)
1337
select auto from t1 where
1338
(string not between "aaaa" and "cccc") and
1339
(vstring not between "aaaa" and "cccc") and
1340
(bin not between 0xAAAA and 0xCCCC) and
1341
(vbin not between 0xAAAA and 0xCCCC) and
1342
(tiny not between -3 and -1) and
1343
(short not between -3 and -1) and
1344
(medium not between -3 and -1) and
1345
(long_int not between -3 and -1) and
1346
(longlong not between -3 and -1) and
1347
(utiny not between 1 and 3) and
1348
(ushort not between 1 and 3) and
1349
(umedium not between 1 and 3) and
1350
(ulong not between 1 and 3) and
1351
(ulonglong not between 1 and 3) and
1352
/* (bits not between b'001' and b'011') and */
1353
(options not between 'one' and 'three') and
1354
(flags not between 'one' and 'one,two,three') and
1355
(date_field not between '1901-01-01' and '1903-03-03') and
1356
(year_field not between '1901' and '1903') and
1357
(time_field not between '01:01:01' and '03:03:03') and
1358
(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
1360
id select_type table type possible_keys key key_len ref rows Extra
1361
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
1362
select auto from t1 where
1363
(string not between "aaaa" and "cccc") and
1364
(vstring not between "aaaa" and "cccc") and
1365
(bin not between 0xAAAA and 0xCCCC) and
1366
(vbin not between 0xAAAA and 0xCCCC) and
1367
(tiny not between -3 and -1) and
1368
(short not between -3 and -1) and
1369
(medium not between -3 and -1) and
1370
(long_int not between -3 and -1) and
1371
(longlong not between -3 and -1) and
1372
(utiny not between 1 and 3) and
1373
(ushort not between 1 and 3) and
1374
(umedium not between 1 and 3) and
1375
(ulong not between 1 and 3) and
1376
(ulonglong not between 1 and 3) and
1377
/* (bits not between b'001' and b'011') and */
1378
(options not between 'one' and 'three') and
1379
(flags not between 'one' and 'one,two,three') and
1380
(date_field not between '1901-01-01' and '1903-03-03') and
1381
(year_field not between '1901' and '1903') and
1382
(time_field not between '01:01:01' and '03:03:03') and
1383
(date_time not between '1901-01-01 01:01:01' and '1903-03-03 03:03:03')
1388
select auto from t1 where
1389
("aaaa" not between string and string) and
1390
("aaaa" not between vstring and vstring) and
1391
(0xAAAA not between bin and bin) and
1392
(0xAAAA not between vbin and vbin) and
1393
(-1 not between tiny and tiny) and
1394
(-1 not between short and short) and
1395
(-1 not between medium and medium) and
1396
(-1 not between long_int and long_int) and
1397
(-1 not between longlong and longlong) and
1398
(1 not between utiny and utiny) and
1399
(1 not between ushort and ushort) and
1400
(1 not between umedium and umedium) and
1401
(1 not between ulong and ulong) and
1402
(1 not between ulonglong and ulonglong) and
1403
/* (b'001' not between bits and bits) and */
1404
('one' not between options and options) and
1405
('one' not between flags and flags) and
1406
('1901-01-01' not between date_field and date_field) and
1407
('1901' not between year_field and year_field) and
1408
('01:01:01' not between time_field and time_field) and
1409
('1901-01-01 01:01:01' not between date_time and date_time)
1411
id select_type table type possible_keys key key_len ref rows Extra
1412
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
1413
select auto from t1 where
1414
("aaaa" not between string and string) and
1415
("aaaa" not between vstring and vstring) and
1416
(0xAAAA not between bin and bin) and
1417
(0xAAAA not between vbin and vbin) and
1418
(-1 not between tiny and tiny) and
1419
(-1 not between short and short) and
1420
(-1 not between medium and medium) and
1421
(-1 not between long_int and long_int) and
1422
(-1 not between longlong and longlong) and
1423
(1 not between utiny and utiny) and
1424
(1 not between ushort and ushort) and
1425
(1 not between umedium and umedium) and
1426
(1 not between ulong and ulong) and
1427
(1 not between ulonglong and ulonglong) and
1428
/* (b'001' not between bits and bits) and */
1429
('one' not between options and options) and
1430
('one' not between flags and flags) and
1431
('1901-01-01' not between date_field and date_field) and
1432
('1901' not between year_field and year_field) and
1433
('01:01:01' not between time_field and time_field) and
1434
('1901-01-01 01:01:01' not between date_time and date_time)
1441
select auto from t1 where
1442
string in("aaaa","cccc") and
1443
vstring in("aaaa","cccc") and
1444
bin in(0xAAAA,0xCCCC) and
1445
vbin in(0xAAAA,0xCCCC) and
1448
medium in(-1,-3) and
1449
long_int in(-1,-3) and
1450
longlong in(-1,-3) and
1455
ulonglong in(1,3) and
1456
/* bits in(b'001',b'011') and */
1457
options in('one','three') and
1458
flags in('one','one,two,three') and
1459
date_field in('1901-01-01','1903-03-03') and
1460
year_field in('1901','1903') and
1461
time_field in('01:01:01','03:03:03') and
1462
date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
1464
id select_type table type possible_keys key key_len ref rows Extra
1465
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
1466
select auto from t1 where
1467
string in("aaaa","cccc") and
1468
vstring in("aaaa","cccc") and
1469
bin in(0xAAAA,0xCCCC) and
1470
vbin in(0xAAAA,0xCCCC) and
1473
medium in(-1,-3) and
1474
long_int in(-1,-3) and
1475
longlong in(-1,-3) and
1480
ulonglong in(1,3) and
1481
/* bits in(b'001',b'011') and */
1482
options in('one','three') and
1483
flags in('one','one,two,three') and
1484
date_field in('1901-01-01','1903-03-03') and
1485
year_field in('1901','1903') and
1486
time_field in('01:01:01','03:03:03') and
1487
date_time in('1901-01-01 01:01:01','1903-03-03 03:03:03')
1493
select auto from t1 where
1494
"aaaa" in(string) and
1495
"aaaa" in(vstring) and
1501
(-1 in(long_int)) and
1502
(-1 in(longlong)) and
1508
/* b'001' in(bits) and */
1509
'one' in(options) and
1511
'1901-01-01' in(date_field) and
1512
'1901' in(year_field) and
1513
'01:01:01' in(time_field) and
1514
'1901-01-01 01:01:01' in(date_time)
1516
id select_type table type possible_keys key key_len ref rows Extra
1517
1 SIMPLE t1 ref medium_index medium_index 3 const # Using where with pushed condition; Using filesort
1518
select auto from t1 where
1519
"aaaa" in(string) and
1520
"aaaa" in(vstring) and
1526
(-1 in(long_int)) and
1527
(-1 in(longlong)) and
1533
/* b'001' in(bits) and */
1534
'one' in(options) and
1536
'1901-01-01' in(date_field) and
1537
'1901' in(year_field) and
1538
'01:01:01' in(time_field) and
1539
'1901-01-01 01:01:01' in(date_time)
1544
select auto from t1 where
1545
string not in("aaaa","cccc") and
1546
vstring not in("aaaa","cccc") and
1547
bin not in(0xAAAA,0xCCCC) and
1548
vbin not in(0xAAAA,0xCCCC) and
1549
tiny not in(-1,-3) and
1550
short not in(-1,-3) and
1551
medium not in(-1,-3) and
1552
long_int not in(-1,-3) and
1553
longlong not in(-1,-3) and
1554
utiny not in(1,3) and
1555
ushort not in(1,3) and
1556
umedium not in(1,3) and
1557
ulong not in(1,3) and
1558
ulonglong not in(1,3) and
1559
/* bits not in(b'001',b'011') and */
1560
options not in('one','three') and
1561
flags not in('one','one,two,three') and
1562
date_field not in('1901-01-01','1903-03-03') and
1563
year_field not in('1901','1903') and
1564
time_field not in('01:01:01','03:03:03') and
1565
date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
1567
id select_type table type possible_keys key key_len ref rows Extra
1568
1 SIMPLE t1 range medium_index medium_index 3 NULL # Using where with pushed condition; Using filesort
1569
select auto from t1 where
1570
string not in("aaaa","cccc") and
1571
vstring not in("aaaa","cccc") and
1572
bin not in(0xAAAA,0xCCCC) and
1573
vbin not in(0xAAAA,0xCCCC) and
1574
tiny not in(-1,-3) and
1575
short not in(-1,-3) and
1576
medium not in(-1,-3) and
1577
long_int not in(-1,-3) and
1578
longlong not in(-1,-3) and
1579
utiny not in(1,3) and
1580
ushort not in(1,3) and
1581
umedium not in(1,3) and
1582
ulong not in(1,3) and
1583
ulonglong not in(1,3) and
1584
/* bits not in(b'001',b'011') and */
1585
options not in('one','three') and
1586
flags not in('one','one,two,three') and
1587
date_field not in('1901-01-01','1903-03-03') and
1588
year_field not in('1901','1903') and
1589
time_field not in('01:01:01','03:03:03') and
1590
date_time not in('1901-01-01 01:01:01','1903-03-03 03:03:03')
1596
select auto from t1 where
1597
"aaaa" not in(string) and
1598
"aaaa" not in(vstring) and
1599
0xAAAA not in(bin) and
1600
0xAAAA not in(vbin) and
1601
(-1 not in(tiny)) and
1602
(-1 not in(short)) and
1603
(-1 not in(medium)) and
1604
(-1 not in(long_int)) and
1605
(-1 not in(longlong)) and
1607
1 not in(ushort) and
1608
1 not in(umedium) and
1610
1 not in(ulonglong) and
1611
/* b'001' not in(bits) and */
1612
'one' not in(options) and
1613
'one' not in(flags) and
1614
'1901-01-01' not in(date_field) and
1615
'1901' not in(year_field) and
1616
'01:01:01' not in(time_field) and
1617
'1901-01-01 01:01:01' not in(date_time)
1619
id select_type table type possible_keys key key_len ref rows Extra
1620
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
1621
select auto from t1 where
1622
"aaaa" not in(string) and
1623
"aaaa" not in(vstring) and
1624
0xAAAA not in(bin) and
1625
0xAAAA not in(vbin) and
1626
(-1 not in(tiny)) and
1627
(-1 not in(short)) and
1628
(-1 not in(medium)) and
1629
(-1 not in(long_int)) and
1630
(-1 not in(longlong)) and
1632
1 not in(ushort) and
1633
1 not in(umedium) and
1635
1 not in(ulonglong) and
1636
/* b'001' not in(bits) and */
1637
'one' not in(options) and
1638
'one' not in(flags) and
1639
'1901-01-01' not in(date_field) and
1640
'1901' not in(year_field) and
1641
'01:01:01' not in(time_field) and
1642
'1901-01-01 01:01:01' not in(date_time)
1652
vstring = "aaaa" and
1660
real_float > 1.0 and real_float < 2.0 and
1661
real_double > 1.0 and real_double < 2.0 and
1662
real_decimal > 1.0 and real_decimal < 2.0 and
1668
/* bits = b'001' and */
1671
date_field = '1901-01-01' and
1672
year_field = '1901' and
1673
time_field = '01:01:01' and
1674
date_time = '1901-01-01 01:01:01';
1678
vstring = "aaaa" and
1686
real_float > 1.0 and real_float < 2.0 and
1687
real_double > 1.0 and real_double < 2.0 and
1688
real_decimal > 1.0 and real_decimal < 2.0 and
1694
/* bits = b'001' and */
1697
date_field = '1901-01-01' and
1698
year_field = '1901' and
1699
time_field = '01:01:01' and
1700
date_time = '1901-01-01 01:01:01';
1701
select count(*) from t1;
1705
select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
1706
id select_type table type possible_keys key key_len ref rows Extra
1707
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL # Using where with pushed condition; Using filesort
1708
select * from t2 where attr3 is null or attr1 > 2 and pk1= 3 order by pk1;
1709
pk1 attr1 attr2 attr3
1713
select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
1714
id select_type table type possible_keys key key_len ref rows Extra
1715
1 SIMPLE t2 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
1716
select * from t2 where attr3 is not null and attr1 > 2 order by pk1;
1717
pk1 attr1 attr2 attr3
1722
select * from t3 where attr2 > 9223372036854775803 and attr3 != 3 order by pk1;
1723
id select_type table type possible_keys key key_len ref rows Extra
1724
1 SIMPLE t3 ALL NULL NULL NULL NULL # Using where with pushed condition; Using filesort
1725
select * from t3 where attr2 > 9223372036854775803 and attr3 != 3 order by pk1;
1726
pk1 attr1 attr2 attr3 attr4
1727
2 2 9223372036854775804 2 c
1728
4 4 9223372036854775806 4 e
1729
5 5 9223372036854775807 5 f
1731
select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
1732
id select_type table type possible_keys key key_len ref rows Extra
1733
1 SIMPLE t2 ALL NULL NULL NULL NULL # Using where with pushed condition; Using temporary; Using filesort
1734
1 SIMPLE t3 ALL NULL NULL NULL NULL # Using where with pushed condition; Using join buffer
1735
select * from t2,t3 where t2.attr1 < 1 and t2.attr2 = t3.attr2 and t3.attr1 < 5 order by t2.pk1;
1736
pk1 attr1 attr2 attr3 pk1 attr1 attr2 attr3 attr4
1739
select * from t4 where attr1 < 5 and attr2 > 9223372036854775803 and attr3 != 3 order by t4.pk1;
1740
id select_type table type possible_keys key key_len ref rows Extra
1741
1 SIMPLE t4 range attr1 attr1 4 NULL # Using where with pushed condition; Using filesort
1742
select * from t4 where attr1 < 5 and attr2 > 9223372036854775803 and attr3 != 3 order by t4.pk1;
1743
pk1 attr1 attr2 attr3 attr4
1744
2 2 9223372036854775804 2 c
1745
4 4 9223372036854775806 4 e
1747
select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
1748
id select_type table type possible_keys key key_len ref rows Extra
1749
1 SIMPLE t4 range attr1 attr1 4 NULL # Using where with pushed condition; Using temporary; Using filesort
1750
1 SIMPLE t3 ALL NULL NULL NULL NULL # Using where; Using join buffer
1751
select * from t3,t4 where t4.attr1 > 1 and t4.attr2 = t3.attr2 and t4.attr3 < 5 order by t4.pk1;
1752
pk1 attr1 attr2 attr3 attr4 pk1 attr1 attr2 attr3 attr4
1753
2 2 9223372036854775804 2 c 2 2 9223372036854775804 2 c
1754
3 3 9223372036854775805 3 d 3 3 9223372036854775805 3 d
1755
4 4 9223372036854775806 4 e 4 4 9223372036854775806 4 e
1757
select auto from t1 where string = "aaaa" collate latin1_general_ci order by auto;
1758
id select_type table type possible_keys key key_len ref rows Extra
1759
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where; Using filesort
1761
select * from t2 where (attr1 < 2) = (attr2 < 2) order by pk1;
1762
id select_type table type possible_keys key key_len ref rows Extra
1763
1 SIMPLE t2 ALL NULL NULL NULL NULL # Using where; Using filesort
1765
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;
1766
id select_type table type possible_keys key key_len ref rows Extra
1767
1 SIMPLE t3 ALL NULL NULL NULL NULL # Using temporary; Using filesort
1768
1 SIMPLE t4 ALL NULL NULL NULL NULL # Using where
1769
create table t5 (a int primary key auto_increment, b tinytext not null)
1771
insert into t5 (b) values ('jonas'), ('jensing'), ('johan');
1772
set engine_condition_pushdown = off;
1773
select * from t5 where b like '%jo%' order by a;
1777
set engine_condition_pushdown = on;
1778
explain select * from t5 where b like '%jo%';
1779
id select_type table type possible_keys key key_len ref rows Extra
1780
1 SIMPLE t5 ALL NULL NULL NULL NULL # Using where
1781
select * from t5 where b like '%jo%' order by a;
1785
set engine_condition_pushdown = off;
1786
select auto from t1 where date_time like '1902-02-02 %' order by auto;
1789
select auto from t1 where date_time not like '1902-02-02 %' order by auto;
1793
set engine_condition_pushdown = on;
1794
explain select auto from t1 where date_time like '1902-02-02 %';
1795
id select_type table type possible_keys key key_len ref rows Extra
1796
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where
1797
select auto from t1 where date_time like '1902-02-02 %' order by auto;
1800
explain select auto from t1 where date_time not like '1902-02-02 %';
1801
id select_type table type possible_keys key key_len ref rows Extra
1802
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where
1803
select auto from t1 where date_time not like '1902-02-02 %' order by auto;
1808
create table t1 (a int, b varchar(3), primary key using hash(a))
1810
insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
1811
set engine_condition_pushdown = off;
1812
select * from t1 where b like 'ab';
1815
select * from t1 where b like 'ab' or b like 'ab';
1818
select * from t1 where b like 'abc';
1821
select * from t1 where b like 'abc' or b like 'abc';
1824
set engine_condition_pushdown = on;
1825
select * from t1 where b like 'ab';
1828
select * from t1 where b like 'ab' or b like 'ab';
1831
select * from t1 where b like 'abc';
1834
select * from t1 where b like 'abc' or b like 'abc';
1838
create table t1 (a int, b char(3), primary key using hash(a))
1840
insert into t1 values (1,'a'), (2,'ab'), (3,'abc');
1841
set engine_condition_pushdown = off;
1842
select * from t1 where b like 'ab';
1845
select * from t1 where b like 'ab' or b like 'ab';
1848
select * from t1 where b like 'abc';
1851
select * from t1 where b like 'abc' or b like 'abc';
1854
set engine_condition_pushdown = on;
1855
select * from t1 where b like 'ab';
1858
select * from t1 where b like 'ab' or b like 'ab';
1861
select * from t1 where b like 'abc';
1864
select * from t1 where b like 'abc' or b like 'abc';
1868
create table t1 ( fname varchar(255), lname varchar(255) )
1870
insert into t1 values ("Young","Foo");
1871
set engine_condition_pushdown = 0;
1872
SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
1875
set engine_condition_pushdown = 1;
1876
SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
1879
insert into t1 values ("aaa", "aaa");
1880
insert into t1 values ("bbb", "bbb");
1881
insert into t1 values ("ccc", "ccc");
1882
insert into t1 values ("ddd", "ddd");
1883
set engine_condition_pushdown = 0;
1884
SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
1887
set engine_condition_pushdown = 1;
1888
SELECT fname, lname FROM t1 WHERE (fname like 'Y%') or (lname like 'F%');
1892
create table t1 (a int, b int, c int, d int, primary key using hash(a))
1894
insert into t1 values (10,1,100,0+0x1111);
1895
insert into t1 values (20,2,200,0+0x2222);
1896
insert into t1 values (30,3,300,0+0x3333);
1897
insert into t1 values (40,4,400,0+0x4444);
1898
insert into t1 values (50,5,500,0+0x5555);
1899
set engine_condition_pushdown = on;
1900
select a,b,d from t1
1901
where b in (0,1,2,5)
1907
-- big filter just below limit
1912
-- big filter just above limit
1918
Warning 4294 Scan filter is too large, discarded
1919
set engine_condition_pushdown = @old_ecpd;
1920
DROP TABLE t1,t2,t3,t4,t5;