tests: fix testsuites for tzdata2017a

Version: 9.6.2-1
This commit is contained in:
Pavel Raiskup 2017-03-13 10:56:08 +01:00
parent 86f7229682
commit 0c1f8cf381
2 changed files with 753 additions and 0 deletions

View File

@ -0,0 +1,751 @@
From d8ec6b9c8c265c2f29b1c0e0e4205895baaa326d Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 9 Mar 2017 17:20:11 -0500
Subject: [PATCH] Fix timestamptz regression test to still work with latest
IANA zone data.
The IANA timezone crew continues to chip away at their project of removing
timezone abbreviations that have no real-world currency from their
database. The tzdata2017a update removes all such abbreviations for
South American zones, as well as much of the Pacific. This breaks some
test cases in timestamptz.sql that were expecting America/Santiago and
America/Caracas to have non-numeric abbreviations.
The test cases involving America/Santiago seem to have selected that
zone more or less at random, so just replace it with America/New_York,
which is of similar longitude. The cases involving America/Caracas are
harder since they were chosen to test a time-varying zone abbreviation
around a point where it changed meaning in the backwards direction.
Fortunately, Europe/Moscow has a similar case in 2014, and the MSK/MSD
abbreviations are well enough attested that IANA seems unlikely to
decide to remove them from the database in future.
With these changes, this regression test should pass when using any IANA
zone database from 2015 or later. One could wish that there were a few
years more daylight on how out-of-date your zone database can be ... but
really the --with-system-tzdata option is only meant for use on platforms
where the zone database is kept up-to-date pretty faithfully, so I do not
think this is a big objection.
Discussion: https://postgr.es/m/6749.1489087470@sss.pgh.pa.us
---
src/test/regress/expected/timestamptz.out | 324 ++++++++++--------------------
src/test/regress/sql/timestamptz.sql | 103 ++++------
2 files changed, 148 insertions(+), 279 deletions(-)
diff --git a/src/test/regress/expected/timestamptz.out b/src/test/regress/expected/timestamptz.out
index 51d4d21..3319247 100644
--- a/src/test/regress/expected/timestamptz.out
+++ b/src/test/regress/expected/timestamptz.out
@@ -1773,24 +1773,24 @@ SELECT * FROM TIMESTAMPTZ_TST ORDER BY a;
--Cleanup
DROP TABLE TIMESTAMPTZ_TST;
-- test timestamptz constructors
-set TimeZone to 'America/Santiago';
+set TimeZone to 'America/New_York';
-- numeric timezone
SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33);
make_timestamptz
---------------------------------
- Sun Jul 15 08:15:55.33 1973 CLT
+ Sun Jul 15 08:15:55.33 1973 EDT
(1 row)
SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33, '+2');
make_timestamptz
---------------------------------
- Sun Jul 15 02:15:55.33 1973 CLT
+ Sun Jul 15 02:15:55.33 1973 EDT
(1 row)
SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33, '-2');
make_timestamptz
---------------------------------
- Sun Jul 15 06:15:55.33 1973 CLT
+ Sun Jul 15 06:15:55.33 1973 EDT
(1 row)
WITH tzs (tz) AS (VALUES
@@ -1799,23 +1799,23 @@ WITH tzs (tz) AS (VALUES
('+10:00:1'), ('+10:00:01'),
('+10:00:10'))
SELECT make_timestamptz(2010, 2, 27, 3, 45, 00, tz), tz FROM tzs;
- make_timestamptz | tz
--------------------------------+-----------
- Fri Feb 26 23:45:00 2010 CLST | +1
- Fri Feb 26 23:45:00 2010 CLST | +1:
- Fri Feb 26 23:45:00 2010 CLST | +1:0
- Fri Feb 26 23:45:00 2010 CLST | +100
- Fri Feb 26 23:45:00 2010 CLST | +1:00
- Fri Feb 26 23:45:00 2010 CLST | +01:00
- Fri Feb 26 14:45:00 2010 CLST | +10
- Fri Feb 26 14:45:00 2010 CLST | +1000
- Fri Feb 26 14:45:00 2010 CLST | +10:
- Fri Feb 26 14:45:00 2010 CLST | +10:0
- Fri Feb 26 14:45:00 2010 CLST | +10:00
- Fri Feb 26 14:45:00 2010 CLST | +10:00:
- Fri Feb 26 14:44:59 2010 CLST | +10:00:1
- Fri Feb 26 14:44:59 2010 CLST | +10:00:01
- Fri Feb 26 14:44:50 2010 CLST | +10:00:10
+ make_timestamptz | tz
+------------------------------+-----------
+ Fri Feb 26 21:45:00 2010 EST | +1
+ Fri Feb 26 21:45:00 2010 EST | +1:
+ Fri Feb 26 21:45:00 2010 EST | +1:0
+ Fri Feb 26 21:45:00 2010 EST | +100
+ Fri Feb 26 21:45:00 2010 EST | +1:00
+ Fri Feb 26 21:45:00 2010 EST | +01:00
+ Fri Feb 26 12:45:00 2010 EST | +10
+ Fri Feb 26 12:45:00 2010 EST | +1000
+ Fri Feb 26 12:45:00 2010 EST | +10:
+ Fri Feb 26 12:45:00 2010 EST | +10:0
+ Fri Feb 26 12:45:00 2010 EST | +10:00
+ Fri Feb 26 12:45:00 2010 EST | +10:00:
+ Fri Feb 26 12:44:59 2010 EST | +10:00:1
+ Fri Feb 26 12:44:59 2010 EST | +10:00:01
+ Fri Feb 26 12:44:50 2010 EST | +10:00:10
(15 rows)
-- these should fail
@@ -1861,30 +1861,29 @@ 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');
ERROR: time zone "Nehwon/Lankhmar" not recognized
-- abbreviations
-SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'CLST');
- make_timestamptz
--------------------------------
- Wed Dec 10 10:10:10 2008 CLST
+SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'EST');
+ make_timestamptz
+------------------------------
+ Wed Dec 10 10:10:10 2008 EST
(1 row)
-SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'CLT');
- make_timestamptz
--------------------------------
- Wed Dec 10 11:10:10 2008 CLST
+SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'EDT');
+ make_timestamptz
+------------------------------
+ Wed Dec 10 09:10:10 2008 EST
(1 row)
SELECT make_timestamptz(2014, 12, 10, 10, 10, 10, 'PST8PDT');
- make_timestamptz
--------------------------------
- Wed Dec 10 15:10:10 2014 CLST
+ make_timestamptz
+------------------------------
+ Wed Dec 10 13:10:10 2014 EST
(1 row)
RESET TimeZone;
--
-- Test behavior with a dynamic (time-varying) timezone abbreviation.
-- These tests rely on the knowledge that MSK (Europe/Moscow standard time)
--- moved forwards in Mar 2011 and that VET (America/Caracas standard time)
--- moved backwards in Dec 2007.
+-- moved forwards in Mar 2011 and backwards again in Oct 2014.
--
SET TimeZone to 'UTC';
SELECT '2011-03-27 00:00:00 Europe/Moscow'::timestamptz;
@@ -1995,100 +1994,64 @@ SELECT '2011-03-27 04:00:00 MSK'::timestamptz;
Sun Mar 27 00:00:00 2011 UTC
(1 row)
-SELECT '2007-12-09 02:00:00 America/Caracas'::timestamptz;
+SELECT '2014-10-26 00:00:00 Europe/Moscow'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 06:00:00 2007 UTC
+ Sat Oct 25 20:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 02:29:59 America/Caracas'::timestamptz;
+SELECT '2014-10-26 00:59:59 Europe/Moscow'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 06:29:59 2007 UTC
+ Sat Oct 25 20:59:59 2014 UTC
(1 row)
-SELECT '2007-12-09 02:30:00 America/Caracas'::timestamptz;
+SELECT '2014-10-26 01:00:00 Europe/Moscow'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 07:00:00 2007 UTC
+ Sat Oct 25 22:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 02:30:01 America/Caracas'::timestamptz;
+SELECT '2014-10-26 01:00:01 Europe/Moscow'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 07:00:01 2007 UTC
+ Sat Oct 25 22:00:01 2014 UTC
(1 row)
-SELECT '2007-12-09 02:59:59 America/Caracas'::timestamptz;
+SELECT '2014-10-26 02:00:00 Europe/Moscow'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 07:29:59 2007 UTC
+ Sat Oct 25 23:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 03:00:00 America/Caracas'::timestamptz;
+SELECT '2014-10-26 00:00:00 MSK'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 07:30:00 2007 UTC
+ Sat Oct 25 20:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 03:00:01 America/Caracas'::timestamptz;
+SELECT '2014-10-26 00:59:59 MSK'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 07:30:01 2007 UTC
+ Sat Oct 25 20:59:59 2014 UTC
(1 row)
-SELECT '2007-12-09 04:00:00 America/Caracas'::timestamptz;
+SELECT '2014-10-26 01:00:00 MSK'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 08:30:00 2007 UTC
+ Sat Oct 25 22:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 02:00:00 VET'::timestamptz;
+SELECT '2014-10-26 01:00:01 MSK'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 06:00:00 2007 UTC
+ Sat Oct 25 22:00:01 2014 UTC
(1 row)
-SELECT '2007-12-09 02:29:59 VET'::timestamptz;
+SELECT '2014-10-26 02:00:00 MSK'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 06:29:59 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:30:00 VET'::timestamptz;
- timestamptz
-------------------------------
- Sun Dec 09 07:00:00 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:30:01 VET'::timestamptz;
- timestamptz
-------------------------------
- Sun Dec 09 07:00:01 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:59:59 VET'::timestamptz;
- timestamptz
-------------------------------
- Sun Dec 09 07:29:59 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 03:00:00 VET'::timestamptz;
- timestamptz
-------------------------------
- Sun Dec 09 07:30:00 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 03:00:01 VET'::timestamptz;
- timestamptz
-------------------------------
- Sun Dec 09 07:30:01 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 04:00:00 VET'::timestamptz;
- timestamptz
-------------------------------
- Sun Dec 09 08:30:00 2007 UTC
+ Sat Oct 25 23:00:00 2014 UTC
(1 row)
SELECT '2011-03-27 00:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
@@ -2199,112 +2162,76 @@ SELECT '2011-03-27 04:00:00'::timestamp AT TIME ZONE 'MSK';
Sun Mar 27 00:00:00 2011 UTC
(1 row)
-SELECT '2007-12-09 02:00:00'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
timezone
------------------------------
- Sun Dec 09 06:00:00 2007 UTC
+ Sat Oct 25 20:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 02:29:59'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'Europe/Moscow';
timezone
------------------------------
- Sun Dec 09 06:29:59 2007 UTC
+ Sat Oct 25 20:59:59 2014 UTC
(1 row)
-SELECT '2007-12-09 02:30:00'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
timezone
------------------------------
- Sun Dec 09 07:00:00 2007 UTC
+ Sat Oct 25 22:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 02:30:01'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'Europe/Moscow';
timezone
------------------------------
- Sun Dec 09 07:00:01 2007 UTC
+ Sat Oct 25 22:00:01 2014 UTC
(1 row)
-SELECT '2007-12-09 02:59:59'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
timezone
------------------------------
- Sun Dec 09 07:29:59 2007 UTC
+ Sat Oct 25 23:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 03:00:00'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'MSK';
timezone
------------------------------
- Sun Dec 09 07:30:00 2007 UTC
+ Sat Oct 25 20:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 03:00:01'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'MSK';
timezone
------------------------------
- Sun Dec 09 07:30:01 2007 UTC
+ Sat Oct 25 20:59:59 2014 UTC
(1 row)
-SELECT '2007-12-09 04:00:00'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'MSK';
timezone
------------------------------
- Sun Dec 09 08:30:00 2007 UTC
+ Sat Oct 25 22:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 02:00:00'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'MSK';
timezone
------------------------------
- Sun Dec 09 06:00:00 2007 UTC
+ Sat Oct 25 22:00:01 2014 UTC
(1 row)
-SELECT '2007-12-09 02:29:59'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'MSK';
timezone
------------------------------
- Sun Dec 09 06:29:59 2007 UTC
+ Sat Oct 25 23:00:00 2014 UTC
(1 row)
-SELECT '2007-12-09 02:30:00'::timestamp AT TIME ZONE 'VET';
- timezone
-------------------------------
- Sun Dec 09 07:00:00 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:30:01'::timestamp AT TIME ZONE 'VET';
- timezone
-------------------------------
- Sun Dec 09 07:00:01 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:59:59'::timestamp AT TIME ZONE 'VET';
- timezone
-------------------------------
- Sun Dec 09 07:29:59 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 03:00:00'::timestamp AT TIME ZONE 'VET';
- timezone
-------------------------------
- Sun Dec 09 07:30:00 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 03:00:01'::timestamp AT TIME ZONE 'VET';
- timezone
-------------------------------
- Sun Dec 09 07:30:01 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 04:00:00'::timestamp AT TIME ZONE 'VET';
- timezone
-------------------------------
- Sun Dec 09 08:30:00 2007 UTC
-(1 row)
-
-SELECT make_timestamptz(2007, 12, 9, 2, 0, 0, 'VET');
+SELECT make_timestamptz(2014, 10, 26, 0, 0, 0, 'MSK');
make_timestamptz
------------------------------
- Sun Dec 09 06:00:00 2007 UTC
+ Sat Oct 25 20:00:00 2014 UTC
(1 row)
-SELECT make_timestamptz(2007, 12, 9, 3, 0, 0, 'VET');
+SELECT make_timestamptz(2014, 10, 26, 1, 0, 0, 'MSK');
make_timestamptz
------------------------------
- Sun Dec 09 07:30:00 2007 UTC
+ Sat Oct 25 22:00:00 2014 UTC
(1 row)
SELECT to_timestamp( 0); -- 1970-01-01 00:00:00+00
@@ -2391,47 +2318,34 @@ SELECT '2011-03-27 00:00:00 UTC'::timestamptz;
Sun Mar 27 04:00:00 2011 MSK
(1 row)
-SET TimeZone to 'America/Caracas';
-SELECT '2007-12-09 06:00:00 UTC'::timestamptz;
+SELECT '2014-10-25 21:00:00 UTC'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 02:00:00 2007 VET
+ Sun Oct 26 01:00:00 2014 MSK
(1 row)
-SELECT '2007-12-09 06:30:00 UTC'::timestamptz;
+SELECT '2014-10-25 21:59:59 UTC'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 02:30:00 2007 VET
+ Sun Oct 26 01:59:59 2014 MSK
(1 row)
-SELECT '2007-12-09 06:59:59 UTC'::timestamptz;
+SELECT '2014-10-25 22:00:00 UTC'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 02:59:59 2007 VET
+ Sun Oct 26 01:00:00 2014 MSK
(1 row)
-SELECT '2007-12-09 07:00:00 UTC'::timestamptz;
+SELECT '2014-10-25 22:00:01 UTC'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 02:30:00 2007 VET
+ Sun Oct 26 01:00:01 2014 MSK
(1 row)
-SELECT '2007-12-09 07:00:01 UTC'::timestamptz;
+SELECT '2014-10-25 23:00:00 UTC'::timestamptz;
timestamptz
------------------------------
- Sun Dec 09 02:30:01 2007 VET
-(1 row)
-
-SELECT '2007-12-09 07:29:59 UTC'::timestamptz;
- timestamptz
-------------------------------
- Sun Dec 09 02:59:59 2007 VET
-(1 row)
-
-SELECT '2007-12-09 07:30:00 UTC'::timestamptz;
- timestamptz
-------------------------------
- Sun Dec 09 03:00:00 2007 VET
+ Sun Oct 26 02:00:00 2014 MSK
(1 row)
RESET TimeZone;
@@ -2477,46 +2391,34 @@ SELECT '2011-03-27 00:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
Sun Mar 27 04:00:00 2011
(1 row)
-SELECT '2007-12-09 06:00:00 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-25 21:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
timezone
--------------------------
- Sun Dec 09 02:00:00 2007
+ Sun Oct 26 01:00:00 2014
(1 row)
-SELECT '2007-12-09 06:30:00 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-25 21:59:59 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
timezone
--------------------------
- Sun Dec 09 02:30:00 2007
+ Sun Oct 26 01:59:59 2014
(1 row)
-SELECT '2007-12-09 06:59:59 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-25 22:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
timezone
--------------------------
- Sun Dec 09 02:59:59 2007
+ Sun Oct 26 01:00:00 2014
(1 row)
-SELECT '2007-12-09 07:00:00 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-25 22:00:01 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
timezone
--------------------------
- Sun Dec 09 02:30:00 2007
+ Sun Oct 26 01:00:01 2014
(1 row)
-SELECT '2007-12-09 07:00:01 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-25 23:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
timezone
--------------------------
- Sun Dec 09 02:30:01 2007
-(1 row)
-
-SELECT '2007-12-09 07:29:59 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
- timezone
---------------------------
- Sun Dec 09 02:59:59 2007
-(1 row)
-
-SELECT '2007-12-09 07:30:00 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
- timezone
---------------------------
- Sun Dec 09 03:00:00 2007
+ Sun Oct 26 02:00:00 2014
(1 row)
SELECT '2011-03-26 21:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
@@ -2561,46 +2463,34 @@ SELECT '2011-03-27 00:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
Sun Mar 27 04:00:00 2011
(1 row)
-SELECT '2007-12-09 06:00:00 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 21:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
timezone
--------------------------
- Sun Dec 09 02:00:00 2007
+ Sun Oct 26 01:00:00 2014
(1 row)
-SELECT '2007-12-09 06:30:00 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 21:59:59 UTC'::timestamptz AT TIME ZONE 'MSK';
timezone
--------------------------
- Sun Dec 09 02:30:00 2007
+ Sun Oct 26 01:59:59 2014
(1 row)
-SELECT '2007-12-09 06:59:59 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 22:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
timezone
--------------------------
- Sun Dec 09 02:59:59 2007
+ Sun Oct 26 01:00:00 2014
(1 row)
-SELECT '2007-12-09 07:00:00 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 22:00:01 UTC'::timestamptz AT TIME ZONE 'MSK';
timezone
--------------------------
- Sun Dec 09 02:30:00 2007
+ Sun Oct 26 01:00:01 2014
(1 row)
-SELECT '2007-12-09 07:00:01 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 23:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
timezone
--------------------------
- Sun Dec 09 02:30:01 2007
-(1 row)
-
-SELECT '2007-12-09 07:29:59 UTC'::timestamptz AT TIME ZONE 'VET';
- timezone
---------------------------
- Sun Dec 09 02:59:59 2007
-(1 row)
-
-SELECT '2007-12-09 07:30:00 UTC'::timestamptz AT TIME ZONE 'VET';
- timezone
---------------------------
- Sun Dec 09 03:00:00 2007
+ Sun Oct 26 02:00:00 2014
(1 row)
--
diff --git a/src/test/regress/sql/timestamptz.sql b/src/test/regress/sql/timestamptz.sql
index ab86622..4e37071 100644
--- a/src/test/regress/sql/timestamptz.sql
+++ b/src/test/regress/sql/timestamptz.sql
@@ -280,7 +280,7 @@ SELECT * FROM TIMESTAMPTZ_TST ORDER BY a;
DROP TABLE TIMESTAMPTZ_TST;
-- test timestamptz constructors
-set TimeZone to 'America/Santiago';
+set TimeZone to 'America/New_York';
-- numeric timezone
SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33);
@@ -309,8 +309,8 @@ 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');
-- abbreviations
-SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'CLST');
-SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'CLT');
+SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'EST');
+SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'EDT');
SELECT make_timestamptz(2014, 12, 10, 10, 10, 10, 'PST8PDT');
RESET TimeZone;
@@ -318,8 +318,7 @@ RESET TimeZone;
--
-- Test behavior with a dynamic (time-varying) timezone abbreviation.
-- These tests rely on the knowledge that MSK (Europe/Moscow standard time)
--- moved forwards in Mar 2011 and that VET (America/Caracas standard time)
--- moved backwards in Dec 2007.
+-- moved forwards in Mar 2011 and backwards again in Oct 2014.
--
SET TimeZone to 'UTC';
@@ -344,23 +343,17 @@ SELECT '2011-03-27 03:00:00 MSK'::timestamptz;
SELECT '2011-03-27 03:00:01 MSK'::timestamptz;
SELECT '2011-03-27 04:00:00 MSK'::timestamptz;
-SELECT '2007-12-09 02:00:00 America/Caracas'::timestamptz;
-SELECT '2007-12-09 02:29:59 America/Caracas'::timestamptz;
-SELECT '2007-12-09 02:30:00 America/Caracas'::timestamptz;
-SELECT '2007-12-09 02:30:01 America/Caracas'::timestamptz;
-SELECT '2007-12-09 02:59:59 America/Caracas'::timestamptz;
-SELECT '2007-12-09 03:00:00 America/Caracas'::timestamptz;
-SELECT '2007-12-09 03:00:01 America/Caracas'::timestamptz;
-SELECT '2007-12-09 04:00:00 America/Caracas'::timestamptz;
+SELECT '2014-10-26 00:00:00 Europe/Moscow'::timestamptz;
+SELECT '2014-10-26 00:59:59 Europe/Moscow'::timestamptz;
+SELECT '2014-10-26 01:00:00 Europe/Moscow'::timestamptz;
+SELECT '2014-10-26 01:00:01 Europe/Moscow'::timestamptz;
+SELECT '2014-10-26 02:00:00 Europe/Moscow'::timestamptz;
-SELECT '2007-12-09 02:00:00 VET'::timestamptz;
-SELECT '2007-12-09 02:29:59 VET'::timestamptz;
-SELECT '2007-12-09 02:30:00 VET'::timestamptz;
-SELECT '2007-12-09 02:30:01 VET'::timestamptz;
-SELECT '2007-12-09 02:59:59 VET'::timestamptz;
-SELECT '2007-12-09 03:00:00 VET'::timestamptz;
-SELECT '2007-12-09 03:00:01 VET'::timestamptz;
-SELECT '2007-12-09 04:00:00 VET'::timestamptz;
+SELECT '2014-10-26 00:00:00 MSK'::timestamptz;
+SELECT '2014-10-26 00:59:59 MSK'::timestamptz;
+SELECT '2014-10-26 01:00:00 MSK'::timestamptz;
+SELECT '2014-10-26 01:00:01 MSK'::timestamptz;
+SELECT '2014-10-26 02:00:00 MSK'::timestamptz;
SELECT '2011-03-27 00:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
SELECT '2011-03-27 01:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
@@ -382,26 +375,20 @@ SELECT '2011-03-27 03:00:00'::timestamp AT TIME ZONE 'MSK';
SELECT '2011-03-27 03:00:01'::timestamp AT TIME ZONE 'MSK';
SELECT '2011-03-27 04:00:00'::timestamp AT TIME ZONE 'MSK';
-SELECT '2007-12-09 02:00:00'::timestamp AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 02:29:59'::timestamp AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 02:30:00'::timestamp AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 02:30:01'::timestamp AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 02:59:59'::timestamp AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 03:00:00'::timestamp AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 03:00:01'::timestamp AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 04:00:00'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
+SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'Europe/Moscow';
+SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
+SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'Europe/Moscow';
+SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
-SELECT '2007-12-09 02:00:00'::timestamp AT TIME ZONE 'VET';
-SELECT '2007-12-09 02:29:59'::timestamp AT TIME ZONE 'VET';
-SELECT '2007-12-09 02:30:00'::timestamp AT TIME ZONE 'VET';
-SELECT '2007-12-09 02:30:01'::timestamp AT TIME ZONE 'VET';
-SELECT '2007-12-09 02:59:59'::timestamp AT TIME ZONE 'VET';
-SELECT '2007-12-09 03:00:00'::timestamp AT TIME ZONE 'VET';
-SELECT '2007-12-09 03:00:01'::timestamp AT TIME ZONE 'VET';
-SELECT '2007-12-09 04:00:00'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'MSK';
+SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'MSK';
+SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'MSK';
+SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'MSK';
+SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'MSK';
-SELECT make_timestamptz(2007, 12, 9, 2, 0, 0, 'VET');
-SELECT make_timestamptz(2007, 12, 9, 3, 0, 0, 'VET');
+SELECT make_timestamptz(2014, 10, 26, 0, 0, 0, 'MSK');
+SELECT make_timestamptz(2014, 10, 26, 1, 0, 0, 'MSK');
SELECT to_timestamp( 0); -- 1970-01-01 00:00:00+00
SELECT to_timestamp( 946684800); -- 2000-01-01 00:00:00+00
@@ -425,15 +412,11 @@ SELECT '2011-03-26 23:00:01 UTC'::timestamptz;
SELECT '2011-03-26 23:59:59 UTC'::timestamptz;
SELECT '2011-03-27 00:00:00 UTC'::timestamptz;
-SET TimeZone to 'America/Caracas';
-
-SELECT '2007-12-09 06:00:00 UTC'::timestamptz;
-SELECT '2007-12-09 06:30:00 UTC'::timestamptz;
-SELECT '2007-12-09 06:59:59 UTC'::timestamptz;
-SELECT '2007-12-09 07:00:00 UTC'::timestamptz;
-SELECT '2007-12-09 07:00:01 UTC'::timestamptz;
-SELECT '2007-12-09 07:29:59 UTC'::timestamptz;
-SELECT '2007-12-09 07:30:00 UTC'::timestamptz;
+SELECT '2014-10-25 21:00:00 UTC'::timestamptz;
+SELECT '2014-10-25 21:59:59 UTC'::timestamptz;
+SELECT '2014-10-25 22:00:00 UTC'::timestamptz;
+SELECT '2014-10-25 22:00:01 UTC'::timestamptz;
+SELECT '2014-10-25 23:00:00 UTC'::timestamptz;
RESET TimeZone;
@@ -445,13 +428,11 @@ SELECT '2011-03-26 23:00:01 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
SELECT '2011-03-26 23:59:59 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
SELECT '2011-03-27 00:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
-SELECT '2007-12-09 06:00:00 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 06:30:00 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 06:59:59 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 07:00:00 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 07:00:01 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 07:29:59 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
-SELECT '2007-12-09 07:30:00 UTC'::timestamptz AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-25 21:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
+SELECT '2014-10-25 21:59:59 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
+SELECT '2014-10-25 22:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
+SELECT '2014-10-25 22:00:01 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
+SELECT '2014-10-25 23:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow';
SELECT '2011-03-26 21:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
SELECT '2011-03-26 22:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
@@ -461,13 +442,11 @@ SELECT '2011-03-26 23:00:01 UTC'::timestamptz AT TIME ZONE 'MSK';
SELECT '2011-03-26 23:59:59 UTC'::timestamptz AT TIME ZONE 'MSK';
SELECT '2011-03-27 00:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
-SELECT '2007-12-09 06:00:00 UTC'::timestamptz AT TIME ZONE 'VET';
-SELECT '2007-12-09 06:30:00 UTC'::timestamptz AT TIME ZONE 'VET';
-SELECT '2007-12-09 06:59:59 UTC'::timestamptz AT TIME ZONE 'VET';
-SELECT '2007-12-09 07:00:00 UTC'::timestamptz AT TIME ZONE 'VET';
-SELECT '2007-12-09 07:00:01 UTC'::timestamptz AT TIME ZONE 'VET';
-SELECT '2007-12-09 07:29:59 UTC'::timestamptz AT TIME ZONE 'VET';
-SELECT '2007-12-09 07:30:00 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 21:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
+SELECT '2014-10-25 21:59:59 UTC'::timestamptz AT TIME ZONE 'MSK';
+SELECT '2014-10-25 22:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
+SELECT '2014-10-25 22:00:01 UTC'::timestamptz AT TIME ZONE 'MSK';
+SELECT '2014-10-25 23:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
--
-- Test that the pg_timezone_names and pg_timezone_abbrevs views are
--
2.9.3

View File

@ -114,6 +114,7 @@ Patch2: postgresql-logging.patch
Patch3: postgresql-perl-rpath.patch Patch3: postgresql-perl-rpath.patch
Patch5: postgresql-var-run-socket.patch Patch5: postgresql-var-run-socket.patch
Patch6: postgresql-man.patch Patch6: postgresql-man.patch
Patch7: postgresql-timezonetz-2017-tests.patch
BuildRequires: perl(ExtUtils::MakeMaker) glibc-devel bison flex gawk help2man BuildRequires: perl(ExtUtils::MakeMaker) glibc-devel bison flex gawk help2man
BuildRequires: perl(ExtUtils::Embed), perl-devel BuildRequires: perl(ExtUtils::Embed), perl-devel
@ -363,6 +364,7 @@ benchmarks.
%patch3 -p1 %patch3 -p1
%patch5 -p1 %patch5 -p1
%patch6 -p1 %patch6 -p1
%patch7 -p1
# We used to run autoconf here, but there's no longer any real need to, # We used to run autoconf here, but there's no longer any real need to,
# since Postgres ships with a reasonably modern configure script. # since Postgres ships with a reasonably modern configure script.