]> granicus.if.org Git - postgresql/commitdiff
Fix timestamptz regression test to still work with latest IANA zone data.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 9 Mar 2017 22:20:11 +0000 (17:20 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 9 Mar 2017 22:20:33 +0000 (17:20 -0500)
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
src/test/regress/sql/timestamptz.sql

index 69d3965c60dc8e174f307f2f4a396a3777cc066d..72266709627757aacfbb218fde4a237311c86454 100644 (file)
@@ -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;
-         timestamptz          
-------------------------------
- Sun Dec 09 06:00:00 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:29:59 America/Caracas'::timestamptz;
+SELECT '2014-10-26 00:00:00 Europe/Moscow'::timestamptz;
          timestamptz          
 ------------------------------
- Sun Dec 09 06:29:59 2007 UTC
+ Sat Oct 25 20:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:30:00 America/Caracas'::timestamptz;
+SELECT '2014-10-26 00:59:59 Europe/Moscow'::timestamptz;
          timestamptz          
 ------------------------------
- Sun Dec 09 07:00:00 2007 UTC
+ Sat Oct 25 20:59:59 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:30:01 America/Caracas'::timestamptz;
+SELECT '2014-10-26 01:00:00 Europe/Moscow'::timestamptz;
          timestamptz          
 ------------------------------
- Sun Dec 09 07:00:01 2007 UTC
+ Sat Oct 25 22:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:59:59 America/Caracas'::timestamptz;
+SELECT '2014-10-26 01:00:01 Europe/Moscow'::timestamptz;
          timestamptz          
 ------------------------------
- Sun Dec 09 07:29:59 2007 UTC
+ Sat Oct 25 22:00:01 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 03:00:00 America/Caracas'::timestamptz;
+SELECT '2014-10-26 02:00:00 Europe/Moscow'::timestamptz;
          timestamptz          
 ------------------------------
- Sun Dec 09 07:30:00 2007 UTC
+ Sat Oct 25 23:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 03:00:01 America/Caracas'::timestamptz;
+SELECT '2014-10-26 00:00:00 MSK'::timestamptz;
          timestamptz          
 ------------------------------
- Sun Dec 09 07:30:01 2007 UTC
+ Sat Oct 25 20:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 04:00:00 America/Caracas'::timestamptz;
+SELECT '2014-10-26 00:59:59 MSK'::timestamptz;
          timestamptz          
 ------------------------------
- Sun Dec 09 08:30:00 2007 UTC
+ Sat Oct 25 20:59:59 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:00:00 VET'::timestamptz;
+SELECT '2014-10-26 01:00:00 MSK'::timestamptz;
          timestamptz          
 ------------------------------
- Sun Dec 09 06:00:00 2007 UTC
+ Sat Oct 25 22:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:29:59 VET'::timestamptz;
+SELECT '2014-10-26 01:00:01 MSK'::timestamptz;
          timestamptz          
 ------------------------------
- Sun Dec 09 06:29:59 2007 UTC
+ Sat Oct 25 22:00:01 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:30:00 VET'::timestamptz;
+SELECT '2014-10-26 02:00:00 MSK'::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';
-           timezone           
-------------------------------
- Sun Dec 09 06:00:00 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:29:59'::timestamp AT TIME ZONE 'America/Caracas';
-           timezone           
-------------------------------
- Sun Dec 09 06:29:59 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:30:00'::timestamp AT TIME ZONE 'America/Caracas';
-           timezone           
-------------------------------
- Sun Dec 09 07:00:00 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:30:01'::timestamp AT TIME ZONE 'America/Caracas';
-           timezone           
-------------------------------
- Sun Dec 09 07:00:01 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 02:59:59'::timestamp AT TIME ZONE 'America/Caracas';
-           timezone           
-------------------------------
- Sun Dec 09 07:29:59 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 03:00:00'::timestamp AT TIME ZONE 'America/Caracas';
-           timezone           
-------------------------------
- Sun Dec 09 07:30:00 2007 UTC
-(1 row)
-
-SELECT '2007-12-09 03:00:01'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
            timezone           
 ------------------------------
- Sun Dec 09 07:30:01 2007 UTC
+ Sat Oct 25 20:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 04:00:00'::timestamp AT TIME ZONE 'America/Caracas';
+SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'Europe/Moscow';
            timezone           
 ------------------------------
- Sun Dec 09 08:30:00 2007 UTC
+ Sat Oct 25 20:59:59 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:00:00'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
            timezone           
 ------------------------------
- Sun Dec 09 06:00:00 2007 UTC
+ Sat Oct 25 22:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:29:59'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'Europe/Moscow';
            timezone           
 ------------------------------
- Sun Dec 09 06:29:59 2007 UTC
+ Sat Oct 25 22:00:01 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:30:00'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'Europe/Moscow';
            timezone           
 ------------------------------
- Sun Dec 09 07:00:00 2007 UTC
+ Sat Oct 25 23:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:30:01'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'MSK';
            timezone           
 ------------------------------
- Sun Dec 09 07:00:01 2007 UTC
+ Sat Oct 25 20:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 02:59:59'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'MSK';
            timezone           
 ------------------------------
- Sun Dec 09 07:29:59 2007 UTC
+ Sat Oct 25 20:59:59 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 03:00:00'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'MSK';
            timezone           
 ------------------------------
- Sun Dec 09 07:30:00 2007 UTC
+ Sat Oct 25 22:00:00 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 03:00:01'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'MSK';
            timezone           
 ------------------------------
- Sun Dec 09 07:30:01 2007 UTC
+ Sat Oct 25 22:00:01 2014 UTC
 (1 row)
 
-SELECT '2007-12-09 04:00:00'::timestamp AT TIME ZONE 'VET';
+SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'MSK';
            timezone           
 ------------------------------
- Sun Dec 09 08:30:00 2007 UTC
+ Sat Oct 25 23:00:00 2014 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';
-         timezone         
---------------------------
- Sun Dec 09 02:00:00 2007
-(1 row)
-
-SELECT '2007-12-09 06:30: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:30:00 2007
+ Sun Oct 26 01:00:00 2014
 (1 row)
 
-SELECT '2007-12-09 06:59:59 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:59:59 2007
+ Sun Oct 26 01:59:59 2014
 (1 row)
 
-SELECT '2007-12-09 07:00:00 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:30:00 2007
+ Sun Oct 26 01:00:00 2014
 (1 row)
 
-SELECT '2007-12-09 07:00:01 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:01 2007
+ Sun Oct 26 01:00:01 2014
 (1 row)
 
-SELECT '2007-12-09 07:29:59 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: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';
-         timezone         
---------------------------
- Sun Dec 09 02:00:00 2007
-(1 row)
-
-SELECT '2007-12-09 06:30:00 UTC'::timestamptz AT TIME ZONE 'VET';
-         timezone         
---------------------------
- Sun Dec 09 02:30:00 2007
-(1 row)
-
-SELECT '2007-12-09 06:59:59 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 21: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 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 07:00:01 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 22:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
          timezone         
 --------------------------
- Sun Dec 09 02:30:01 2007
+ Sun Oct 26 01:00:00 2014
 (1 row)
 
-SELECT '2007-12-09 07:29:59 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 22:00:01 UTC'::timestamptz AT TIME ZONE 'MSK';
          timezone         
 --------------------------
- Sun Dec 09 02:59:59 2007
+ Sun Oct 26 01:00:01 2014
 (1 row)
 
-SELECT '2007-12-09 07:30:00 UTC'::timestamptz AT TIME ZONE 'VET';
+SELECT '2014-10-25 23:00:00 UTC'::timestamptz AT TIME ZONE 'MSK';
          timezone         
 --------------------------
- Sun Dec 09 03:00:00 2007
+ Sun Oct 26 02:00:00 2014
 (1 row)
 
 --
index 5898747064824c78b16b5c2a0d602d90a226e843..97e57a2403afe8f2989eb1425600819fd7b69b9e 100644 (file)
@@ -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 '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 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 '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 '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 make_timestamptz(2007, 12, 9, 2, 0, 0, 'VET');
-SELECT make_timestamptz(2007, 12, 9, 3, 0, 0, 'VET');
+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 '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(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 AT TIME ZONE isn't misoptimized when using an index (bug #14504)