Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Stabilize timetz test across DST transitions.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 29 Oct 2020 19:28:14 +0000 (15:28 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 29 Oct 2020 19:28:47 +0000 (15:28 -0400)
The timetz test cases I added in commit a9632830b were unintentionally
sensitive to whether or not DST is active in the PST8PDT time zone.
Thus, they'll start failing this coming weekend, as reported by
Bernhard M. Wiedemann in bug #16689.  Fortunately, DST-awareness is
not significant to the purpose of these test cases, so we can just
force them all to PDT (DST hours) to preserve stability of the
results.

Back-patch to v10, as the prior patch was.

Discussion: https://postgr.es/m/16689-57701daa23b377bf@postgresql.org

src/test/regress/expected/timetz.out
src/test/regress/sql/timetz.sql

index 55044d5dc10454561755d6cc81591a574a81b9c0..7fd8e43f157f7fe5db56ad27a6cf3d98efee03c2 100644 (file)
@@ -91,45 +91,45 @@ SELECT f1 AS "Ten" FROM TIMETZ_TBL WHERE f1 >= '00:00-07';
 (12 rows)
 
 -- Check edge cases
-SELECT '23:59:59.999999'::timetz;
+SELECT '23:59:59.999999 PDT'::timetz;
        timetz       
 --------------------
  23:59:59.999999-07
 (1 row)
 
-SELECT '23:59:59.9999999'::timetz;  -- rounds up
+SELECT '23:59:59.9999999 PDT'::timetz;  -- rounds up
    timetz    
 -------------
  24:00:00-07
 (1 row)
 
-SELECT '23:59:60'::timetz;  -- rounds up
+SELECT '23:59:60 PDT'::timetz;  -- rounds up
    timetz    
 -------------
  24:00:00-07
 (1 row)
 
-SELECT '24:00:00'::timetz;  -- allowed
+SELECT '24:00:00 PDT'::timetz;  -- allowed
    timetz    
 -------------
  24:00:00-07
 (1 row)
 
-SELECT '24:00:00.01'::timetz;  -- not allowed
-ERROR:  date/time field value out of range: "24:00:00.01"
-LINE 1: SELECT '24:00:00.01'::timetz;
+SELECT '24:00:00.01 PDT'::timetz;  -- not allowed
+ERROR:  date/time field value out of range: "24:00:00.01 PDT"
+LINE 1: SELECT '24:00:00.01 PDT'::timetz;
                ^
-SELECT '23:59:60.01'::timetz;  -- not allowed
-ERROR:  date/time field value out of range: "23:59:60.01"
-LINE 1: SELECT '23:59:60.01'::timetz;
+SELECT '23:59:60.01 PDT'::timetz;  -- not allowed
+ERROR:  date/time field value out of range: "23:59:60.01 PDT"
+LINE 1: SELECT '23:59:60.01 PDT'::timetz;
                ^
-SELECT '24:01:00'::timetz;  -- not allowed
-ERROR:  date/time field value out of range: "24:01:00"
-LINE 1: SELECT '24:01:00'::timetz;
+SELECT '24:01:00 PDT'::timetz;  -- not allowed
+ERROR:  date/time field value out of range: "24:01:00 PDT"
+LINE 1: SELECT '24:01:00 PDT'::timetz;
                ^
-SELECT '25:00:00'::timetz;  -- not allowed
-ERROR:  date/time field value out of range: "25:00:00"
-LINE 1: SELECT '25:00:00'::timetz;
+SELECT '25:00:00 PDT'::timetz;  -- not allowed
+ERROR:  date/time field value out of range: "25:00:00 PDT"
+LINE 1: SELECT '25:00:00 PDT'::timetz;
                ^
 --
 -- TIME simple math
index a1fa4ef3b7fbaa28f743f2b54e730616de4febf5..3321280e87a738816d3a6a22da7e447045fc3cd8 100644 (file)
@@ -36,14 +36,14 @@ SELECT f1 AS "None" FROM TIMETZ_TBL WHERE f1 < '00:00-07';
 SELECT f1 AS "Ten" FROM TIMETZ_TBL WHERE f1 >= '00:00-07';
 
 -- Check edge cases
-SELECT '23:59:59.999999'::timetz;
-SELECT '23:59:59.9999999'::timetz;  -- rounds up
-SELECT '23:59:60'::timetz;  -- rounds up
-SELECT '24:00:00'::timetz;  -- allowed
-SELECT '24:00:00.01'::timetz;  -- not allowed
-SELECT '23:59:60.01'::timetz;  -- not allowed
-SELECT '24:01:00'::timetz;  -- not allowed
-SELECT '25:00:00'::timetz;  -- not allowed
+SELECT '23:59:59.999999 PDT'::timetz;
+SELECT '23:59:59.9999999 PDT'::timetz;  -- rounds up
+SELECT '23:59:60 PDT'::timetz;  -- rounds up
+SELECT '24:00:00 PDT'::timetz;  -- allowed
+SELECT '24:00:00.01 PDT'::timetz;  -- not allowed
+SELECT '23:59:60.01 PDT'::timetz;  -- not allowed
+SELECT '24:01:00 PDT'::timetz;  -- not allowed
+SELECT '25:00:00 PDT'::timetz;  -- not allowed
 
 --
 -- TIME simple math