Sync back-branch copies of the timezone code with IANA release tzcode2016c.
authorTom Lane
Tue, 19 Jul 2016 19:59:36 +0000 (15:59 -0400)
committerTom Lane
Tue, 19 Jul 2016 19:59:36 +0000 (15:59 -0400)
commit19d477aa681b4927f95824d724a4197c696f8c75
tree4795da77200eb86060bef5e637190e03de6081a4
parentbdeed0944fadff3ea394d361d0137997fb4db953
Sync back-branch copies of the timezone code with IANA release tzcode2016c.

Back-patch commit 1c1a7cbd6a1600c9, along with subsequent portability
fixes, into all active branches.  Also, back-patch commits 696027727 and
596857043 (addition of zic -P option) into 9.1 and 9.2, just to reduce
differences between the branches.  src/timezone/ is now largely identical
in all active branches, except that in 9.1, pgtz.c retains the
initial-timezone-selection code that was moved over to initdb in 9.2.

Ordinarily we wouldn't risk this much code churn in back branches, but it
seems necessary in this case, because among the changes are two feature
additions in the "zic" zone data file compiler (a larger limit on the
number of allowed DST transitions, and addition of a "%z" escape in zone
abbreviations).  IANA have not yet started to use those features in their
tzdata files, but presumably they will before too long.  If we don't update
then we'll be unable to adopt new timezone data.  Also, installations built
with --with-system-tzdata (which includes most distro-supplied builds, I
believe) might fail even if we don't update our copies of the data files.
There are assorted bug fixes too, mostly affecting obscure timezones or
post-2037 dates.

Discussion: <13601.1468868947@sss.pgh.pa.us>
12 files changed:
src/bin/initdb/findtimezone.c
src/timezone/Makefile
src/timezone/README
src/timezone/ialloc.c [deleted file]
src/timezone/localtime.c
src/timezone/pgtz.c
src/timezone/pgtz.h
src/timezone/private.h
src/timezone/scheck.c [deleted file]
src/timezone/strftime.c
src/timezone/tzfile.h
src/timezone/zic.c