~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/r/pbxt/subselect_sj.result

  • Committer: Monty Taylor
  • Date: 2008-09-16 00:00:48 UTC
  • mto: This revision was merged to the branch mainline in revision 391.
  • Revision ID: monty@inaugust.com-20080916000048-3rvrv3gv9l0ad3gs
Fixed copyright headers in drizzled/

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
drop table if exists t0, t1, t2, t10, t11, t12;
2
 
create table t0 (a int);
3
 
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
4
 
create table t1(a int, b int);
5
 
insert into t1 values (0,0),(1,1),(2,2);
6
 
create table t2 as select * from t1;
7
 
create table t11(a int, b int);
8
 
create table t10 (pk int, a int, primary key(pk));
9
 
insert into t10 select a,a from t0;
10
 
create table t12 like t10;
11
 
insert into t12 select * from t10;
12
 
Flattened because of dependency, t10=func(t1)
13
 
explain select * from t1 where a in (select pk from t10);
14
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
15
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       Using where
16
 
2       SUBQUERY        t10     ALL     NULL    NULL    NULL    NULL    10      
17
 
select * from t1 where a in (select pk from t10);
18
 
a       b
19
 
0       0
20
 
1       1
21
 
2       2
22
 
A confluent case of dependency
23
 
explain select * from t1 where a in (select a from t10 where pk=12);
24
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
25
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       Using where
26
 
2       SUBQUERY        NULL    NULL    NULL    NULL    NULL    NULL    NULL    Impossible WHERE noticed after reading const tables
27
 
select * from t1 where a in (select a from t10 where pk=12);
28
 
a       b
29
 
An empty table inside
30
 
explain select * from t1 where a in (select a from t11);
31
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
32
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       Using where
33
 
2       SUBQUERY        t11     ALL     NULL    NULL    NULL    NULL    0       
34
 
select * from t1 where a in (select a from t11);
35
 
a       b
36
 
explain select * from t1 where a in (select pk from t10) and b in (select pk from t10);
37
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
38
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       Using where
39
 
3       SUBQUERY        t10     ALL     NULL    NULL    NULL    NULL    10      
40
 
2       SUBQUERY        t10     ALL     NULL    NULL    NULL    NULL    10      
41
 
select * from t1 where a in (select pk from t10) and b in (select pk from t10);
42
 
a       b
43
 
0       0
44
 
1       1
45
 
2       2
46
 
flattening a nested subquery
47
 
explain select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
48
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
49
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       Using where
50
 
2       SUBQUERY        t10     ALL     NULL    NULL    NULL    NULL    10      Using where
51
 
3       SUBQUERY        t12     ALL     NULL    NULL    NULL    NULL    10      
52
 
select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
53
 
a       b
54
 
0       0
55
 
1       1
56
 
2       2
57
 
flattening subquery w/ several tables
58
 
explain extended select * from t1 where a in (select t10.pk from t10, t12 where t12.pk=t10.a);
59
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
60
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
61
 
2       SUBQUERY        t10     ALL     NULL    NULL    NULL    NULL    10      100.00  
62
 
2       SUBQUERY        t12     eq_ref  PRIMARY PRIMARY 4       test.t10.a      1       100.00  
63
 
Warnings:
64
 
Note    1003    select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where <in_optimizer>(`test`.`t1`.`a`,`test`.`t1`.`a` in ( <materialize> (select `test`.`t10`.`pk` AS `pk` from `test`.`t10` join `test`.`t12` where (`test`.`t12`.`pk` = `test`.`t10`.`a`) ), <primary_index_lookup>(`test`.`t1`.`a` in <temporary table> on distinct_key)))
65
 
subqueries within outer joins go into ON expr.
66
 
select * from
67
 
t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10)) 
68
 
where t1.a < 5;
69
 
a       b       a       b
70
 
0       0       0       0
71
 
1       1       1       1
72
 
2       2       2       2
73
 
insert into t1 select (A.a + 10 * B.a),1 from t0 A, t0 B;
74
 
explain extended select * from t1 where a in (select pk from t10 where pk<3);
75
 
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
76
 
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    103     100.00  Using where
77
 
2       SUBQUERY        t10     ALL     PRIMARY NULL    NULL    NULL    10      100.00  Using where
78
 
Warnings:
79
 
Note    1003    select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where <in_optimizer>(`test`.`t1`.`a`,`test`.`t1`.`a` in ( <materialize> (select `test`.`t10`.`pk` AS `pk` from `test`.`t10` where (`test`.`t10`.`pk` < 3) ), <primary_index_lookup>(`test`.`t1`.`a` in <temporary table> on distinct_key)))
80
 
drop table t0, t1;
81
 
drop table t10, t11, t12;
82
 
drop table t2;