Re: UCT (Re: pgsql: Update time zone data files to tzdata release 2019a.)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Andrew Gierth <andrew@tao11.riddles.org.uk>,
Christoph Berg <myon@debian.org>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-06-06T16:51:30Z
Lists: pgsql-hackers
[ sorry for slow response, I'm on vacation ]
Andres Freund <andres@anarazel.de> writes:
> That makes sense. As far as I can tell the reason that 12 sometimes ends
> up with the proper timezone is that we shortcut the search by:
> /*
> * Try to avoid the brute-force search by seeing if we can recognize the
> * system's timezone setting directly.
> *
> * Currently we just check /etc/localtime; there are other conventions for
> * this, but that seems to be the only one used on enough platforms to be
> * worth troubling over.
> */
> if (check_system_link_file("/etc/localtime", &tt, resultbuf))
> return resultbuf;
> which is actually a behaviour changing, rather than just an
> optimization, when there's a lot of equivalently scoring timezones.
Sure, that is intentionally a behavior change in this situation.
The theory is that if "Etc/UCT" is what the user put in /etc/localtime,
then that's the spelling she wants. See 23bd3cec6.
But it seems to me that this code is *not* determining the result in
Christoph's case, because if it were, it'd be settling on Etc/UTC,
according to his followup report that
>> lrwxrwxrwx 1 root root 27 Mär 28 14:49 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
I'm not too familiar with what actually determines glibc's behavior
on Debian, but I'm suspicious that there's an inconsistency between
/etc/localtime and /etc/timezone. We won't adopt the spelling we
see in /etc/localtime unless it agrees with the observed behavior of
localtime(3).
regards, tom lane
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