Re: BUG #14511: Set timezone to local

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: adrian(dot)klaver(at)aklaver(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #14511: Set timezone to local
Date: 2017-01-24 17:38:36
Message-ID: 22548.1485279516@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

adrian(dot)klaver(at)aklaver(dot)com writes:
> test=> set timezone = DEFAULT;
> SET

> test=> set timezone = LOCAL;
> ERROR: invalid value for parameter "TimeZone": "local"

> test=> set time zone LOCAL;
> SET

"SET TIME ZONE LOCAL" is a SQL-standard-mandated variant way of writing
"set timezone to default", following the SQL committee's time-honored
principle of never using orthogonal syntax if somebody can think of an
idiosyncratic way instead.

Given the way that our grammar is set up, the only way we could handle
"set timezone = LOCAL" would be to allow LOCAL as a synonym for DEFAULT
for *all* SET variables. That doesn't seem like a particularly good
idea.

> The docs:
> https://www.postgresql.org/docs/9.5/static/sql-set.html
> say the last two commands should yield the same result.

AFAICS, the docs show the syntax restriction accurately:

SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }

LOCAL is not listed as a valid alternative for the first syntax.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David G. Johnston 2017-01-24 17:40:14 Re: BUG #14512: Backslashes in LIKE
Previous Message David G. Johnston 2017-01-24 17:32:18 Re: BUG #14512: Backslashes in LIKE