Re: UCT (Re: pgsql: Update time zone data files to tzdata release 2019a.)
Andrew Gierth <andrew@tao11.riddles.org.uk>
From: Andrew Gierth <andrew@tao11.riddles.org.uk>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Stephen Frost <sfrost@snowman.net>,
Andres Freund <andres@anarazel.de>, Christoph Berg <myon@debian.org>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-06-19T23:59:29Z
Lists: pgsql-hackers
>>>>> "Tom" == Tom Lane <tgl@sss.pgh.pa.us> writes:
Tom> So I'm toying with the idea of extending Andrew's patch to put a
Tom> negative preference on "localtime", ensuring we'll use some other
Tom> name for the zone if one is available.
Tom> Also, now that we have this mechanism, maybe we should charge it
Tom> with de-preferencing the old "Factory" zone, removing the
Tom> hard-wired kluge that we currently have for rejecting that.
Tom> (Modern tzdb doesn't install "Factory" at all, but some
Tom> installations might still do so in the service of blind backwards
Tom> compatibility.)
I was planning on submitting a follow-up myself (for pg13+) for
discussion of further improvements. My suggestion would be that we
should have the following order of preference, from highest to lowest:
- UTC (justified by being an international standard)
- Etc/UTC
- zones in zone.tab/zone1970.tab:
These are the zone names that are intended to be presented to the
user to select from. Dispute the exact meaning as you will, but I
think it makes sense that these names should be chosen over
equivalently good matches just on that basis.
- zones in Africa/ America/ Antarctica/ Asia/ Atlantic/ Australia/
Europe/ Indian/ Pacific/ Arctic/
These subdirs are the ones generated by the "primary" zone data
files, including both Zone and Link statements but not counting
the "backward" and "etcetera" files.
- GMT (justified on the basis of its presence as a default in the code)
- Etc/*
- any other zone name with a /
- any zone name without a /, excluding 'localtime' and 'Factory'
- 'localtime'
- 'Factory'
Choosing names with / over ones without is a change from our existing
preference for shorter names, but it's more robust in the face of the
various crap that gets dumped in the top level of the zoneinfo dir.
It could be argued that we should reverse the relative order of UTC vs.
Etc/UTC and likewise for GMT for the same reason, but I think that's
less important.
--
Andrew (irc:RhodiumToad)
Commits
-
Tweak our special-case logic for the IANA "Factory" timezone.
- f6c7c64e9fc8 9.6.15 landed
- f227aecb9af7 9.5.19 landed
- e49132e633b5 9.4.24 landed
- d304313b071a 11.5 landed
- d095b2fe676a 12.0 landed
- 8ab66081ca49 13.0 landed
- 55862b2e9303 10.10 landed
-
Avoid choosing "localtime" or "posixrules" as TimeZone during initdb.
- 6c4ffab76320 9.4.24 landed
- 9ef8117420d4 9.5.19 landed
- 51b47471f0f6 9.6.15 landed
- ae9b91be79ea 10.10 landed
- 4459266bf0d3 11.5 landed
- e31dfe99c8c6 12.0 landed
- 3754113f3365 13.0 landed
-
Prefer timezone name "UTC" over alternative spellings.
- e3846a00c2f8 12.0 cited
-
Attempt to identify system timezone by reading /etc/localtime symlink.
- 995b4fe0b14f 11.4 landed
- 8de574aa8bf7 10.9 landed
- 77dc741a1727 9.5.18 landed
- 75b0f21e1b19 9.6.14 landed
- 37011bcb30a9 9.4.23 landed
-
Update time zone data files to tzdata release 2019a.
- f6307bacabf5 11.3 cited