~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to conf/join.yy

merge from internal tree

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
\query_init:
2
 
        SET GLOBAL optimizer_use_mrr = 'disable';
3
 
 
4
1
query:
5
2
        { @nonaggregates = () ; $tables = 0 ; $fields = 0 ; "" } select ;
6
3
 
19
16
 
20
17
join_list:
21
18
        new_table_item |
22
 
        (new_table_item join_type join_list ON ( current_table_item . _field = previous_table_item . _field ));
 
19
        (new_table_item join_type new_table_item ON ( current_table_item . _field_key = previous_table_item . _field )) |
 
20
        (new_table_item join_type new_table_item ON ( current_table_item . _field = previous_table_item . _field_key )) |
 
21
        (new_table_item join_type new_table_item ON ( current_table_item . _field_key = previous_table_item . _field_key )) |
 
22
        (new_table_item join_type join_list ON ( current_table_item . _field_key = previous_table_item . _field_key ));
23
23
 
24
24
join_type:
25
 
        INNER JOIN | CROSS JOIN | left_right outer JOIN | STRAIGHT_JOIN ;  
 
25
        INNER JOIN | left_right outer JOIN | STRAIGHT_JOIN ;  
26
26
 
27
27
left_right:
28
28
        LEFT | RIGHT ;
35
35
where_list:
36
36
        not where_item |
37
37
        not (where_list AND where_item) |
38
 
        not (where_list OR where_item) |
39
 
        where_item IS not NULL ;
 
38
        not (where_list OR where_item) ;
 
39
 
40
40
not:
41
 
        | NOT;
 
41
        | | | NOT;
42
42
 
43
43
where_item:
44
44
        existing_table_item . _field sign value |
88
88
aggregate_select_item:
89
89
        aggregate table_one_two . _field ) AS { "field".++$fields };
90
90
 
 
91
# Only 20% table2, since sometimes table2 is not present at all
 
92
 
91
93
table_one_two:
92
 
        table1 | table2 | table3;
 
94
        table1 | table1 | table1 | table1 |
 
95
        table2 ;
93
96
 
94
97
aggregate:
95
98
        COUNT( | SUM( | MIN( | MAX( ;
115
118
value:
116
119
        _digit | _char(2) | _datetime ;
117
120
 
 
121
# Avoid A , AA since those tables are optimized away
 
122
# Avoid E, F since those tables are too big for the nested joins
 
123
 
118
124
_table:
119
 
        A | B | C | AA | BB ;
 
125
        B | C | BB | CC ;
 
126
 
 
127
# Avoid 0, so that no LIMIT 0 queries are produced
 
128
 
 
129
_digit:
 
130
        1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ;
 
131