Re: More tzdb fun: POSIXRULES is being deprecated upstream
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2020-06-19T19:27:41Z
Lists: pgsql-hackers
Attachments
- remove-posixrules-support-1.patch (text/x-diff) patch
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: > On 2020-06-17 20:08, Tom Lane wrote: >> I would definitely be in favor of "nuke it now" with respect to HEAD. >> It's a bit more debatable for the back branches. However, all branches >> are going to be equally exposed to updated system tzdata trees, so >> we've typically felt that changes in the tz-related code should be >> back-patched. > It seems sensible to me to remove it in master and possibly > REL_13_STABLE, but leave it alone in the back branches. For purposes of discussion, here's a patch that rips out posixrules support altogether. (Note that further code simplifications could be made --- the "load_ok" variable is vestigial, for instance. This formulation is intended to minimize the diffs from upstream.) A less aggressive idea would be to leave the code alone and just change the makefiles to not install a posixrules file in our own builds. That'd leave the door open for somebody who really needed posixrules behavior to get it back by just creating a posixrules file. I'm not sure this idea has much else to recommend it though. I'm honestly not sure what I think we should do exactly. The main arguments in favor of the full-rip-out option seem to be (1) It'd ensure consistent behavior of POSIX zone specs across platforms, whether or not --with-system-tzdata is used and whether or not the platform supplies a posixrules file. (2) We'll presumably be forced into the no-posixrules behavior at some point, so forcing the issue lets us dictate the timing rather than having it be dictated to us. If nothing else, that means we can release-note the behavioral change in a timely fashion. Point (2) seems like an argument for doing it only in master (possibly plus v13), but on the other hand I'm not convinced about how much control we really have if we wait. What seems likely to happen is that posixrules files will disappear from platform tz databases over some hard-to-predict timespan. Even if no major platforms drop them immediately at the next IANA update, it seems quite likely that some/many will do so within the remaining support lifetime of v12. So even if we continue to support the feature, it's likely to vanish in practice at some uncertain point. Given that the issue only affects people using nonstandard TimeZone settings, it may be that we shouldn't agonize over it too much either way. Anyway, as I write this I'm kind of talking myself into the position that we should indeed back-patch this. The apparent stability benefits of not doing so may be illusory, and if we back-patch then at least we get to document that there's a change. But an argument could be made in the other direction too. Thoughts? regards, tom lane
Commits
-
Remove support for timezone "posixrules" file.
- ea57e531b948 14.0 landed
- 21aac2ff96e3 13.0 landed
-
Future-proof regression tests against possibly-missing posixrules file.
- 577dcf890cdb 13.0 landed
- 2c8ef9363db1 14.0 landed
- e7c183cd1fd1 11.9 landed
- b22ca7648b6f 12.4 landed
- 9496908d465e 9.6.19 landed
- 91e27a3e80b6 10.14 landed
- 34ef5863c77b 9.5.23 landed
-
Doc: document POSIX-style time zone specifications in full.
- 070f49005350 11.9 landed
- c10dc2d11791 13.0 landed
- 3b8210da32c4 12.4 landed
- a3235a53ae9f 14.0 landed
- 28fa0484efe9 10.14 landed
- 28589a8350d3 9.6.19 landed
- 089a63ec80e0 9.5.23 landed
-
Please find attached diffs for documentation and simple regression
- b2b6548c79eb 8.1.0 cited