Re: set time zone

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: philippe(dot)godfrin(at)nov(dot)com, pgsql-docs(at)lists(dot)postgresql(dot)org
Subject: Re: set time zone
Date: 2022-08-17 00:41:05
Message-ID: Yvw5IaULlSZ97PCt@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On Tue, Dec 7, 2021 at 02:28:09PM +0000, PG Doc comments form wrote:
> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/13/sql-set.html
> Description:
>
> Documentation for the set time zone command can be clearer. What it says for
> v13:
>
> TIME ZONE
> SET TIME ZONE value is an alias for SET timezone TO value. The syntax SET
> TIME ZONE allows special syntax for the time zone specification. Here are
> examples of valid values:
> 'PST8PDT'
> The time zone for Berkeley, California.
> <snip>
> See Section 8.5.3 for more information about time zones.
>
> Issue #1.
> There is an example of 'PST8PDT' but there is no explanation as to how to
> build that string to set the time zone. If you follow the recommendation to
> see Section 8.5.3, you encounter Issue #2...
>
> Issue #2.
> Yes you can find more information about time zones in section 8.5.3, but you
> have to read carefully for this paragraph in Section 8.5.3, which explains
> how NOT to set the Time Zone
>
> A time zone abbreviation, for example PST. Such a specification merely
> defines a particular offset from UTC, in contrast to full time zone names
> which can imply a set of daylight savings transition rules as well. The
> recognized abbreviations are listed in the pg_timezone_abbrevs view (see
> Section 51.91). You cannot set the configuration parameters TimeZone or
> log_timezone to a time zone abbreviation, but you can use abbreviations in
> date/time input values and with the AT TIME ZONE operator.
>
> However the prior paragraph says this:
>
> A full time zone name, for example America/New_York. The recognized time
> zone names are listed in the pg_timezone_names view (see Section 51.92).
> PostgreSQL uses the widely-used IANA time zone data for this purpose, so the
> same time zone names are also recognized by other software.
>
> This is where you can find the correct name to use in the set time zone
> command.
>
> SUGGESTION:
>
> Change the documentation for the SET (SQL) command to read as follows, under
> the TIME ZONE section:
>
> TIME ZONE
> ... syntax for the time zone specification. The time zone specification can
> be found in the pg_timezone_names view (see Section 51.92).

Actually, both pg_timezone_names values and POSIX-style time zone
specifications are supported by SET. In the attached patch I mention
that time zone abbreviations are not supported, and then reference the
chapter. I think that should help.

> Issue #3
> The syntax diagram shows this:
>
> SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value'
> | DEFAULT }
> SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }
>
> Good job, but - the "{ timezone" entry is not referred to. Below in the TIME
> ZONE Section it says this:
> TIME ZONE
> SET TIME ZONE value is an alias for SET timezone TO value.
>
> The word "value" is highlighted but is not applicable to the syntax diagram
> above.
>
> SUGGESTION
>
> Change the syntax diagram to read:
> SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value'
> | DEFAULT }
> SET [ SESSION | LOCAL ] TIME ZONE { timezone_name | LOCAL | DEFAULT }
>
> and the lower section to read:
>
> TIME ZONE
> SET TIME ZONE timezone_name is an alias for SET timezone TO timezone_name.

I ended up changing the syntax from 'timezone' to 'value' and added
quoted and non-quoted syntax options, again in the attached patch.

Did I miss anything?

--
Bruce Momjian <bruce(at)momjian(dot)us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

Attachment Content-Type Size
tz.diff text/x-diff 1.8 KB

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Bruce Momjian 2022-08-17 14:32:55 Re: Empty values of pg_stats_ext when table is empty
Previous Message Tom Lane 2022-08-16 21:49:52 Re: Lower or Upper case for F.33. pg_trgm