Philip Paeps <philip@trouble.is> writes:
On 2018-01-18 19:39:50 (-0500), Tom Lane wrote:
I'm not sure that it's "inaccurate". The question is more about what is the meaning of tm_isdst = 1. It's clear from this discussion that an awful lot of code believes it means "local time is advanced now compared to what it is when tm_isdst = 0". Arguing that it should reflect a legalistic definition of DST, rather than an operational definition, is just an argument; it's not conclusive.
FWIW, I share the opinion that this change was misguided.
I'd go with "premature" rather than "misguided".
How, exactly, will it improve anyone's life to change from "tm_isdst = 1 means that local time is advanced" to "tm_isdst means something, but nobody knows what"? This particular change isn't causing my own software any great grief. (I think. No downstream users of Postgres have been hit by it yet.) On the other hand, I've spent quite a lot of effort over the past couple of years dealing with the random-seeming changes in zone abbreviations, and none of that churn has made anyone's life better that I'm aware of. I think it's past time that the tz database realizes, and acts on, the fact that it's a de facto standard, and whacking around the standard has high costs. There are regular moanings on this list about how $banana_republic changed their DST laws with minimal notice. But when tzdb decides to remove a zone abbreviation with no notice, that's not a problem? I dare to disagree. Similarly, breaking a de facto behavior of the tm_isdst flag isn't something to do lightly, and perhaps not at all. regards, tom lane