|
11 | 11 | *
|
12 | 12 | *
|
13 | 13 | * IDENTIFICATION
|
14 |
| - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.205 2000/11/05 22:50:20 vadim Exp $ |
| 14 | + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.206 2000/11/06 15:47:17 thomas Exp $ |
15 | 15 | *
|
16 | 16 | * HISTORY
|
17 | 17 | * AUTHOR DATE MAJOR EVENT
|
@@ -289,7 +289,7 @@ static void doNegateFloat(Value *v);
|
289 | 289 | */
|
290 | 290 |
|
291 | 291 | /* Keywords (in SQL92 reserved words) */
|
292 |
| -%token ABSOLUTE, ACTION, ADD, ALL, ALTER, AND, ANY, AS, ASC, |
| 292 | +%token ABSOLUTE, ACTION, ADD, ALL, ALTER, AND, ANY, AS, ASC, AT, |
293 | 293 | BEGIN_TRANS, BETWEEN, BOTH, BY,
|
294 | 294 | CASCADE, CASE, CAST, CHAR, CHARACTER, CHECK, CLOSE,
|
295 | 295 | COALESCE, COLLATE, COLUMN, COMMIT,
|
@@ -386,6 +386,7 @@ static void doNegateFloat(Value *v);
|
386 | 386 | %left '*' '/' '%'
|
387 | 387 | %left '^'
|
388 | 388 | /* Unary Operators */
|
| 389 | +%left AT |
389 | 390 | %right UMINUS
|
390 | 391 | %left '.'
|
391 | 392 | %left '[' ']'
|
@@ -4298,6 +4299,15 @@ a_expr: c_expr
|
4298 | 4299 | { $$ = $1; }
|
4299 | 4300 | | a_expr TYPECAST Typename
|
4300 | 4301 | { $$ = makeTypeCast($1, $3); }
|
| 4302 | + | a_expr AT TIME ZONE c_expr |
| 4303 | + { |
| 4304 | + FuncCall *n = makeNode(FuncCall); |
| 4305 | + n->funcname = "timezone"; |
| 4306 | + n->args = makeList2($5, $1); |
| 4307 | + n->agg_star = FALSE; |
| 4308 | + n->agg_distinct = FALSE; |
| 4309 | + $$ = (Node *) n; |
| 4310 | + } |
4301 | 4311 | /*
|
4302 | 4312 | * These operators must be called out explicitly in order to make use
|
4303 | 4313 | * of yacc/bison's automatic operator-precedence handling. All other
|
@@ -5393,6 +5403,7 @@ TokenId: ABSOLUTE { $$ = "absolute"; }
|
5393 | 5403 | | AFTER { $$ = "after"; }
|
5394 | 5404 | | AGGREGATE { $$ = "aggregate"; }
|
5395 | 5405 | | ALTER { $$ = "alter"; }
|
| 5406 | + | AT { $$ = "at"; } |
5396 | 5407 | | BACKWARD { $$ = "backward"; }
|
5397 | 5408 | | BEFORE { $$ = "before"; }
|
5398 | 5409 | | BEGIN_TRANS { $$ = "begin"; }
|
|
0 commit comments