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

« back to all changes in this revision

Viewing changes to tests/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
 
        ':' | '-' ;