~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/r/subselect_sj.result

  • Committer: Monty Taylor
  • Date: 2009-04-14 19:16:51 UTC
  • mto: (997.2.5 mordred)
  • mto: This revision was merged to the branch mainline in revision 994.
  • Revision ID: mordred@inaugust.com-20090414191651-ltbww6hpqks8k7qk
Clarified instructions in README.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
Flattened because of dependency, t10=func(t1)
13
13
explain select * from t1 where a in (select pk from t10);
14
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     index   NULL    PRIMARY 4       NULL    10      Using index
 
15
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       
 
16
1       PRIMARY t10     eq_ref  PRIMARY PRIMARY 4       test.t1.a       1       Using index
17
17
select * from t1 where a in (select pk from t10);
18
18
a       b
19
19
0       0
22
22
A confluent case of dependency
23
23
explain select * from t1 where a in (select a from t10 where pk=12);
24
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
 
25
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       
 
26
1       PRIMARY t10     const   PRIMARY PRIMARY 4       const   1       Using where
27
27
select * from t1 where a in (select a from t10 where pk=12);
28
28
a       b
29
29
An empty table inside
30
30
explain select * from t1 where a in (select a from t11);
31
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    1       
 
32
1       PRIMARY t11     ALL     NULL    NULL    NULL    NULL    1       Start temporary
 
33
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       Using where; End temporary; Using join buffer
34
34
select * from t1 where a in (select a from t11);
35
35
a       b
36
36
explain select * from t1 where a in (select pk from t10) and b in (select pk from t10);
37
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     index   NULL    PRIMARY 4       NULL    10      Using index
40
 
2       SUBQUERY        t10     index   NULL    PRIMARY 4       NULL    10      Using index
 
38
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       
 
39
1       PRIMARY t10     eq_ref  PRIMARY PRIMARY 4       test.t1.a       1       Using index
 
40
1       PRIMARY t10     eq_ref  PRIMARY PRIMARY 4       test.t1.b       1       Using index
41
41
select * from t1 where a in (select pk from t10) and b in (select pk from t10);
42
42
a       b
43
43
0       0
46
46
flattening a nested subquery
47
47
explain select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
48
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     index   NULL    PRIMARY 4       NULL    10      Using index
 
49
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       
 
50
1       PRIMARY t10     eq_ref  PRIMARY PRIMARY 4       test.t1.a       1       
 
51
1       PRIMARY t12     eq_ref  PRIMARY PRIMARY 4       test.t10.a      1       Using index
52
52
select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
53
53
a       b
54
54
0       0
57
57
flattening subquery w/ several tables
58
58
explain extended select * from t1 where a in (select t10.pk from t10, t12 where t12.pk=t10.a);
59
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  Using index
 
60
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    3       100.00  
 
61
1       PRIMARY t10     eq_ref  PRIMARY PRIMARY 4       test.t1.a       1       100.00  
 
62
1       PRIMARY t12     eq_ref  PRIMARY PRIMARY 4       test.t10.a      1       100.00  Using index
63
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)))
 
64
Note    1003    select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from (`test`.`t10` join `test`.`t12`) join `test`.`t1` where ((`test`.`t10`.`pk` = `test`.`t1`.`a`) and (`test`.`t12`.`pk` = `test`.`t10`.`a`))
65
65
subqueries within outer joins go into ON expr.
66
66
select * from
67
67
t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10)) 
68
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
69
insert into t1 select (A.a + 10 * B.a),1 from t0 A, t0 B;
74
70
explain extended select * from t1 where a in (select pk from t10 where pk<3);
75
71
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
76
72
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    103     100.00  Using where
77
 
2       SUBQUERY        t10     range   PRIMARY PRIMARY 4       NULL    3       100.00  Using where; Using index
 
73
1       PRIMARY t10     eq_ref  PRIMARY PRIMARY 4       test.t1.a       1       100.00  Using index
78
74
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)))
 
75
Note    1003    select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from (`test`.`t10`) join `test`.`t1` where ((`test`.`t10`.`pk` = `test`.`t1`.`a`) and (`test`.`t1`.`a` < 3))
80
76
drop table t0, t1;
81
77
drop table t10, t11, t12;
82
 
drop table t2;