set time zone - Mailing list pgsql-docs

From PG Doc comments form
Subject set time zone
Date
Msg-id 163888728952.1269.5167822676466793158@wrigleys.postgresql.org
Whole thread Raw
Responses Re: set time zone  (Bruce Momjian <bruce@momjian.us>)
List pgsql-docs
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).

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.

All this would really make it easier to understand how to change the time
zone. The documents must stop relying solely on examples to convey
information. The syntax must be explicitly and clearly written down and only
then are examples useful.

pgsql-docs by date:

Previous
From: Tom Lane
Date:
Subject: Re: operator @@ is not supported by path; doc says otherwise
Next
From: PG Doc comments form
Date:
Subject: Incorrect source directory in build instructions and build scripts