~ubuntu-branches/ubuntu/vivid/drizzle/vivid-proposed

« back to all changes in this revision

Viewing changes to tests/test_tools/randgen/conf/temporal/temporal_functions.yy

  • Committer: Package Import Robot
  • Author(s): Tobias Frost
  • Date: 2013-08-22 20:18:31 UTC
  • mto: (20.1.1 sid)
  • mto: This revision was merged to the branch mainline in revision 21.
  • Revision ID: package-import@ubuntu.com-20130822201831-gn3ozsh7o7wmc5tk
Tags: upstream-7.2.3
ImportĀ upstreamĀ versionĀ 7.2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
query:
 
2
        { $col = 1 ; return "" }
 
3
        SELECT select_list
 
4
        FROM _table
 
5
        WHERE where_list 
 
6
#       having 
 
7
        order_by ;
 
8
 
 
9
select_list:
 
10
        select_item |
 
11
        select_item , select_list |
 
12
        select_item , select_item ;
 
13
 
 
14
select_item:
 
15
        _field AS { 'c'.$col++ } |
 
16
        datetime_expr AS { 'c'.$col++ } ;
 
17
 
 
18
where_list:
 
19
        where_item |
 
20
        where_item and_or where_list ;
 
21
 
 
22
where_item:
 
23
        _field not IN ( datetime_list ) |
 
24
        _field not BETWEEN datetime_expr AND datetime_expr |
 
25
        _field comp_op datetime_expr |
 
26
        datetime_expr IS not NULL ;
 
27
 
 
28
order_by:
 
29
        | 
 
30
        ORDER BY field_list | 
 
31
        ORDER BY 1 ;
 
32
 
 
33
having:
 
34
        |
 
35
        HAVING datetime_expr ;
 
36
 
 
37
field_list:
 
38
        _field , field_list |
 
39
        _field , _field ; 
 
40
 
 
41
comp_op:
 
42
        = | < | > | != | <> |  <=> | >= | <= ;
 
43
 
 
44
not:
 
45
        | NOT ;
 
46
 
 
47
and_or:
 
48
        AND | OR ;
 
49
 
 
50
datetime_list:
 
51
        datetime_expr , datetime_expr |
 
52
        datetime_expr , datetime_list ;
 
53
 
 
54
datetime_expr:
 
55
        datetime_func | datetime_field ;
 
56
 
 
57
arg_datetime_list:
 
58
        arg_datetime , arg_datetime |
 
59
        arg_datetime , arg_datetime_list ; 
 
60
 
 
61
arg_datetime:
 
62
        arg_datetime | arg_datetime | arg_datetime | arg_datetime | arg_date | datetime_func | '0000-00-00 00:00:00' | datetime_field ;
 
63
 
 
64
arg_date:
 
65
        _date | _date | _date | _date | '0000-00-00' | datetime_func | datetime_field ;
 
66
 
 
67
arg_time:
 
68
        _time | _time | _time | _time | '00:00:00' | datetime_func | datetime_field ;
 
69
 
 
70
arg_any_list:
 
71
        arg_any , arg_any |
 
72
        arg_any , arg_any_list ;
 
73
 
 
74
arg_any:
 
75
        arg_datetime |
 
76
        # arg_time |
 
77
        arg_date | datetime_func | datetime_field ;
 
78
 
 
79
arg_integer:
 
80
        _tinyint_unsigned | digit | integer_func | integer_field ;
 
81
 
 
82
integer_field:
 
83
        _field ;
 
84
 
 
85
datetime_field:
 
86
        _field ;
 
87
 
 
88
arg_unix:
 
89
        _integer_unsigned ;
 
90
 
 
91
arg_tz:
 
92
        'MET' |
 
93
        'UTC' |
 
94
        'Universal' |
 
95
        'Europe/Moscow' |
 
96
        'leap/Europe/Moscow' |
 
97
        'Japan' |
 
98
         CONCAT( plus_minus , CONCAT_WS(':', _digit , _digit ) ) ;
 
99
 
 
100
arg_hour:
 
101
        _digit | 24 | _tinyint_unsigned | integer_func | 24 ;
 
102
 
 
103
arg_minute:
 
104
        _digit | _tinyint_unsigned | integer_func | 60 ;
 
105
 
 
106
arg_second:
 
107
        _digit | _digit | _digit | _tinyint_unsigned | integer_func ;
 
108
 
 
109
arg_dayofyear:
 
110
        _tinyint_unsigned | _tinyint_unsigned | _tinyint_unsigned | integer_func ;
 
111
 
 
112
arg_year:
 
113
        19 + _digit | 20 + _digit | _tinyint_unsigned | integer_func | '0000';
 
114
 
 
115
arg_days:
 
116
        arg_integer ;
 
117
 
 
118
arg_formatted:
 
119
        DATE_FORMAT( arg_any , arg_format ) ;
 
120
 
 
121
plus_minus:
 
122
        '-' | '+' ;
 
123
 
 
124
datetime_func:
 
125
        LEAST( arg_any_list ) |
 
126
        GREATEST( arg_any_list ) |
 
127
        COALESCE( arg_any_list ) |
 
128
        CAST( arg_any AS arg_cast_type ) |
 
129
        date_add_sub |
 
130
        ADDDATE( arg_datetime , arg_days ) |
 
131
        ADDTIME( arg_any , arg_time ) |
 
132
        CONVERT_TZ( arg_datetime , arg_tz , arg_tz ) |
 
133
        CURDATE() | CURRENT_DATE() |
 
134
#       CURTIME() | CURRENT_TIME() |
 
135
#       CURRENT_TIMESTAMP() | NOW() |
 
136
        DATE( arg_date ) | DATE ( arg_datetime ) |
 
137
        FROM_DAYS( arg_integer ) |
 
138
        FROM_UNIXTIME( arg_unix ) | FROM_UNIXTIME( arg_unix , arg_format ) |
 
139
        LAST_DAY( arg_datetime ) |
 
140
        LOCALTIME() | LOCALTIMESTAMP() |
 
141
        MAKEDATE( arg_year , arg_dayofyear ) |
 
142
        MAKETIME( arg_hour , arg_minute, arg_second ) |
 
143
#       NOW() |
 
144
        SEC_TO_TIME( arg_second ) |
 
145
        STR_TO_DATE( arg_formatted , arg_format ) |
 
146
#       SYSDATE() |
 
147
        TIME( arg_any ) |
 
148
        TIMEDIFF( arg_any , arg_any ) |
 
149
        TIMESTAMP( arg_any ) | TIMESTAMP( arg_any , arg_time ) |
 
150
        TIMESTAMPADD( arg_unit_timestamp , arg_integer , arg_datetime ) |
 
151
#       UNIX_TIMESTAMP() |
 
152
#       UNIX_TIMESTAMP( arg_datetime ) |
 
153
        UTC_DATE() |
 
154
#       UTC_TIME() | UTC_TIMESTAMP() |
 
155
        SUBTIME( arg_datetime , arg_time ) |
 
156
        EXTRACT( arg_unit_noninteger FROM arg_any ) ;
 
157
 
 
158
integer_func:
 
159
        DATEDIFF( arg_date , arg_date ) | DATEDIFF( arg_datetime , arg_datetime ) |
 
160
        DAY( arg_date ) | DAYOFMONTH( arg_date ) ;
 
161
        DAYOFMONTH( arg_datetime ) |
 
162
        DAYOFWEEK( arg_datetime ) |
 
163
        DAYOFYEAR( arg_datetime ) |
 
164
        EXTRACT( arg_unit_integer FROM arg_any ) |
 
165
        HOUR( arg_datetime ) |  
 
166
        MICROSECOND( arg_any ) |
 
167
        MINUTE( arg_time ) |
 
168
        MONTH( arg_date ) |
 
169
        PERIOD_ADD( arg_period , arg_integer ) |
 
170
        PERIOD_DIFF( arg_period , arg_period ) |
 
171
        QUARTER( arg_date ) |
 
172
        SECOND( arg_any ) |
 
173
        TIMESTAMPDIFF( arg_interval ,  arg_datetime , arg_datetime ) |
 
174
        TIME_TO_SEC( arg_any ) |
 
175
        TO_DAYS( arg_datetime ) |
 
176
        TO_SECONDS( arg_datetime ) |
 
177
        WEEK( arg_datetime , arg_mode ) |
 
178
        WEEKDAY( arg_datetime ) |
 
179
        WEEKOFYEAR( arg_datetime ) |
 
180
        YEAR( arg_datetime ) ;
 
181
        YEARWEEK( arg_datetime ) | YEARWEEK( arg_datetime , arg_mode ) |
 
182
 
 
183
        IF( integer_func , datetime_func , datetime_func ) |
 
184
        IFNULL( datetime_func ) |
 
185
        NULLFIF( datetime_func, datetime_func ) |
 
186
        INTERVAL ( arg_datetime_list ) ;
 
187
 
 
188
 
 
189
string_func:
 
190
        DATE_FORMAT( arg_any , arg_format ) |
 
191
        DAYNAME( arg_date ) ;
 
192
        MONTHNAME( arg_date ) |
 
193
        TIME_FORMAT( arg_time , arg_time_format ) |
 
194
 
 
195
 
 
196
        SUBDATE( arg_date , INTERVAL arg_expr arg_unit ) |
 
197
        SUBDATE( arg_date , arg_days ) |
 
198
 
 
199
 
 
200
date_add_sub:
 
201
        add_sub arg_datetime arg_integer , arg_unit_integer ) |
 
202
        add_sub arg_datetime , INTERVAL CONCAT_WS('.' , arg_second , arg_microsecond ) SECOND_MICROSECOND ) |
 
203
        add_sub arg_datetime , INTERVAL CONCAT_WS('.' , CONCAT_WS(':' , arg_minute , arg_second ) , arg_microsecond ) MINUTE_MICROSECOND ) |
 
204
        add_sub arg_datetime , INTERVAL CONCAT_WS(':' , arg_minute , arg_second ) MINUTE_SECOND ) |
 
205
        add_sub arg_datetime , INTERVAL CONCAT_WS('.' , CONCAT_WS(':' , arg_hour , arg_minute, arg_second ) , arg_microsecond ) HOUR_MICROSECOND ) |
 
206
        add_sub arg_datetime , INTERVAL CONCAT_WS(':' ,  arg_hour , arg_minute, arg_second ) HOUR_SECOND ) |
 
207
        add_sub arg_datetime , INTERVAL CONCAT_WS(':' , arg_hour , arg_minute ) HOUR_MINUTE ) |
 
208
        add_sub arg_datetime , INTERVAL CONCAT_WS(' ' , arg_day , CONCAT_WS(':' , arg_hour , arg_minute, CONCAT_WS('.' , arg_second , arg_microsecond ) DAY_MICROSECOND ) |
 
209
        add_sub arg_datetime , INTERVAL CONCAT_WS(' ' , arg_day , CONCAT_WS(':' , arg_hour , arg_minute , arg_second ) DAY_SECOND ) |
 
210
        add_sub arg_datetime , INTERVAL CONCAT_WS(' ' , arg_day , CONCAT_WS(':' , arg_hour , arg_minute ) DAY_MINUTE ) |
 
211
        add_sub arg_datetime , INTERVAL CONCAT_WS(' ' , arg_day , arg_hours ) DAY_HOUR ) |
 
212
        add_sub arg_datetime , INTERVAL CONCAT_WS('-' , arg_year , arg_month ) YEAR_MONTH ) ;
 
213
 
 
214
arg_unit_integer:
 
215
#       MICROSECOND |
 
216
 SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | QUARTER | YEAR ;
 
217
 
 
218
arg_unit_noninteger:
 
219
        SECOND_MICROSECOND | MINUTE_MICROSECOND | MINUTE_SECOND | HOUR_MICROSECOND | HOUR_SECOND | HOUR_MINUTE | DAY_MICROSECOND | DAY_SECOND | DAY_MINUTE | DAY_HOUR | YEAR_MONTH ;
 
220
 
 
221
arg_unit:
 
222
#       MICROSECOND |
 
223
 SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | QUARTER | YEAR | SECOND_MICROSECOND | MINUTE_MICROSECOND | MINUTE_SECOND | HOUR_MICROSECOND | HOUR_SECOND | HOUR_MINUTE | DAY_MICROSECOND | DAY_SECOND | DAY_MINUTE | DAY_HOUR | YEAR_MONTH ;
 
224
 
 
225
arg_unit_timestamp:
 
226
#       MICROSECOND |
 
227
 SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | QUARTER | YEAR ;
 
228
 
 
229
add_sub:
 
230
        DATE_ADD( | DATE_SUB( | SUBDATE 
 
231
 
 
232
arg_mode:
 
233
        0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 ;
 
234
 
 
235
arg_cast_type:
 
236
        DATE | DATETIME | TIME | DATETIME( precision ) | TIME | TIME( precision ) ;
 
237
 
 
238
precision:
 
239
        0 | 3 | 6 ;
 
240
        
 
241
get_format:
 
242
        GET_FORMAT( date_time_datetime , country_code ) ;
 
243
 
 
244
date_time_datetime:
 
245
        DATE | TIME | DATETIME ;
 
246
 
 
247
country_code:
 
248
        EUR | USA | JIS | ISO | INTERNAL ;
 
249
 
 
250
 
 
251
arg_format:
 
252
        CONCAT_WS( format_separator , format_list );
 
253
 
 
254
format_list:
 
255
        format_item , format_item |
 
256
        format_item , format_list ;
 
257
 
 
258
format_item:
 
259
        '%a' | '%b' | '%c' | '%D' | '%d' | '%e' | '%f' | '%H' | '%h' | '%I' | '%i' | '%j' | '%k' | '%l' | '%M' | '%m' | '%p' | '%r' | '%S' | '%s' | '%T' | '%U' | '%u' | '%V' | '%v' | '%W' | '%w' | '%X' | '%x' | '%Y' | '%y' | '%%' | '%x' ;  
 
260
 
 
261
format_separator:
 
262
        ':' | '-' ;