~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/subselect_sj.test

  • Committer: Padraig O'Sullivan
  • Date: 2009-03-21 01:02:23 UTC
  • mto: (960.2.5 mordred)
  • mto: This revision was merged to the branch mainline in revision 961.
  • Revision ID: osullivan.padraig@gmail.com-20090321010223-j8cph7eeyt1u3xol
Fixed function object to ensure it correctly returns a boolean type since
memcmp returns an integer. Added some more comments.

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
 
48
48
--echo subqueries within outer joins go into ON expr.
49
49
# TODO: psergey: check if case conversions like those are ok (it broke on  windows)
50
 
--replace_result a A b B
51
 
explain extended
52
 
select * from t1 left join (t2 A, t2 B) on ( A.a= t1.a and B.a in (select pk from t10));
 
50
# TODO: This crashes the server: jaypipes... ?
 
51
#select * from t1 left join (t2 A, t2 B) on ( A.a= t1.a and B.a in (select pk from t10));
 
52
 
 
53
#--replace_result a A b B
 
54
#explain extended
 
55
#select * from t1 left join (t2 A, t2 B) on ( A.a= t1.a and B.a in (select pk from t10));
53
56
 
54
57
# TODO: psergey: check if case conversions like those are ok (it broke on  windows)
55
 
--echo t2 should be wrapped into OJ-nest, so we have "t1 LJ (t2 J t10)"
56
 
--replace_result a A b B
57
 
explain extended
58
 
select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10));
59
 
 
60
 
--echo we shouldn't flatten if we're going to get a join of > MAX_TABLES.
61
 
explain select * from 
62
 
  t1 s00, t1 s01,  t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
63
 
  t1 s10, t1 s11,  t1 s12, t1 s13, t1 s14,t1 s15,t1 s16,t1 s17,t1 s18,t1 s19,
64
 
  t1 s20, t1 s21,  t1 s22, t1 s23, t1 s24,t1 s25,t1 s26,t1 s27,t1 s28,t1 s29,
65
 
  t1 s30, t1 s31,  t1 s32, t1 s33, t1 s34,t1 s35,t1 s36,t1 s37,t1 s38,t1 s39,
66
 
  t1 s40, t1 s41,  t1 s42, t1 s43, t1 s44,t1 s45,t1 s46,t1 s47,t1 s48,t1 s49
67
 
where
68
 
  s00.a in (
69
 
  select m00.a from
70
 
    t1 m00, t1 m01,  t1 m02, t1 m03, t1 m04,t1 m05,t1 m06,t1 m07,t1 m08,t1 m09,
71
 
    t1 m10, t1 m11,  t1 m12, t1 m13, t1 m14,t1 m15,t1 m16,t1 m17,t1 m18,t1 m19
72
 
  );
 
58
#--echo t2 should be wrapped into OJ-nest, so we have "t1 LJ (t2 J t10)"
 
59
#select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10));
 
60
 
 
61
#--replace_result a A b B
 
62
#explain extended
 
63
#select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10));
 
64
 
 
65
#--echo we shouldn't flatten if we're going to get a join of > MAX_TABLES.
 
66
#explain select * from 
 
67
#  t1 s00, t1 s01,  t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
 
68
#  t1 s10, t1 s11,  t1 s12, t1 s13, t1 s14,t1 s15,t1 s16,t1 s17,t1 s18,t1 s19,
 
69
#  t1 s20, t1 s21,  t1 s22, t1 s23, t1 s24,t1 s25,t1 s26,t1 s27,t1 s28,t1 s29,
 
70
#  t1 s30, t1 s31,  t1 s32, t1 s33, t1 s34,t1 s35,t1 s36,t1 s37,t1 s38,t1 s39,
 
71
#  t1 s40, t1 s41,  t1 s42, t1 s43, t1 s44,t1 s45,t1 s46,t1 s47,t1 s48,t1 s49
 
72
#where
 
73
#  s00.a in (
 
74
#  select m00.a from
 
75
#    t1 m00, t1 m01,  t1 m02, t1 m03, t1 m04,t1 m05,t1 m06,t1 m07,t1 m08,t1 m09,
 
76
#    t1 m10, t1 m11,  t1 m12, t1 m13, t1 m14,t1 m15,t1 m16,t1 m17,t1 m18,t1 m19
 
77
#  );
73
78
 
74
79
select * from
75
80
  t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10)) 
76
81
where t1.a < 5;
77
82
 
78
 
79
 
# Prepared statements
80
 
#
81
 
prepare s1 from
82
 
  ' select * from
83
 
    t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
84
 
  where t1.a < 5';
85
 
execute s1;
86
 
execute s1;
87
 
 
88
83
# Try I2O orders
89
84
insert into t1 select (A.a + 10 * B.a),1 from t0 A, t0 B;
90
85
explain extended select * from t1 where a in (select pk from t10 where pk<3);