summary refs log tree commit diff
path: root/pkgs/servers/sql
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2020-11-04 10:48:21 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2020-11-04 10:48:21 +0100
commit9eb00b9a71ad3fc215a7a39114db929806132278 (patch)
tree1500ad3326691fc3381b0e4dc03f6ba8f63ed6c6 /pkgs/servers/sql
parent10c57af49c077493988b5bf123cb3f611e02322d (diff)
parent83163b43e47de20c20315920afd4b7d0d8ae46a0 (diff)
downloadnixpkgs-9eb00b9a71ad3fc215a7a39114db929806132278.tar
nixpkgs-9eb00b9a71ad3fc215a7a39114db929806132278.tar.gz
nixpkgs-9eb00b9a71ad3fc215a7a39114db929806132278.tar.bz2
nixpkgs-9eb00b9a71ad3fc215a7a39114db929806132278.tar.lz
nixpkgs-9eb00b9a71ad3fc215a7a39114db929806132278.tar.xz
nixpkgs-9eb00b9a71ad3fc215a7a39114db929806132278.tar.zst
nixpkgs-9eb00b9a71ad3fc215a7a39114db929806132278.zip
Merge staging-next into staging
Diffstat (limited to 'pkgs/servers/sql')
-rw-r--r--pkgs/servers/sql/postgresql/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/patches/stabilize-timetz-dst.patch117
2 files changed, 120 insertions, 1 deletions
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index bc1108ad333..31c60303c03 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -64,7 +64,9 @@ let
         (if atLeast "9.6" then ./patches/hardcode-pgxs-path-96.patch       else ./patches/hardcode-pgxs-path.patch)
         ./patches/specify_pkglibdir_at_runtime.patch
         ./patches/findstring.patch
-      ] ++ lib.optional stdenv.isLinux (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch);
+      ]
+      ++ lib.optional (atLeast "10") ./patches/stabilize-timetz-dst.patch
+      ++ lib.optional stdenv.isLinux (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch);
 
     installTargets = [ "install-world" ];
 
diff --git a/pkgs/servers/sql/postgresql/patches/stabilize-timetz-dst.patch b/pkgs/servers/sql/postgresql/patches/stabilize-timetz-dst.patch
new file mode 100644
index 00000000000..b6c633cb73e
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/patches/stabilize-timetz-dst.patch
@@ -0,0 +1,117 @@
+From 4a071afbd056282746a5bc9362e87f579a56402d Mon Sep 17 00:00:00 2001
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Date: Thu, 29 Oct 2020 15:28:14 -0400
+Subject: [PATCH 1/1] Stabilize timetz test across DST transitions.
+
+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
+Git viewer: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=4a071afbd056282746a5bc9362e87f579a56402d;hp=f90149e6285aaae6b48559afce1bd638ee26c33e
+---
+ src/test/regress/expected/timetz.out | 32 ++++++++++++++--------------
+ src/test/regress/sql/timetz.sql      | 16 +++++++-------
+ 2 files changed, 24 insertions(+), 24 deletions(-)
+
+diff --git a/src/test/regress/expected/timetz.out b/src/test/regress/expected/timetz.out
+index 038bb5fa09..1ab5ed5105 100644
+--- a/src/test/regress/expected/timetz.out
++++ b/src/test/regress/expected/timetz.out
+@@ -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
+diff --git a/src/test/regress/sql/timetz.sql b/src/test/regress/sql/timetz.sql
+index b699e4b03c..ce763d89e8 100644
+--- a/src/test/regress/sql/timetz.sql
++++ b/src/test/regress/sql/timetz.sql
+@@ -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
+-- 
+2.20.1