752 lines
27 KiB
Diff
752 lines
27 KiB
Diff
|
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
|
||
|
|