~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/r/func_in.result

  • Committer: Brian Aker
  • Date: 2009-07-11 19:23:04 UTC
  • mfrom: (1089.1.14 merge)
  • Revision ID: brian@gaz-20090711192304-ootijyl5yf9jq9kd
Merge Brian

Show diffs side-by-side

added added

removed removed

Lines of Context:
103
103
A
104
104
NULL
105
105
drop table t1;
106
 
create table t1 (id int(10) primary key);
 
106
create table t1 (id int primary key);
107
107
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9);
108
108
select * from t1 where id in (2,5,9);
109
109
id
112
112
9
113
113
drop table t1;
114
114
create table t1 (
115
 
a char(1) character set latin1 collate latin1_general_ci,
116
 
b char(1) character set latin1 collate latin1_swedish_ci,
117
 
c char(1) character set latin1 collate latin1_danish_ci
 
115
a char(1),
 
116
b char(1),
 
117
c char(1)
118
118
);
119
119
insert into t1 values ('A','B','C');
120
120
insert into t1 values ('a','c','c');
121
121
select * from t1 where a in (b);
122
 
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='
 
122
a       b       c
123
123
select * from t1 where a in (b,c);
124
 
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT), (latin1_swedish_ci,IMPLICIT), (latin1_danish_ci,IMPLICIT) for operation ' IN '
 
124
a       b       c
125
125
select * from t1 where 'a' in (a,b,c);
126
 
ERROR HY000: Illegal mix of collations for operation ' IN '
 
126
a       b       c
 
127
A       B       C
 
128
a       c       c
127
129
select * from t1 where 'a' in (a);
128
130
a       b       c
129
131
A       B       C
132
134
a       b       c
133
135
A       B       C
134
136
a       c       c
135
 
select * from t1 where 'a' collate latin1_general_ci in (a,b,c);
 
137
select * from t1 where 'a' collate utf8_general_ci in (a,b,c);
136
138
a       b       c
137
139
A       B       C
138
140
a       c       c
139
 
select * from t1 where 'a' collate latin1_bin in (a,b,c);
140
 
a       b       c
141
 
a       c       c
142
 
select * from t1 where 'a' in (a,b,c collate latin1_bin);
143
 
a       b       c
144
 
a       c       c
145
 
explain extended select * from t1 where 'a' in (a,b,c collate latin1_bin);
 
141
select * from t1 where 'a' collate utf8_bin in (a,b,c);
 
142
a       b       c
 
143
a       c       c
 
144
select * from t1 where 'a' in (a,b,c collate utf8_bin);
 
145
a       b       c
 
146
a       c       c
 
147
explain extended select * from t1 where 'a' in (a,b,c collate utf8_bin);
146
148
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
147
149
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
148
150
Warnings:
149
 
Note    1003    select "test"."t1"."a" AS "a","test"."t1"."b" AS "b","test"."t1"."c" AS "c" from "test"."t1" where ('a' in ("test"."t1"."a","test"."t1"."b",("test"."t1"."c" collate latin1_bin)))
150
 
drop table t1;
151
 
set names utf8;
152
 
create table t1 (a char(10) character set utf8 not null);
153
 
insert into t1 values ('bbbb'),(_koi8r'����'),(_latin1'����');
154
 
select a from t1 where a in ('bbbb',_koi8r'����',_latin1'����') order by a;
155
 
a
156
 
ÄÄÄÄ
157
 
bbbb
158
 
цццц
159
 
drop table t1;
160
 
create table t1 (a char(10) character set latin1 not null);
 
151
Note    1003    select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where ('a' in (`test`.`t1`.`a`,`test`.`t1`.`b`,(`test`.`t1`.`c` collate utf8_bin)))
 
152
drop table t1;
 
153
create table t1 (a char(10) not null);
161
154
insert into t1 values ('a'),('b'),('c');
162
155
select a from t1 where a IN ('a','b','c') order by a;
163
156
a
165
158
b
166
159
c
167
160
drop table t1;
168
 
set names latin1;
169
161
select '1.0' in (1,2);
170
162
'1.0' in (1,2)
171
163
1
187
179
select 1 in ('1.1',2.0);
188
180
1 in ('1.1',2.0)
189
181
0
190
 
create table t1 (a char(2) character set binary);
 
182
create table t1 (a char(2));
191
183
insert into t1 values ('aa'), ('bb');
192
184
select * from t1 where a in (NULL, 'aa');
193
185
a
224
216
44
225
217
46
226
218
DROP TABLE t1;
227
 
create table t1 (a int);
 
219
create table t1 (a int) ENGINE=MYISAM;
228
220
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
229
 
create table t2 (a int, filler char(200), key(a));
 
221
create table t2 (a int, filler char(200), key(a)) ENGINE=MYISAM;
230
222
insert into t2 select C.a*2,   'no'  from t1 A, t1 B, t1 C;
231
223
insert into t2 select C.a*2+1, 'yes' from t1 C;
232
224
explain 
233
225
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
234
226
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
235
 
1       SIMPLE  t2      range   a       a       5       NULL    12      Using index condition; Using MRR
 
227
1       SIMPLE  t2      range   a       a       5       NULL    12      Using where; Using MRR
236
228
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
237
229
a       filler
238
230
1       yes
247
239
19      yes
248
240
explain select * from t2 force index(a) where a NOT IN (2,2,2,2,2,2);
249
241
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
250
 
1       SIMPLE  t2      range   a       a       5       NULL    912     Using index condition; Using MRR
 
242
1       SIMPLE  t2      range   a       a       5       NULL    912     Using where; Using MRR
251
243
explain select * from t2 force index(a) where a <> 2;
252
244
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
253
 
1       SIMPLE  t2      range   a       a       5       NULL    912     Using index condition; Using MRR
 
245
1       SIMPLE  t2      range   a       a       5       NULL    912     Using where; Using MRR
254
246
drop table t2;
255
247
create table t2 (a datetime, filler char(200), key(a));
256
248
insert into t2 select '2006-04-25 10:00:00' + interval C.a minute,
262
254
'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00', 
263
255
'2006-04-25 10:06:00', '2006-04-25 10:08:00');
264
256
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
265
 
1       SIMPLE  t2      range   a       a       9       NULL    18      Using index condition; Using MRR
 
257
1       SIMPLE  t2      range   a       a       9       NULL    20      Using where; Using MRR
266
258
select * from t2 where a NOT IN (
267
259
'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00', 
268
260
'2006-04-25 10:06:00', '2006-04-25 10:08:00');
286
278
('barbas','1'), ('bazbazbay', '1'),('zz','1');
287
279
explain select * from t2 where a not in('foo','barbar', 'bazbazbaz');
288
280
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
289
 
1       SIMPLE  t2      range   a       a       13      NULL    7       Using index condition; Using MRR
 
281
1       SIMPLE  t2      range   a       a       43      NULL    5       Using where; Using MRR
290
282
drop table t2;
291
283
create table t2 (a decimal(10,5), filler char(200), key(a));
292
284
insert into t2 select 345.67890, 'no' from t1 A, t1 B;
297
289
explain
298
290
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
299
291
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
300
 
1       SIMPLE  t2      range   a       a       7       NULL    7       Using index condition; Using MRR
 
292
1       SIMPLE  t2      range   a       a       7       NULL    4       Using where; Using MRR
301
293
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
302
294
a       filler
303
295
0.00000 1
323
315
drop table t2;
324
316
drop table t1;
325
317
create table t1 (
326
 
some_id smallint(5) unsigned,
 
318
some_id int,
327
319
key (some_id)
328
320
);
329
321
insert into t1 values (1),(2);
359
351
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
360
352
1       SIMPLE  t3      index   PRIMARY PRIMARY 4       NULL    4       Using index
361
353
1       SIMPLE  t1      eq_ref  PRIMARY PRIMARY 4       test.t3.a       1       
362
 
1       SIMPLE  t2      eq_ref  PRIMARY PRIMARY 4       test.t3.a       1       
 
354
1       SIMPLE  t2      ALL     PRIMARY NULL    NULL    NULL    5       Using where; Using join buffer
363
355
1       SIMPLE  t4      ALL     PRIMARY NULL    NULL    NULL    7       Range checked for each record (index map: 0x1)
364
356
SELECT STRAIGHT_JOIN * FROM t3 
365
357
JOIN t1 ON t3.a=t1.a 
377
369
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
378
370
1       PRIMARY t3      index   PRIMARY PRIMARY 4       NULL    4       Using index
379
371
1       PRIMARY t1      eq_ref  PRIMARY PRIMARY 4       test.t3.a       1       
380
 
1       PRIMARY t2      eq_ref  PRIMARY PRIMARY 4       test.t3.a       1       
 
372
1       PRIMARY t2      ALL     PRIMARY NULL    NULL    NULL    5       Using where; Using join buffer
381
373
2       DEPENDENT SUBQUERY      t4      index   NULL    PRIMARY 4       NULL    7       Using where; Using index
382
374
SELECT STRAIGHT_JOIN 
383
375
(SELECT SUM(t4.a) FROM t4 WHERE t4.a IN (t1.b, t2.b)) 
387
379
3
388
380
3
389
381
DROP TABLE t1,t2,t3,t4;
390
 
CREATE TABLE t1(a BIGINT UNSIGNED);
391
 
INSERT INTO t1 VALUES (0xFFFFFFFFFFFFFFFF);
 
382
CREATE TABLE t1(a BIGINT);
 
383
INSERT INTO t1 VALUES (0x0FFFFFFFFFFFFFFF);
392
384
SELECT * FROM t1 WHERE a=-1 OR a=-2 ;
393
385
a
394
386
SELECT * FROM t1 WHERE a IN (-1, -2);
395
387
a
396
 
CREATE TABLE t2 (a BIGINT UNSIGNED);
 
388
CREATE TABLE t2 (a BIGINT);
397
389
insert into t2 values(13491727406643098568),
398
 
(0x7fffffefffffffff),
399
 
(0x7ffffffeffffffff),
400
 
(0x7fffffffefffffff),
401
 
(0x7ffffffffeffffff),
402
 
(0x7fffffffffefffff),
403
 
(0x7ffffffffffeffff),
404
 
(0x7fffffffffffefff),
405
 
(0x7ffffffffffffeff),
406
 
(0x7fffffffffffffef),
407
 
(0x7ffffffffffffffe),
408
 
(0x7fffffffffffffff),
409
 
(0x8000000000000000),
410
 
(0x8000000000000001),
411
 
(0x8000000000000002),
412
 
(0x8000000000000300),
413
 
(0x8000000000000400),
414
 
(0x8000000000000401),
415
 
(0x8000000000004001),
416
 
(0x8000000000040001),
417
 
(0x8000000000400001),
418
 
(0x8000000004000001),
419
 
(0x8000000040000001),
420
 
(0x8000000400000001),
421
 
(0x8000004000000001),
422
 
(0x8000040000000001);
423
 
SELECT HEX(a) FROM t2 WHERE a IN 
424
 
(CAST(0xBB3C3E98175D33C8 AS UNSIGNED),
425
 
42);
 
390
(0x0fffffefffffffff),
 
391
(0x0ffffffeffffffff),
 
392
(0x0fffffffefffffff),
 
393
(0x0ffffffffeffffff),
 
394
(0x0fffffffffefffff),
 
395
(0x0ffffffffffeffff),
 
396
(0x0fffffffffffefff),
 
397
(0x0ffffffffffffeff),
 
398
(0x0fffffffffffffef),
 
399
(0x0ffffffffffffffe),
 
400
(0x0fffffffffffffff),
 
401
(0x2000000000000000),
 
402
(0x2000000000000001),
 
403
(0x2000000000000002),
 
404
(0x2000000000000300),
 
405
(0x2000000000000400),
 
406
(0x2000000000000401),
 
407
(0x2000000000004001),
 
408
(0x2000000000040001),
 
409
(0x2000000000400001),
 
410
(0x2000000004000001),
 
411
(0x2000000040000001),
 
412
(0x2000000400000001),
 
413
(0x2000004000000001),
 
414
(0x2000040000000001);
 
415
SELECT HEX(a) FROM t2 WHERE a IN (0xBB3C3E98175D33C8, 42);
426
416
HEX(a)
427
 
BB3C3E98175D33C8
428
417
SELECT HEX(a) FROM t2 WHERE a IN
429
 
(CAST(0xBB3C3E98175D33C8 AS UNSIGNED),
430
 
CAST(0x7fffffffffffffff AS UNSIGNED),
431
 
CAST(0x8000000000000000 AS UNSIGNED),
432
 
CAST(0x8000000000000400 AS UNSIGNED),
433
 
CAST(0x8000000000000401 AS UNSIGNED),
 
418
(0xBB3C3E98175D33C8,
 
419
0x2fffffffffffffff,
 
420
0x2000000000000000,
 
421
0x2000000000000400,
 
422
0x2000000000000401,
434
423
42);
435
424
HEX(a)
436
 
BB3C3E98175D33C8
437
 
7FFFFFFFFFFFFFFF
438
 
8000000000000000
439
 
8000000000000400
440
 
8000000000000401
441
 
SELECT HEX(a) FROM t2 WHERE a IN 
442
 
(CAST(0x7fffffffffffffff AS UNSIGNED), 
443
 
CAST(0x8000000000000001 AS UNSIGNED));
444
 
HEX(a)
445
 
7FFFFFFFFFFFFFFF
446
 
8000000000000001
447
 
SELECT HEX(a) FROM t2 WHERE a IN 
448
 
(CAST(0x7ffffffffffffffe AS UNSIGNED), 
449
 
CAST(0x7fffffffffffffff AS UNSIGNED));
450
 
HEX(a)
451
 
7FFFFFFFFFFFFFFE
452
 
7FFFFFFFFFFFFFFF
453
 
SELECT HEX(a) FROM t2 WHERE a IN 
454
 
(0x7ffffffffffffffe, 
455
 
0x7fffffffffffffff,
 
425
2000000000000000
 
426
2000000000000001
 
427
2000000000000002
 
428
2000000000000300
 
429
2000000000000400
 
430
2000000000000401
 
431
SELECT HEX(a) FROM t2 WHERE a IN 
 
432
(0x7fffffffffffffff, 
 
433
0x2000000000000001);
 
434
HEX(a)
 
435
2000000000000001
 
436
SELECT HEX(a) FROM t2 WHERE a IN 
 
437
(0x2ffffffffffffffe, 
 
438
0x2fffffffffffffff);
 
439
HEX(a)
 
440
SELECT HEX(a) FROM t2 WHERE a IN 
 
441
(0x2ffffffffffffffe, 
 
442
0x2fffffffffffffff,
456
443
'abc');
457
444
HEX(a)
458
 
7FFFFFFFFFFFFFFE
459
 
7FFFFFFFFFFFFFFF
460
 
CREATE TABLE t3 (a BIGINT UNSIGNED);
 
445
CREATE TABLE t3 (a BIGINT);
461
446
INSERT INTO t3 VALUES (9223372036854775551);
462
447
SELECT HEX(a) FROM t3 WHERE a IN (9223372036854775807, 42);
463
448
HEX(a)
473
458
INSERT INTO t1 VALUES (1),(2);
474
459
SELECT id FROM t1 WHERE id IN(4564, (SELECT IF(1=0,1,1/0)) );
475
460
id
 
461
Warnings:
 
462
Error   1365    Division by 0
 
463
Error   1365    Division by 0
476
464
DROP TABLE t1;
477
465
End of 5.0 tests
478
 
create table t1(f1 char(1));
 
466
create table t1(f1 char(1)) ENGINE=MYISAM;
479
467
insert into t1 values ('a'),('b'),('1');
480
468
select f1 from t1 where f1 in ('a',1);
481
469
f1
482
470
a
483
471
1
484
 
Warnings:
485
 
Warning 1292    Truncated incorrect DOUBLE value: 'b'
486
472
select f1, case f1 when 'a' then '+' when 1 then '-' end from t1;
487
473
f1      case f1 when 'a' then '+' when 1 then '-' end 
488
474
a       +
489
475
b       NULL
490
476
1       -
491
 
Warnings:
492
 
Warning 1292    Truncated incorrect DOUBLE value: 'b'
493
477
create index t1f1_idx on t1(f1);
494
478
select f1 from t1 where f1 in ('a',1);
495
479
f1
496
480
1
497
481
a
498
 
Warnings:
499
 
Warning 1292    Truncated incorrect DOUBLE value: 'b'
500
482
explain select f1 from t1 where f1 in ('a',1);
501
483
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
502
 
1       SIMPLE  t1      index   t1f1_idx        t1f1_idx        2       NULL    3       Using where; Using index
 
484
1       SIMPLE  t1      index   t1f1_idx        t1f1_idx        7       NULL    3       Using where; Using index
503
485
select f1 from t1 where f1 in ('a','b');
504
486
f1
505
487
a
506
488
b
507
489
explain select f1 from t1 where f1 in ('a','b');
508
490
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
509
 
1       SIMPLE  t1      index   t1f1_idx        t1f1_idx        2       NULL    3       Using where; Using index
 
491
1       SIMPLE  t1      index   t1f1_idx        t1f1_idx        7       NULL    3       Using where; Using index
510
492
select f1 from t1 where f1 in (2,1);
511
493
f1
512
494
1
513
 
Warnings:
514
 
Warning 1292    Truncated incorrect DOUBLE value: 'a'
515
 
Warning 1292    Truncated incorrect DOUBLE value: 'b'
516
495
explain select f1 from t1 where f1 in (2,1);
517
496
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
518
 
1       SIMPLE  t1      index   t1f1_idx        t1f1_idx        2       NULL    3       Using where; Using index
519
 
create table t2(f2 int, index t2f2(f2));
 
497
1       SIMPLE  t1      index   t1f1_idx        t1f1_idx        7       NULL    3       Using where; Using index
 
498
create table t2(f2 int, index t2f2(f2)) ENGINE=MYISAM;
520
499
insert into t2 values(0),(1),(2);
521
500
select f2 from t2 where f2 in ('a',2);
522
501
f2
552
531
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
553
532
1       SIMPLE  t2      index   t2f2    t2f2    5       NULL    3       Using where; Using index
554
533
drop table t1, t2;
555
 
create table t1 (a time, key(a));
 
534
create table t1 (a datetime, key(a));
556
535
insert into t1 values (),(),(),(),(),(),(),(),(),();
557
536
select a from t1 where a not in (a,a,a) group by a;
558
537
a