1

Recently (2019-04-25) brazilian government ended the use of daylight savings time all around the country.

In my current project I rely on PostgreSQL to do timezone conversions and analytics based on time from different time zones and dates.

As far as I am concerned PostgreSQL implements daylight savings and timezones through Olson database.

1) Is PostgreSQL (version 11, for instance) up to date with the new no daylight saving time rule in Brazil?

2) If it is not updated, how can I fix it? Is there any default PostgreSQL patch calendar/schedule in that sense?

2

Yes, there is a schedule. It's documented here: https://www.postgresql.org/support/versioning/

if need be, security fixes that are released at least once every three months in what we call a "minor release". For more information on the minor release schedule, you can view the minor release roadmap

And the minor release roadmap currently (as of 2019-07-08) shows:

The target date for these releases are, unless otherwise stated, the second Thursday of February, May, August, and November. The current schedule for upcoming releases is:

   * August 8th, 2019
   * November 7th, 2019
   * February 13th, 2020
   * May 14th, 2020

Every minor release will include updated DST rules if necessary.

The last minor release for Postgres 11 was 11.4 on 2019-06-20. I would have assumed that it included the new rules for Brazilian DST, but I can't find any mentioning of that in the release notes as there was e.g. for the 11.3 and 11.2 releases.

So most probably, 11.5 (scheduled for August 8th) will include that.

If you want an authoritative answer from the devs, you should ask that on the Postgres mailing list


Postgres can be compiled in a way that it uses the operating system's time zone data. You can check if your Postgres version was compiled with the --with-system-tzdata option by running pg_config

1

As of 2019-07-09, I get from

git log src/timezone/data/tzdata.zi

that the latest commit that modified the time zone data was d312de3fc092c784e743e58be4d1617cfb704b71:

Update time zone data files to tzdata release 2019a.

DST law changes in Palestine and Metlakatla. Historical corrections for Israel.

Etc/UCT is now a backward-compatibility link to Etc/UTC, instead of being a separate zone that generates the abbreviation "UCT", which nowadays is typically a typo. Postgres will still accept "UCT" as an input zone name, but it won't output it.

Now the Brazil time zone changes from April 2019 were released in 2019b, as can be seen from the mailing list archive:

The 2019b release of the tz code and data is available. It reflects the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes:

   Briefly:
     Brazil no longer observes DST.
     'zic -b slim' outputs smaller TZif files; please try it out.
     Palestine's 2019 spring-forward transition was on 03-29, not 03-30.

The conclusion is that the latest PostgreSQL minor releases at 2019-07-09 do not include the latest daylight savings time changes for Brazil.

You'd have to build PostgreSQL to use the operating system's time zone data on a system where this change is already in effect. Or you wait for the next minor PostgreSQL release.

  • What if Postgres was compiled with --with-system-tzdata=/usr/share/zoneinfo (as it is on my CentOS 7 installation) – a_horse_with_no_name Jul 9 at 9:12
  • Then it depends on how up to date CentOS 7 is. I tried to cover that in the last two sentences. – Laurenz Albe Jul 9 at 9:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.