OSDN Git Service

Define the right-hand input of AT TIME ZONE as a full a_expr instead of
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Apr 2005 17:22:16 +0000 (17:22 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Apr 2005 17:22:16 +0000 (17:22 +0000)
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.

src/backend/parser/gram.y

index c33a7e6..260a2e1 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * 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
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -6070,7 +6070,7 @@ opt_interval:
 a_expr:                c_expr                                                                  { $$ = $1; }
                        | a_expr TYPECAST Typename
                                        { $$ = makeTypeCast($1, $3); }
-                       | a_expr AT TIME ZONE c_expr
+                       | a_expr AT TIME ZONE a_expr
                                {
                                        FuncCall *n = makeNode(FuncCall);
                                        n->funcname = SystemFuncName("timezone");