85 lines
4.1 KiB
Diff
85 lines
4.1 KiB
Diff
From dee1e86d0e6d20c6326073db1736ae2088aac191 Mon Sep 17 00:00:00 2001
|
|
From: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Date: Mon, 20 Jan 2025 15:47:53 -0500
|
|
Subject: [PATCH] Avoid using timezone Asia/Manila in regression tests.
|
|
|
|
The freshly-released 2025a version of tzdata has a refined estimate
|
|
for the longitude of Manila, changing their value for LMT in
|
|
pre-standardized-timezone days. This changes the output of one of
|
|
our test cases. Since we need to be able to run with system tzdata
|
|
files that may or may not contain this update, we'd better stop
|
|
making that specific test.
|
|
|
|
I switched it to use Asia/Singapore, which has a roughly similar UTC
|
|
offset. That LMT value hasn't changed in tzdb since 2003, so we can
|
|
hope that it's well established.
|
|
|
|
I also noticed that this set of make_timestamptz tests only exercises
|
|
zones east of Greenwich, which seems rather sad, and was not the
|
|
original intent AFAICS. (We've already changed these tests once
|
|
to stabilize their results across tzdata updates, cf 66b737cd9;
|
|
it looks like I failed to consider the UTC-offset-sign aspect then.)
|
|
To improve that, add a test with Pacific/Honolulu. That LMT offset
|
|
is also quite old in tzdb, so we'll cross our fingers that it doesn't
|
|
get improved.
|
|
|
|
Reported-by: Christoph Berg <cb@df7cb.de>
|
|
Discussion: https://postgr.es/m/Z46inkznCxesvDEb@msg.df7cb.de
|
|
Backpatch-through: 13
|
|
---
|
|
src/include/datatype/timestamp.h | 2 +-
|
|
src/test/regress/expected/timestamptz.out | 10 ++++++++--
|
|
src/test/regress/sql/timestamptz.sql | 3 ++-
|
|
3 files changed, 11 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/src/include/datatype/timestamp.h b/src/include/datatype/timestamp.h
|
|
index 6be6d35d1e2c2..92b1cca9901be 100644
|
|
--- a/src/include/datatype/timestamp.h
|
|
+++ b/src/include/datatype/timestamp.h
|
|
@@ -96,7 +96,7 @@ typedef struct
|
|
/*
|
|
* We allow numeric timezone offsets up to 15:59:59 either way from Greenwich.
|
|
* Currently, the record holders for wackiest offsets in actual use are zones
|
|
- * Asia/Manila, at -15:56:00 until 1844, and America/Metlakatla, at +15:13:42
|
|
+ * Asia/Manila, at -15:56:08 until 1844, and America/Metlakatla, at +15:13:42
|
|
* until 1867. If we were to reject such values we would fail to dump and
|
|
* restore old timestamptz values with these zone settings.
|
|
*/
|
|
diff --git a/src/test/regress/expected/timestamptz.out b/src/test/regress/expected/timestamptz.out
|
|
index 0ce33862019b2..77abfab1f6663 100644
|
|
--- a/src/test/regress/expected/timestamptz.out
|
|
+++ b/src/test/regress/expected/timestamptz.out
|
|
@@ -2072,10 +2072,16 @@ SELECT make_timestamptz(2014, 12, 10, 0, 0, 0, 'Europe/Prague') AT TIME ZONE 'UT
|
|
Tue Dec 09 23:00:00 2014
|
|
(1 row)
|
|
|
|
-SELECT make_timestamptz(1846, 12, 10, 0, 0, 0, 'Asia/Manila') AT TIME ZONE 'UTC';
|
|
+SELECT make_timestamptz(1881, 12, 10, 0, 0, 0, 'Asia/Singapore') AT TIME ZONE 'UTC';
|
|
timezone
|
|
--------------------------
|
|
- Wed Dec 09 15:56:00 1846
|
|
+ Fri Dec 09 17:04:35 1881
|
|
+(1 row)
|
|
+
|
|
+SELECT make_timestamptz(1881, 12, 10, 0, 0, 0, 'Pacific/Honolulu') AT TIME ZONE 'UTC';
|
|
+ timezone
|
|
+--------------------------
|
|
+ Sat Dec 10 10:31:26 1881
|
|
(1 row)
|
|
|
|
SELECT make_timestamptz(1881, 12, 10, 0, 0, 0, 'Europe/Paris') AT TIME ZONE 'UTC';
|
|
diff --git a/src/test/regress/sql/timestamptz.sql b/src/test/regress/sql/timestamptz.sql
|
|
index f0a8d3e5aa6dc..ac0bc14854956 100644
|
|
--- a/src/test/regress/sql/timestamptz.sql
|
|
+++ b/src/test/regress/sql/timestamptz.sql
|
|
@@ -331,7 +331,8 @@ SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33, '+2') = '1973-07-15 08:15:5
|
|
-- full timezone names
|
|
SELECT make_timestamptz(2014, 12, 10, 0, 0, 0, 'Europe/Prague') = timestamptz '2014-12-10 00:00:00 Europe/Prague';
|
|
SELECT make_timestamptz(2014, 12, 10, 0, 0, 0, 'Europe/Prague') AT TIME ZONE 'UTC';
|
|
-SELECT make_timestamptz(1846, 12, 10, 0, 0, 0, 'Asia/Manila') AT TIME ZONE 'UTC';
|
|
+SELECT make_timestamptz(1881, 12, 10, 0, 0, 0, 'Asia/Singapore') AT TIME ZONE 'UTC';
|
|
+SELECT make_timestamptz(1881, 12, 10, 0, 0, 0, 'Pacific/Honolulu') AT TIME ZONE 'UTC';
|
|
SELECT make_timestamptz(1881, 12, 10, 0, 0, 0, 'Europe/Paris') AT TIME ZONE 'UTC';
|
|
SELECT make_timestamptz(1910, 12, 24, 0, 0, 0, 'Nehwon/Lankhmar');
|
|
|