Define the right-hand input of AT TIME ZONE as a full a_expr instead of
c_expr. Perhaps the restriction was once needed to avoid bison errors, but it seems to work just fine now --- and even generates a slightly smaller state machine. This change allows examples like SELECT '13:45'::timetz AT TIME ZONE '-07:00'::interval; to work without parentheses around the right-hand input.
This commit is contained in:
parent
0975b95bc3
commit
c114e166e5
@ -11,7 +11,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.487 2005/04/07 01:51:38 neilc Exp $
|
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.488 2005/04/23 17:22:16 tgl Exp $
|
||||||
*
|
*
|
||||||
* HISTORY
|
* HISTORY
|
||||||
* AUTHOR DATE MAJOR EVENT
|
* AUTHOR DATE MAJOR EVENT
|
||||||
@ -6070,7 +6070,7 @@ opt_interval:
|
|||||||
a_expr: c_expr { $$ = $1; }
|
a_expr: c_expr { $$ = $1; }
|
||||||
| a_expr TYPECAST Typename
|
| a_expr TYPECAST Typename
|
||||||
{ $$ = makeTypeCast($1, $3); }
|
{ $$ = makeTypeCast($1, $3); }
|
||||||
| a_expr AT TIME ZONE c_expr
|
| a_expr AT TIME ZONE a_expr
|
||||||
{
|
{
|
||||||
FuncCall *n = makeNode(FuncCall);
|
FuncCall *n = makeNode(FuncCall);
|
||||||
n->funcname = SystemFuncName("timezone");
|
n->funcname = SystemFuncName("timezone");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user