Hi all,

I'd like to bring up a timezone data issue that was recently reported
by a community user and share what we've found so far.

A user in Mexico reported a 1-hour time discrepancy between the OS
and the database when using the America/Mexico_City timezone. After
investigation, we identified the root cause:

1. Mexico abolished Daylight Saving Time in October 2022

Mexico officially stopped observing DST, so America/Mexico_City
should now stay on CST (UTC-6) year-round. However, the database
still switches to CDT (UTC-5) every April, causing the 1-hour
discrepancy the user reported.

2. Cloudberry's bundled tzdata is outdated

Cloudberry is based on PostgreSQL 14.4 (circa 2022), which ships
with tzdata 2022a (released March 2022) — before Mexico's DST
abolishment was enacted. The fix was included in tzdata 2022f
(released October 2022), but Cloudberry never picked it up.

3. PostgreSQL upstream has long since fixed this

Upstream PostgreSQL updated the bundled tzdata multiple times since
then, with the latest being 2025b. The key change was modifying
the Mexico DST rule from "2002 to max" to "2002 to 2022", so that
DST is no longer applied after 2022.

I have verified that the upstream tzdata updates (2022f through
2025b) can be cleanly cherry-picked onto the REL_2_STABLE branch.
A draft PR is available at:

https://github.com/apache/cloudberry/pull/1674

The changes are limited to timezone data files only — no code logic
is involved. Besides the Mexico fix, these updates also include DST
law changes for Greenland and Chile, new timezones like
America/Ciudad_Juarez and America/Coyhaique, and historical
corrections for multiple regions.

We don't need to apply this to main separately, as it will be
covered by the upcoming PostgreSQL 16.x merge.

The original issue is tracked at:

https://github.com/apache/cloudberry/issues/1670

Any feedback or concerns are welcome. Thanks!

Best regards, Max Yang

Reply via email to