~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to conf/dbt3/dbt3-joins.yy

preliminary version of grammar generating DBT-3 /TPC-H joins

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
query:
 
2
        # lineitem -> orders -> customer /* -> nation -> region */
 
3
        SELECT COUNT(*) FROM lineitem LEFT JOIN orders ON ( lineitem.l_orderkey = orders.o_orderkey ) LEFT JOIN customer ON ( orders.o_orderkey = customer.c_custkey ) WHERE where_lineitem_orders_customer |
 
4
 
 
5
        # orders -> customer /* -> nation -> region */  
 
6
        SELECT COUNT(*) FROM orders LEFT JOIN customer ON ( orders.o_custkey = customer.c_custkey ) WHERE where_orders_customer ;
 
7
 
 
8
        # lineitem -> part
 
9
        SELECT COUNT(*) FROM lineitem LEFT JOIN part ON ( lineitem.l_partkey = part.p_partkey ) WHERE where_lineitem_part |
 
10
        
 
11
        # lineitem -> partsupp -> part
 
12
        SELECT COUNT(*) FROM lineitem LEFT JOIN partsupp ON ( lineitem.l_partkey = partsupp.ps_partkey ) LEFT JOIN part ON ( partsupp.ps_partkey = part.p_partkey ) WHERE where_lineitem_partsupp_part |
 
13
 
 
14
        # partsupp -> part 
 
15
        SELECT COUNT(*) FROM partsupp LEFT JOIN part ON ( partsupp.ps_partkey = part.p_partkey ) WHERE where_partupp_part |
 
16
 
 
17
        # partsupp -> supplier /* -> nation -> region */
 
18
        SELECT COUNT(*) FROM partsupp LEFT JOIN supplier ON (partsupp.ps_suppkey = supplier.s_suppkey ) where_partsupp_supplider ;
 
19
 
 
20
where_lineitem_orders_customer:
 
21
        lineitem_orders_customer_cond and_or lineitem_orders_customer_cond | lineitem_orders_customer_cond and_or where_lineitem_orders_customer ;
 
22
 
 
23
lineitem_orders_customer_cond:
 
24
        lineitem_cond | orders_cond | customer_cond ;
 
25
 
 
26
where_orders_customer:
 
27
        orders_customer_cond and_or orders_customer_cond | orders_customer_cond and_or where_orders_customer ;
 
28
 
 
29
orders_customer_cond:
 
30
        orders_cond | customer_cond ;
 
31
 
 
32
where_lineitem_part:
 
33
        lineitem_part_cond and_or lineitem_part_cond | lineitem_part_cond and_or where_lineitem_part;
 
34
 
 
35
lineitem_part_cond:
 
36
        lineitem_cond | part_cond;
 
37
 
 
38
where_lineitem_partsupp_part:
 
39
        lineitem_partsupp_part_cond and_or lineitem_partsupp_part_cond | lineitem_partsupp_part_cond and_or where_lineitem_partsupp_part;
 
40
 
 
41
lineitem_partsupp_part_cond:
 
42
        lineitem_cond | partsupp_cond | part_cond ;
 
43
 
 
44
where_partsupp_part:
 
45
        partsupp_part_cond and_or partsupp_part_cond | partsupp_part_cond and_or where_partsupp_part;
 
46
 
 
47
partsupp_part_cond:
 
48
        partsupp_cond | part_cond ;
 
49
 
 
50
where_partsupp_supplier:
 
51
        partsupp_supplier_cond and_or partsupp_supplier_cond | partsupp_supplier_cond and_or where_partsupp_supplier;
 
52
 
 
53
partsupp_supplier_cond:
 
54
        partsupp_cond | supplier_cond ;
 
55
 
 
56
partsupp_cond:
 
57
        partsupp.ps_partkey comp_op _digit |
 
58
        partsupp.ps_suppkey comp_op _digit ;
 
59
 
 
60
lineitem_cond:
 
61
        lineitem.l_orderkey comp_op _digit |
 
62
        lineitem.l_partkey comp_op _digit ;
 
63
 
 
64
orders_cond:
 
65
        orders.o_orderkey comp_op _digit |
 
66
        orders.o_custkey comp_op _digit ;
 
67
 
 
68
customer_cond:
 
69
        customer.c_custkey comp_op _digit ;
 
70
 
 
71
part_cond:
 
72
        part.p_partkey comp_op _digit ;
 
73
 
 
74
supplier_cond:
 
75
        supplier.s_suppkey comp_op _digit ;
 
76
 
 
77
comp_op:
 
78
        = | > | < | >= | <= | <> | != ;
 
79
 
 
80
and_or:
 
81
        AND | OR ;
 
82
 
 
83