~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to conf/subquery_semijoin_drizzle.yy

  • Committer: Andy Lester
  • Date: 2008-08-10 01:24:02 UTC
  • mto: (266.1.31 use-replace-funcs)
  • mto: This revision was merged to the branch mainline in revision 295.
  • Revision ID: andy@petdance.com-20080810012402-poten4vrxv1y7rki
make things more const-correct

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
query:
2
 
        SELECT select_option outer_select_item
3
 
        FROM outer_from
4
 
        WHERE subquery_expression AND outer_condition_top
5
 
        outer_having outer_order_by ;
6
 
 
7
 
outer_select_item:
8
 
        OUTR . field_name AS X |
9
 
        aggregate_function OUTR . field_name ) AS X;
10
 
 
11
 
aggregate_function:
12
 
        AVG( |
13
 
        COUNT(DISTINCT | COUNT( |
14
 
        MIN( | MIN(DISTINCT |
15
 
        MAX( | MAX(DISTINCT |
16
 
        STD( | STDDEV_POP( | STDDEV_SAMP( |
17
 
        SUM( | SUM(DISTINCT |
18
 
        VAR_POP( | VAR_SAMP( | VARIANCE( |
19
 
        AVG(DISTINCT ;
20
 
 
21
 
aggregate_function_disabled_unpredictable_value:
22
 
        GROUP_CONCAT( | ;
23
 
 
24
 
outer_from:
25
 
        outer_table_name AS OUTR |
26
 
        outer_table_name AS OUTR2 LEFT JOIN outer_table_name AS OUTR ON ( outer_join_condition );
27
 
 
28
 
outer_join_condition:
29
 
        OUTR2 . int_field_name arithmetic_operator OUTR . int_field_name |
30
 
        OUTR2 . date_field_name arithmetic_operator OUTR . date_field_name |
31
 
        OUTR2 . char_field_name arithmetic_operator OUTR . char_field_name ;
32
 
 
33
 
outer_order_by:
34
 
        ORDER BY OUTR . field_name , OUTR . `pk` ;
35
 
 
36
 
outer_group_by:
37
 
        | GROUP BY OUTR . field_name ;
38
 
 
39
 
outer_having:
40
 
        | HAVING X arithmetic_operator value;
41
 
 
42
 
outer_having_disabled_bug38072:
43
 
        | HAVING X arithmetic_operator value ;
44
 
 
45
 
limit:
46
 
        | LIMIT digit ;
47
 
 
48
 
select_inner_body:
49
 
        FROM inner_from
50
 
        WHERE inner_condition_top
51
 
        inner_order_by;
52
 
 
53
 
select_inner:
54
 
        SELECT select_option inner_select_item
55
 
        select_inner_body;
56
 
 
57
 
inner_order_by:
58
 
        | ORDER BY INNR . field_name ;
59
 
 
60
 
inner_select_item:
61
 
        INNR . int_field_name AS Y ;
62
 
 
63
 
inner_from:
64
 
        inner_table_name AS INNR |
65
 
        inner_table_name AS INNR2 LEFT JOIN inner_table_name AS INNR ON ( inner_join_condition );
66
 
 
67
 
inner_join_condition:
68
 
        INNR2 . int_field_name arithmetic_operator INNR . int_field_name |
69
 
        INNR2 . char_field_name arithmetic_operator INNR . char_field_name |
70
 
        INNR2 . date_field_name arithmetic_operator INNR . date_field_name ;
71
 
 
72
 
outer_condition_top:
73
 
        outer_condition_bottom |
74
 
        ( outer_condition_bottom logical_operator outer_condition_bottom ) |
75
 
        outer_condition_bottom logical_operator outer_condition_bottom ;
76
 
 
77
 
outer_condition_bottom:
78
 
        OUTR . expression ;
79
 
 
80
 
expression:
81
 
        field_name null_operator |
82
 
        int_field_name int_expression |
83
 
        date_field_name date_expression |
84
 
        char_field_name char_expression ;
85
 
 
86
 
int_expression:
87
 
        arithmetic_operator digit ;
88
 
 
89
 
date_expression:
90
 
        arithmetic_operator date | BETWEEN date AND date;
91
 
 
92
 
char_expression:
93
 
        arithmetic_operator _varchar(1);
94
 
 
95
 
inner_condition_top:
96
 
        INNR . expression |
97
 
        OUTR . expression |
98
 
        inner_condition_bottom logical_operator inner_condition_bottom |
99
 
        inner_condition_bottom logical_operator outer_condition_bottom ;
100
 
 
101
 
inner_condition_bottom:
102
 
        INNR . expression |
103
 
        INNR . int_field_name arithmetic_operator INNR . int_field_name |
104
 
        INNR . date_field_name arithmetic_operator INNR . date_field_name |
105
 
        INNR . char_field_name arithmetic_operator INNR . char_field_name ;
106
 
 
107
 
null_operator: IS NULL | IS NOT NULL ;
108
 
 
109
 
logical_operator:
110
 
        AND | OR | OR NOT | XOR | AND NOT ;
111
 
 
112
 
arithmetic_operator:
113
 
        = | > | < | <> | >= | <= ;
114
 
 
115
 
subquery_expression:
116
 
        OUTR . int_field_name IN ( SELECT select_option INNR . int_field_name AS Y select_inner_body ) |
117
 
        OUTR . char_field_name IN ( SELECT select_option INNR . char_field_name AS Y select_inner_body ) |
118
 
        ( OUTR . int_field_name , OUTR . int_field_name ) IN ( SELECT select_option INNR . int_field_name AS X , INNR . int_field_name AS Y select_inner_body ) |
119
 
        ( OUTR . char_field_name , OUTR . char_field_name ) IN ( SELECT select_option INNR . char_field_name AS X , INNR . char_field_name AS Y select_inner_body ) ;
120
 
 
121
 
field_name:
122
 
        int_field_name | char_field_name | date_field_name;
123
 
 
124
 
int_field_name:
125
 
        `pk` | `int_key` | `int_nokey` ;
126
 
 
127
 
date_field_name:
128
 
        `date_key` | `date_nokey` | `datetime_key` | `datetime_nokey` | `time_key` | `time_nokey` ;
129
 
 
130
 
char_field_name:
131
 
        `varchar_key` | `varchar_nokey` ;
132
 
 
133
 
outer_table_name:
134
 
        B | C ;
135
 
 
136
 
inner_table_name:
137
 
        BB | CC ;
138
 
 
139
 
value: _digit | _date | _time | _datetime | _varchar(1) | NULL ;
140
 
 
141
 
select_option: 
142
 
        | DISTINCT ;