~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/blitzdb/tests/t/join.test

  • Committer: Brian Aker
  • Date: 2009-11-24 02:06:37 UTC
  • mfrom: (1223.1.7 push)
  • Revision ID: brian@gaz-20091124020637-9gb65vj98x1arydm
MergeĀ forĀ staging.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Test Routine for JOIN operations in BlitzDB
2
 
 
3
 
--disable_warnings
4
 
drop table if exists t1, t2;
5
 
--enable_warnings
6
 
 
7
 
# Simple JOIN syntax - Unindexed 
8
 
create table t1 (a int) engine = blitzdb;
9
 
create table t2 (a int) engine = blitzdb;
10
 
 
11
 
insert into t1 values (1), (2), (3);
12
 
insert into t2 values (1), (4), (8);
13
 
 
14
 
select * from t1 JOIN t2 where t1.a = t2.a;
15
 
select * from t1 LEFT JOIN t2 on t1.a = t2.a;
16
 
select * from t1 RIGHT JOIN t2 on t1.a = t2.a;
17
 
select * from t1 UNION select * from t2;
18
 
drop table t1, t2;
19
 
 
20
 
# Simple Expensive Multi Table JOIN - Unindexed
21
 
create table t1 (id int, name varchar(32)) engine = blitzdb; 
22
 
create table t2 (id int, job_id int) engine = blitzdb; 
23
 
create table t3 (job_id int, job_name varchar(32)) engine = blitzdb; 
24
 
 
25
 
insert into t1 values (1, 'Alex'); 
26
 
insert into t1 values (2, 'Bob'); 
27
 
insert into t1 values (3, 'Curt'); 
28
 
insert into t1 values (4, 'Dan'); 
29
 
insert into t1 values (5, 'Edgar'); 
30
 
 
31
 
insert into t2 values (1, 1);
32
 
insert into t2 values (2, 1);
33
 
insert into t2 values (3, 3);
34
 
insert into t2 values (4, 2);
35
 
insert into t2 values (5, 4);
36
 
 
37
 
insert into t3 values (1, 'Software Engineer');
38
 
insert into t3 values (2, 'Civil Engineer');
39
 
insert into t3 values (3, 'Electrical Engineer');
40
 
insert into t3 values (4, 'Mechanical Engineer');
41
 
 
42
 
select
43
 
  t1.name, t3.job_name
44
 
from
45
 
  t1 join (t2, t3)
46
 
on
47
 
  (t1.id = t2.id and t2.job_id = t3.job_id);
48
 
 
49
 
# right join
50
 
select
51
 
  t1.name, t3.job_name
52
 
from
53
 
  t1 right join (t2, t3)
54
 
on
55
 
  (t1.id = t2.id and t2.job_id = t3.job_id);
56
 
 
57
 
# remove a job
58
 
delete from t3 where job_id = 4;
59
 
 
60
 
select
61
 
  t1.name, t3.job_name
62
 
from
63
 
  t1 join (t2, t3)
64
 
on
65
 
  (t1.id = t2.id and t2.job_id = t3.job_id);
66
 
 
67
 
# left join
68
 
select
69
 
  t1.name, t3.job_name
70
 
from
71
 
  t1 left join (t2, t3)
72
 
on
73
 
  (t1.id = t2.id and t2.job_id = t3.job_id);
74
 
 
75
 
drop table t1, t2, t3;