Planned obsolescence in identify_system_timezone()
I just noticed that identify_system_timezone() tries to match our
timezones to the system timezone on the basis of probing the date
range 1904-2004. While doubtless this seemed like a good idea at
the time, it means that we'll be unable to distinguish zones whose
histories diverge after 2004. I think there are some already,
and certainly there are likely to be some in future. I propose
modifying this logic to test 100 years back from the current year,
instead. Any objections? Should such a change be back-patched?
I'm also more than slightly tempted to modify the code so that it will
always reject a match to the "Factory" zone (and fall back to regular
"GMT" instead). The logging behavior illustrated here:
http://archives.postgresql.org/pgsql-bugs/2008-06/msg00191.php
seems just completely bletcherous to me. It's not our business
to nag the user into setting up /etc/localtime, and even if it
were, this is obviously an ineffective way to do it ;-)
Any objections to that one?
regards, tom lane
"Tom Lane" <tgl@sss.pgh.pa.us> writes:
I just noticed that identify_system_timezone() tries to match our
timezones to the system timezone on the basis of probing the date
range 1904-2004. While doubtless this seemed like a good idea at
the time, it means that we'll be unable to distinguish zones whose
histories diverge after 2004. I think there are some already,
and certainly there are likely to be some in future. I propose
modifying this logic to test 100 years back from the current year,
instead. Any objections? Should such a change be back-patched?
Seems obvious in retrospect. Or perhaps it should just always go back to about
1900 which is when a lot of places adopted standard timezones.
I'm also more than slightly tempted to modify the code so that it will
always reject a match to the "Factory" zone (and fall back to regular
"GMT" instead). The logging behavior illustrated here:
http://archives.postgresql.org/pgsql-bugs/2008-06/msg00191.php
seems just completely bletcherous to me. It's not our business
to nag the user into setting up /etc/localtime, and even if it
were, this is obviously an ineffective way to do it ;-)
Any objections to that one?
If we're going to do it at all it should be once at startup (or config file
read or some event like that). But I think I agree that it's just not our
place at all and just defaulting to GMT is the right option.
--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Ask me about EnterpriseDB's On-Demand Production Tuning