about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/sql
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/sql')
-rw-r--r--nixpkgs/pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/dolt/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/monetdb/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/mysql/8.0.x.nix17
-rw-r--r--nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/percona-server/8.0.x.nix96
-rw-r--r--nixpkgs/pkgs/servers/sql/percona-server/no-force-outline-atomics.patch24
-rw-r--r--nixpkgs/pkgs/servers/sql/pgbouncer/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/default.nix76
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/age.nix23
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_bigm.nix27
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix52
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hll.nix16
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_ivm.nix7
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix8
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix9
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_rational.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_relusage.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix3
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_similarity.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_topn.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgaudit.nix39
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgsql-http.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgtap.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix6
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/plr.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/rum.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/tds_fdw.nix14
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/temporal_tables.nix22
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix17
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/wal2json.nix2
41 files changed, 377 insertions, 161 deletions
diff --git a/nixpkgs/pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix b/nixpkgs/pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix
index 88a5accaffde..2e66ce3c646f 100644
--- a/nixpkgs/pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix
+++ b/nixpkgs/pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix
@@ -6,7 +6,7 @@
 
 let
   version = "23.1.7";
-  name = "cockroachdb";
+  pname = "cockroachdb";
 
   # For several reasons building cockroach from source has become
   # nearly impossible. See https://github.com/NixOS/nixpkgs/pull/152626
@@ -28,7 +28,7 @@ let
 
 in
 buildFHSEnv {
-  inherit name;
+  inherit pname version;
 
   runScript = "${src}/cockroach";
 
diff --git a/nixpkgs/pkgs/servers/sql/dolt/default.nix b/nixpkgs/pkgs/servers/sql/dolt/default.nix
index f910f1651d2f..cd1a03ff04c6 100644
--- a/nixpkgs/pkgs/servers/sql/dolt/default.nix
+++ b/nixpkgs/pkgs/servers/sql/dolt/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "dolt";
-  version = "1.14.0";
+  version = "1.18.1";
 
   src = fetchFromGitHub {
     owner = "dolthub";
     repo = "dolt";
     rev = "v${version}";
-    sha256 = "sha256-dLIT0EPtz1a1v48axT1xRcgKGJwXFjNnzu5eUzF4QXw=";
+    sha256 = "sha256-fjiKUKI+NH825Pb0jCE4AN1ZU075J8jk3avWe0oYAWI=";
   };
 
   modRoot = "./go";
   subPackages = [ "cmd/dolt" ];
-  vendorHash = "sha256-s9ACHwgdElFqmgnryVsKfVFqoy153prtyJx03qNI/KU=";
+  vendorHash = "sha256-wjZ28ttrKaumQXhU/BUYUxXfsdM1QqlKVt9NKglVyjU=";
   proxyVendor = true;
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix b/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix
index 91b1f0cfefdd..150e6edb66ac 100644
--- a/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix
+++ b/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mariadb-galera";
-  version = "26.4.15";
+  version = "26.4.16";
 
   src = fetchFromGitHub {
     owner = "codership";
     repo = "galera";
     rev = "release_${version}";
-    hash = "sha256-9CjxtNvsj2qM65u+R0pJZVwEaTdqtqURrfOGbT+/5ks=";
+    hash = "sha256-bRkXux4vpnUGRYO4dYD6IuWsbMglsMf17tBw6qpvbDg=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/servers/sql/monetdb/default.nix b/nixpkgs/pkgs/servers/sql/monetdb/default.nix
index 09c9bfaa3c44..668f5190be40 100644
--- a/nixpkgs/pkgs/servers/sql/monetdb/default.nix
+++ b/nixpkgs/pkgs/servers/sql/monetdb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "monetdb";
-  version = "11.47.5";
+  version = "11.47.11";
 
   src = fetchurl {
     url = "https://dev.monetdb.org/downloads/sources/archive/MonetDB-${finalAttrs.version}.tar.bz2";
-    hash = "sha256-GuGGs3hAheNYsaiUG7femLhi38c4gB528bruRotOdNE=";
+    hash = "sha256-ZYogc8KjFYbmS7OlL2ufGxdnMAYOYeUFk8AVe7rDer0=";
   };
 
   nativeBuildInputs = [ bison cmake python3 ];
diff --git a/nixpkgs/pkgs/servers/sql/mysql/8.0.x.nix b/nixpkgs/pkgs/servers/sql/mysql/8.0.x.nix
index 43086a891d79..4eec452d0f11 100644
--- a/nixpkgs/pkgs/servers/sql/mysql/8.0.x.nix
+++ b/nixpkgs/pkgs/servers/sql/mysql/8.0.x.nix
@@ -1,15 +1,14 @@
 { lib, stdenv, fetchurl, bison, cmake, pkg-config
 , boost, icu, libedit, libevent, lz4, ncurses, openssl, protobuf, re2, readline, zlib, zstd, libfido2
-, numactl, perl, cctools, CoreServices, developer_cmds, libtirpc, rpcsvc-proto, curl, DarwinTools, nixosTests
+, numactl, cctools, CoreServices, developer_cmds, libtirpc, rpcsvc-proto, curl, DarwinTools, nixosTests
 }:
 
-let
-self = stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "mysql";
   version = "8.0.34";
 
   src = fetchurl {
-    url = "https://dev.mysql.com/get/Downloads/MySQL-${self.mysqlVersion}/${pname}-${version}.tar.gz";
+    url = "https://dev.mysql.com/get/Downloads/MySQL-${lib.versions.majorMinor finalAttrs.version}/mysql-${finalAttrs.version}.tar.gz";
     hash = "sha256-5l0Do8QmGLX7+ZBCrtMyCUAumyeqYsfIdD/9R4jY2x0=";
   };
 
@@ -63,10 +62,10 @@ self = stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    client = self;
-    connector-c = self;
-    server = self;
-    mysqlVersion = "8.0";
+    client = finalAttrs.finalPackage;
+    connector-c = finalAttrs.finalPackage;
+    server = finalAttrs.finalPackage;
+    mysqlVersion = lib.versions.majorMinor finalAttrs.version;
     tests = nixosTests.mysql.mysql80;
   };
 
@@ -77,4 +76,4 @@ self = stdenv.mkDerivation rec {
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.unix;
   };
-}; in self
+})
diff --git a/nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix b/nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix
index e1082480efb6..69a7893ed7c2 100644
--- a/nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix
+++ b/nixpkgs/pkgs/servers/sql/mysql/jdbc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mysql-connector-java";
-  version = "8.0.33";
+  version = "8.1.0";
 
   src = fetchurl {
     url = "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-${version}.zip";
-    sha256 = "sha256-k3jft7sM2xrc88mdhltxtm+SZcRAn6B4EvglMyJyX4Y=";
+    sha256 = "sha256-xFYvNbb5cj6xrMHAnTzGLC8v5fxqRcmZhf4haK3wtUk=";
   };
 
   installPhase = ''
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "MySQL Connector/J";
-    homepage = "https://dev.mysql.com/doc/connector-j/8.0/en/";
+    homepage = "https://dev.mysql.com/doc/connector-j/8.1/en/";
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/servers/sql/percona-server/8.0.x.nix b/nixpkgs/pkgs/servers/sql/percona-server/8.0.x.nix
new file mode 100644
index 000000000000..02660eb187f0
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/percona-server/8.0.x.nix
@@ -0,0 +1,96 @@
+{ lib, stdenv, fetchurl, bison, cmake, pkg-config
+, boost, icu, libedit, libevent, lz4, ncurses, openssl, perl, protobuf, re2, readline, zlib, zstd, libfido2
+, numactl, cctools, CoreServices, developer_cmds, libtirpc, rpcsvc-proto, curl, DarwinTools, nixosTests
+# Percona-specific deps
+, coreutils, cyrus_sasl, gnumake, openldap
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "percona-server";
+  version = "8.0.34-26";
+
+  src = fetchurl {
+    url = "https://www.percona.com/downloads/Percona-Server-8.0/Percona-Server-${finalAttrs.version}/source/tarball/percona-server-${finalAttrs.version}.tar.gz";
+    sha256 = "sha256-xOaXfnh/lg/TutanwGt+EmxG4UA8oTPdil2nvU3NZXQ=";
+  };
+
+  nativeBuildInputs = [ bison cmake pkg-config ]
+    ++ lib.optionals (!stdenv.isDarwin) [ rpcsvc-proto ];
+
+  patches = [
+    ./no-force-outline-atomics.patch # Do not force compilers to turn on -moutline-atomics switch
+  ];
+
+  ## NOTE: MySQL upstream frequently twiddles the invocations of libtool. When updating, you might proactively grep for libtool references.
+  postPatch = ''
+    substituteInPlace cmake/libutils.cmake --replace /usr/bin/libtool libtool
+    substituteInPlace cmake/os/Darwin.cmake --replace /usr/bin/libtool libtool
+    # The rocksdb setup script is called with `env -i` and cannot find anything in PATH.
+    patchShebangs storage/rocksdb/get_rocksdb_files.sh
+    substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace mktemp ${coreutils}/bin/mktemp
+    substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace "rm $MKFILE" "${coreutils}/bin/rm $MKFILE"
+    substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace "make --" "${gnumake}/bin/make --"
+  '';
+
+  buildInputs = [
+    boost (curl.override { inherit openssl; }) icu libedit libevent lz4 ncurses openssl protobuf re2 readline zlib
+    zstd libfido2 openldap perl cyrus_sasl
+  ] ++ lib.optionals stdenv.isLinux [
+    numactl libtirpc
+  ] ++ lib.optionals stdenv.isDarwin [
+    cctools CoreServices developer_cmds DarwinTools
+  ];
+
+  outputs = [ "out" "static" ];
+
+  cmakeFlags = [
+    # Percona-specific flags.
+    "-DPORTABLE=1"
+    "-DWITH_LDAP=system"
+    "-DROCKSDB_DISABLE_AVX2=1"
+    "-DROCKSDB_DISABLE_MARCH_NATIVE=1"
+
+    # Flags taken from mysql package.
+    "-DFORCE_UNSUPPORTED_COMPILER=1" # To configure on Darwin.
+    "-DWITH_ROUTER=OFF" # It may be packaged separately.
+    "-DWITH_SYSTEM_LIBS=ON"
+    "-DWITH_UNIT_TESTS=OFF"
+    "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
+    "-DMYSQL_DATADIR=/var/lib/mysql"
+    "-DINSTALL_INFODIR=share/mysql/docs"
+    "-DINSTALL_MANDIR=share/man"
+    "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
+    "-DINSTALL_INCLUDEDIR=include/mysql"
+    "-DINSTALL_DOCREADMEDIR=share/mysql"
+    "-DINSTALL_SUPPORTFILESDIR=share/mysql"
+    "-DINSTALL_MYSQLSHAREDIR=share/mysql"
+    "-DINSTALL_MYSQLTESTDIR="
+    "-DINSTALL_DOCDIR=share/mysql/docs"
+    "-DINSTALL_SHAREDIR=share/mysql"
+  ];
+
+  postInstall = ''
+    moveToOutput "lib/*.a" $static
+    so=${stdenv.hostPlatform.extensions.sharedLibrary}
+    ln -s libmysqlclient$so $out/lib/libmysqlclient_r$so
+  '';
+
+  passthru = {
+    client = finalAttrs.finalPackage;
+    connector-c = finalAttrs.finalPackage;
+    server = finalAttrs.finalPackage;
+    mysqlVersion = lib.versions.majorMinor finalAttrs.version;
+    tests = nixosTests.mysql.percona-server_8_0;
+  };
+
+  meta = with lib; {
+    homepage = "https://www.percona.com/software/mysql-database/percona-server";
+    description = ''
+      A free, fully compatible, enhanced, open source drop-in replacement for
+      MySQL® that provides superior performance, scalability and instrumentation.
+    '';
+    license = licenses.gpl2;
+    maintainers = teams.flyingcircus.members;
+    platforms = platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/servers/sql/percona-server/no-force-outline-atomics.patch b/nixpkgs/pkgs/servers/sql/percona-server/no-force-outline-atomics.patch
new file mode 100644
index 000000000000..a716a4f7f481
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/percona-server/no-force-outline-atomics.patch
@@ -0,0 +1,24 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 727d66011f9..acae1aada57 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1338,19 +1338,6 @@ IF(UNIX AND MY_COMPILER_IS_GNU_OR_CLANG
+   ENDIF()
+ ENDIF()
+ 
+-# For aarch64 some sub-architectures support LSE atomics and some don't. Thus,
+-# compiling for the common denominator (-march=armv8-a) means LSE is not used.
+-# The -moutline-atomics switch enables run-time detection of LSE support.
+-# There are compilers (gcc 9.3.1 for example) which support this switch, but
+-# do not enable it by default, even though it seems to help. So, we force it.
+-IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
+-  MY_CHECK_CXX_COMPILER_FLAG( "-moutline-atomics" HAVE_OUTLINE_ATOMICS)
+-  IF(HAVE_OUTLINE_ATOMICS)
+-    STRING_APPEND(CMAKE_C_FLAGS   " -moutline-atomics")
+-    STRING_APPEND(CMAKE_CXX_FLAGS " -moutline-atomics")
+-  ENDIF()
+-ENDIF()
+-
+ IF(LINUX)
+   OPTION(LINK_RANDOMIZE "Randomize the order of all symbols in the binary" OFF)
+   SET(LINK_RANDOMIZE_SEED "mysql"
diff --git a/nixpkgs/pkgs/servers/sql/pgbouncer/default.nix b/nixpkgs/pkgs/servers/sql/pgbouncer/default.nix
index 7a528ba3c6d5..7f6cfa0f898a 100644
--- a/nixpkgs/pkgs/servers/sql/pgbouncer/default.nix
+++ b/nixpkgs/pkgs/servers/sql/pgbouncer/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgbouncer";
-  version = "1.20.0";
+  version = "1.21.0";
 
   src = fetchurl {
     url = "https://www.pgbouncer.org/downloads/files/${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-5w1afLi3Hdfbq/01cdcaS2uZ8uhdjXGvHnNPbYZjXw4=";
+    hash = "sha256-fh3WIMjYWoSQr/JQYdUFXXrvnPPov+LZ53GbjuWRFOI=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/default.nix b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
index a94712556a71..6bf881d52815 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/default.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
@@ -17,7 +17,7 @@ let
       , version, hash, psqlSchema
 
       # for tests
-      , nixosTests, thisAttr
+      , testers, nixosTests, thisAttr
 
       # JIT
       , jitSupport ? false
@@ -34,10 +34,11 @@ let
     lz4Enabled = atLeast "14";
     zstdEnabled = atLeast "15";
 
-    stdenv' = if jitSupport then llvmPackages.stdenv else stdenv;
-  in stdenv'.mkDerivation rec {
     pname = "postgresql";
-    inherit version;
+
+    stdenv' = if jitSupport then llvmPackages.stdenv else stdenv;
+  in stdenv'.mkDerivation (finalAttrs: {
+    inherit pname version;
 
     src = fetchurl {
       url = "mirror://postgresql/source/v${version}/${pname}-${version}.tar.bz2";
@@ -110,23 +111,50 @@ let
         locale = "${if stdenv.isDarwin then darwin.adv_cmds else lib.getBin stdenv.cc.libc}/bin/locale";
       })
 
-    ] ++ lib.optionals (stdenv'.hostPlatform.isMusl && atLeast "12") [
-      (fetchpatch {
-        url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/icu-collations-hack.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";
-        hash = "sha256-Yb6lMBDqeVP/BLMyIr5rmR6OkaVzo68cV/+cL2LOe/M=";
-      })
-    ] ++ lib.optionals (stdenv'.hostPlatform.isMusl && atLeast "13") [
-      (if olderThan "14" then
-        fetchpatch {
-           url = "https://git.alpinelinux.org/aports/plain/main/postgresql13/disable-test-collate.icu.utf8.patch?id=69faa146ec9fff3b981511068f17f9e629d4688b";
-           hash = "sha256-IOOx7/laDYhTz1Q1r6H1FSZBsHCgD4lHvia+/os7CCo=";
-         }
-       else
-         fetchpatch {
-           url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/disable-test-collate.icu.utf8.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";
-           hash = "sha256-pnl+wM3/IUyq5iJzk+h278MDA9R0GQXQX8d4wJcB2z4=";
-         })
-    ] ++ lib.optionals stdenv'.isLinux  [
+    ] ++ lib.optionals stdenv'.hostPlatform.isMusl (
+      let
+        self = {
+          "12" = {
+            icu-collations-hack = fetchurl {
+              url = "https://git.alpinelinux.org/aports/plain/testing/postgresql12/icu-collations-hack.patch?id=d5227c91adda59d4e7f55f13468f0314e8869174";
+              hash = "sha256-wuwjvGHArkRNwFo40g3p43W32OrJohretlt6iSRlJKg=";
+            };
+          };
+          "13" = {
+            inherit (self."14") icu-collations-hack;
+            disable-test-collate-icu-utf8 = fetchurl {
+              url = "https://git.alpinelinux.org/aports/plain/main/postgresql13/disable-test-collate.icu.utf8.patch?id=69faa146ec9fff3b981511068f17f9e629d4688b";
+              hash = "sha256-jS/qxezaiaKhkWeMCXwpz1SDJwUWn9tzN0uKaZ3Ph2Y=";
+            };
+          };
+          "14" = {
+            icu-collations-hack = fetchurl {
+              url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/icu-collations-hack.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";
+              hash = "sha256-wuwjvGHArkRNwFo40g3p43W32OrJohretlt6iSRlJKg=";
+            };
+            disable-test-collate-icu-utf8 = fetchurl {
+              url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/disable-test-collate.icu.utf8.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";
+              hash = "sha256-jXe23AxnFjEl+TZQm4R7rStk2Leo08ctxMNmu1xr5zM=";
+            };
+          };
+          "15" = {
+            icu-collations-hack = fetchurl {
+              url = "https://git.alpinelinux.org/aports/plain/main/postgresql15/icu-collations-hack.patch?id=f424e934e6d076c4ae065ce45e734aa283eecb9c";
+              hash = "sha256-HgtmhF4OJYU9macGJbTB9PjQi/yW7c3Akm3U0niWs8I=";
+            };
+          };
+          "16" = {
+            icu-collations-hack = fetchurl {
+              url = "https://git.alpinelinux.org/aports/plain/main/postgresql16/icu-collations-hack.patch?id=08a24be262339fd093e641860680944c3590238e";
+              hash = "sha256-+urQdVIlADLdDPeT68XYv5rljhbK8M/7mPZn/cF+FT0=";
+            };
+          };
+        };
+
+        patchesForVersion = self.${lib.versions.major version} or (throw "no musl patches for postgresql ${version}");
+      in
+        lib.attrValues patchesForVersion
+    ) ++ lib.optionals stdenv'.isLinux  [
       (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch)
     ];
 
@@ -230,6 +258,8 @@ let
       withJIT = if jitSupport then this else jitToggle;
       withoutJIT = if jitSupport then jitToggle else this;
 
+      dlSuffix = if olderThan "16" then ".so" else stdenv.hostPlatform.extensions.sharedLibrary;
+
       pkgs = let
         scope = {
           postgresql = this;
@@ -254,6 +284,7 @@ let
 
       tests = {
         postgresql = nixosTests.postgresql-wal-receiver.${thisAttr};
+        pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
       } // lib.optionalAttrs jitSupport {
         postgresql-jit = nixosTests.postgresql-jit.${thisAttr};
       };
@@ -266,6 +297,7 @@ let
       description = "A powerful, open source object-relational database system";
       license     = licenses.postgresql;
       maintainers = with maintainers; [ thoughtpolice danbst globin marsam ivan ma27 ];
+      pkgConfigModules = [ "libecpg" "libecpg_compat" "libpgtypes" "libpq" ];
       platforms   = platforms.unix;
 
       # JIT support doesn't work with cross-compilation. It is attempted to build LLVM-bytecode
@@ -280,7 +312,7 @@ let
       # a query, postgres would coredump with `Illegal instruction`.
       broken = jitSupport && (stdenv.hostPlatform != stdenv.buildPlatform);
     };
-  };
+  });
 
   postgresqlWithPackages = { postgresql, makeWrapper, buildEnv }: pkgs: f: buildEnv {
     name = "postgresql-and-plugins-${postgresql.version}";
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/age.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/age.nix
index 5e88b2fdebca..c0de0c30d5a7 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/age.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/age.nix
@@ -1,14 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, bison, flex, postgresql }:
+{ lib, stdenv, bison, fetchFromGitHub, flex, perl, postgresql }:
 
+let
+  hashes = {
+    "15" = "sha256-1vmwoflbU3++PFDcsLt9gyLkuzMRGNCD7vWl7/6Q+SE=";
+    "14" = "sha256-w93Q499sZRk4q85A9yqKQjGUd9Pl8UL8K1D3W7mHRTU=";
+    "13" = "sha256-Sot7FR0oW7kWA680pNCMCmlflu4RfJTSWZn9mrXrpzw=";
+    "12" = "sha256-XezcXoHHLCD1/2OHmKhxome2pdjOsYAfZlpvOoU3aS4=";
+    "11" = "sha256-ZkNAIMO69BxF3knQ+jcUBVuDgcoZXZccF5O+acpZ81M=";
+  };
+in
 stdenv.mkDerivation rec {
   pname = "age";
-  version = "1.1.0-rc0";
+  version = "1.4.0-rc0";
 
   src = fetchFromGitHub {
     owner = "apache";
     repo = "age";
-    rev = "v${version}";
-    sha256 = "sha256-7qQGiiFkGbS/j7ouP2Joj5EGT+ferIgYYMoTe9jmTqQ=";
+    rev = "PG${lib.versions.major postgresql.version}/v${builtins.replaceStrings ["."] ["_"] version}";
+    hash = hashes.${lib.versions.major postgresql.version} or (throw "Source for Age is not available for ${postgresql.version}");
   };
 
   buildInputs = [ postgresql ];
@@ -16,6 +25,7 @@ stdenv.mkDerivation rec {
   makeFlags = [
     "BISON=${bison}/bin/bison"
     "FLEX=${flex}/bin/flex"
+    "PERL=${perl}/bin/perl"
   ];
 
   installPhase = ''
@@ -54,11 +64,10 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    # Only supports PostgreSQL 11 https://github.com/apache/age/issues/225
-    broken = versions.major postgresql.version != "11";
+    broken = !builtins.elem (versions.major postgresql.version) (builtins.attrNames hashes);
     description = "A graph database extension for PostgreSQL";
     homepage = "https://age.apache.org/";
-    changelog = "https://github.com/apache/age/raw/v${version}/RELEASE";
+    changelog = "https://github.com/apache/age/raw/v${src.rev}/RELEASE";
     maintainers = with maintainers; [ ];
     platforms = postgresql.meta.platforms;
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix
index cf0ba46d8762..092212aa3de0 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/{lib,share/postgresql/extension}
 
-    cp *.so      $out/lib
+    cp *${postgresql.dlSuffix} $out/lib
     cp *.sql     $out/share/postgresql/extension
     cp *.control $out/share/postgresql/extension
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix
index 9a390e258daf..102f80cf8d71 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ postgresql ];
 
   installPhase = ''
-    install -D -t $out/lib *.so
+    install -D -t $out/lib *${postgresql.dlSuffix}
     install -D -t $out/share/postgresql/extension *.sql
     install -D -t $out/share/postgresql/extension *.control
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_bigm.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_bigm.nix
index cb9aa5e57d3c..dcd23a0949bb 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_bigm.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_bigm.nix
@@ -1,25 +1,32 @@
-{ lib, stdenv, fetchurl, postgresql }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, postgresql }:
 
 stdenv.mkDerivation rec {
   pname = "pg_bigm";
   version = "1.2-20200228";
 
-  src = fetchurl {
-    url = "mirror://osdn/pgbigm/72448/${pname}-${version}.tar.gz";
-    sha256 = "1hxn90prldwriqmqlf33ypgbxw5v54gkzx1305yzghryzfg7rhbl";
+  src = fetchFromGitHub {
+    owner = "pgbigm";
+    repo = "pg_bigm";
+    rev = "v${version}";
+    hash = "sha256-3lspEglVWzEUTiRIWqW0DpQe8gDn9R/RxsWuI9znYc8=";
   };
 
+  patches = [
+    # Fix compatiblity with PostgreSQL 16. Remove with the next release.
+    (fetchpatch {
+      url = "https://github.com/pgbigm/pg_bigm/commit/2a9d783c52a1d7a2eb414da6f091f6035da76edf.patch";
+      hash = "sha256-LuMpSUPnT8cPChQfA9sJEKP4aGpsbN5crfTKLnDzMN8=";
+    })
+  ];
+
   buildInputs = [ postgresql ];
 
   makeFlags = [ "USE_PGXS=1" ];
 
   installPhase = ''
-    mkdir -p $out/bin    # For buildEnv to setup proper symlinks. See #22653
-    mkdir -p $out/{lib,share/postgresql/extension}
-
-    cp *.so      $out/lib
-    cp *.sql     $out/share/postgresql/extension
-    cp *.control $out/share/postgresql/extension
+    install -D -t $out/lib pg_bigm${postgresql.dlSuffix}
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix
index 450f5b06e284..1eefb5099aa9 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_cron";
-  version = "1.6.0";
+  version = "1.6.1";
 
   buildInputs = [ postgresql ];
 
@@ -10,13 +10,13 @@ stdenv.mkDerivation rec {
     owner  = "citusdata";
     repo   = pname;
     rev    = "v${version}";
-    hash   = "sha256-s1wjBx84Z12fRlaT1y3CPEFHK8tzMKp7wF+t7suRNL4=";
+    hash   = "sha256-GvxlaSfsqOiF1mrGo9jVv/K3xVInutkRN3AJHXKUBHQ=";
   };
 
   installPhase = ''
     mkdir -p $out/{lib,share/postgresql/extension}
 
-    cp *.so      $out/lib
+    cp *${postgresql.dlSuffix} $out/lib
     cp *.sql     $out/share/postgresql/extension
     cp *.control $out/share/postgresql/extension
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix
index 25d27fcdfcbe..d0cf1193fb56 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix
@@ -1,24 +1,55 @@
 { lib, stdenv, fetchFromGitHub, postgresql }:
 
-stdenv.mkDerivation rec {
+let
+  source = {
+    "16" = {
+      version = "1.6.0";
+      hash = "sha256-lg7N0QblluTgtNo1tGZjirNJSyQXtcAEs9Jqd3zx0Sg=";
+    };
+    "15" = {
+      version = "1.5.1";
+      hash = "sha256-o8Hepf/Mc1ClRTLZ6PBdqU4jSdlz+ijVgl2vJKmIc6M=";
+    };
+    "14" = {
+      version = "1.4.2";
+      hash = "sha256-nGyKcNY57RdQdZKSaBPk2/YbT0Annz1ZevH0lKswdhA=";
+    };
+    "13" = {
+      version = "1.3.9";
+      hash = "sha256-KGcHDwk8CgNHPZARfLBfS8r7TRCP9LPjT+m4fNSnnW0=";
+    };
+    "12" = {
+      version = "1.3.9";
+      hash = "sha256-64/dlm6e4flCxMQ8efsxfKSlja+Tko0zsghTgLatN+Y=";
+    };
+    "11" = {
+      version = "1.3.9";
+      hash = "sha256-8t/HhB/2Kjx4xMItmmKv3g9gba5VCBHdplYtYD/3UhA=";
+    };
+  }.${lib.versions.major postgresql.version} or (throw "Source for pg_hint_plan is not available for ${postgresql.version}");
+in
+stdenv.mkDerivation {
   pname = "pg_hint_plan";
-  version = "14-1.4.0";
+  inherit (source) version;
 
   src = fetchFromGitHub {
     owner = "ossc-db";
-    repo = pname;
-    rev = "REL${builtins.replaceStrings ["-" "."] ["_" "_"] version}";
-    sha256 = "sha256-2hYDn/69264x2lMRVIp/I5chjocL6UqIw5ry1qdRcDM=";
+    repo = "pg_hint_plan";
+    rev = "REL${lib.versions.major postgresql.version}_${builtins.replaceStrings ["."] ["_"] source.version}";
+    inherit (source) hash;
   };
 
+  postPatch = lib.optionalString (lib.versionOlder postgresql.version "14") ''
+    # https://github.com/ossc-db/pg_hint_plan/commit/e9e564ad59b8bd4a03e0f13b95b5122712e573e6
+    substituteInPlace Makefile --replace "LDFLAGS+=-Wl,--build-id" ""
+  '';
+
   buildInputs = [ postgresql ];
 
   installPhase = ''
-    mkdir -p $out/{lib,share/postgresql/extension}
-
-    cp *.so      $out/lib
-    cp *.sql     $out/share/postgresql/extension
-    cp *.control $out/share/postgresql/extension
+    install -D -t $out/lib pg_hint_plan${postgresql.dlSuffix}
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
   '';
 
   meta = with lib; {
@@ -27,6 +58,5 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ _1000101 ];
     platforms = postgresql.meta.platforms;
     license = licenses.bsd3;
-    broken = versionOlder postgresql.version "14";
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hll.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hll.nix
index 71533645ef0c..a60601aef569 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hll.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hll.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_hll";
-  version = "2.17";
+  version = "2.18";
 
   buildInputs = [ postgresql ];
 
@@ -10,21 +10,19 @@ stdenv.mkDerivation rec {
     owner  = "citusdata";
     repo   = "postgresql-hll";
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-KYpyidy7t7v9puNjjmif16uz383zlo521luZpH3w/1I=";
+    hash   = "sha256-Latdxph1Ura8yKEokEjalJ+/GY+pAKOT3GXjuLprj6c=";
   };
 
   installPhase = ''
-    mkdir -p $out/{lib,share/postgresql/extension}
-
-    cp *.so      $out/lib
-    cp *.sql     $out/share/postgresql/extension
-    cp *.control $out/share/postgresql/extension
-  '';
+    install -D -t $out/lib hll${postgresql.dlSuffix}
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+ '';
 
   meta = with lib; {
     description = "HyperLogLog for PostgreSQL";
     homepage    = "https://github.com/citusdata/postgresql-hll";
-    changelog   = "https://github.com/citusdata/postgresql-hll/raw/v${version}/CHANGELOG.md";
+    changelog   = "https://github.com/citusdata/postgresql-hll/blob/v${version}/CHANGELOG.md";
     maintainers = with maintainers; [ thoughtpolice ];
     platforms   = postgresql.meta.platforms;
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_ivm.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_ivm.nix
index 61f9a89704a8..2b2cf185955b 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_ivm.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_ivm.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_ivm";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchFromGitHub {
     owner = "sraoss";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-MAZsEPQu1AqI53h01M5bErc/MUJRauNPO9Hizig+2dc=";
+    hash = "sha256-uSYhNUfd4mw7mGGAcP43X/0v/bNp6SdZjPzktGONgaQ=";
   };
 
   buildInputs = [ postgresql ];
 
   installPhase = ''
-    install -D -t $out/lib *.so
+    install -D -t $out/lib pg_ivm${postgresql.dlSuffix}
     install -D -t $out/share/postgresql/extension *.sql
     install -D -t $out/share/postgresql/extension *.control
   '';
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Materialized views with IVM (Incremental View Maintenance) for PostgreSQL";
     homepage = "https://github.com/sraoss/pg_ivm";
+    changelog = "https://github.com/sraoss/pg_ivm/releases/tag/v${version}";
     maintainers = with maintainers; [ ivan ];
     platforms = postgresql.meta.platforms;
     license = licenses.postgresql;
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix
index fc52857de17d..3cfcafad74e7 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_net";
-  version = "0.7.2";
+  version = "0.7.3";
 
   buildInputs = [ curl postgresql ];
 
@@ -10,13 +10,13 @@ stdenv.mkDerivation rec {
     owner  = "supabase";
     repo   = pname;
     rev    = "refs/tags/v${version}";
-    hash   = "sha256-9Ki3fyinHTYrfckxAY0fCTlzJd9l+n7QRUV7mIWrqmc=";
+    hash   = "sha256-j5qLgn/i4ljysuwgT46579N+9VpGr483vQEX/3lUYFA=";
   };
 
   installPhase = ''
     mkdir -p $out/{lib,share/postgresql/extension}
 
-    cp *.so      $out/lib
+    cp *${postgresql.dlSuffix} $out/lib
     cp sql/*.sql $out/share/postgresql/extension
     cp *.control $out/share/postgresql/extension
   '';
@@ -24,8 +24,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Async networking for Postgres";
     homepage    = "https://github.com/supabase/pg_net";
+    changelog   = "https://github.com/supabase/pg_net/releases/tag/v${version}";
     maintainers = with maintainers; [ thoughtpolice ];
     platforms   = postgresql.meta.platforms;
     license     = licenses.postgresql;
+    broken      = versionOlder postgresql.version "12";
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix
index b288a27baf89..e008993fcfa5 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_partman";
-  version = "4.7.4";
+  version = "5.0.0";
 
   buildInputs = [ postgresql ];
 
@@ -10,13 +10,13 @@ stdenv.mkDerivation rec {
     owner  = "pgpartman";
     repo   = pname;
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-DdE/hqCrju678Xk3xXGVFhKQM3x9skQQKolNJ2/3gbs=";
+    sha256 = "sha256-T7+cPi8LIftWVwI9mi0LAwWCTxp/r6iyKT1wKO/Ztbk=";
   };
 
   installPhase = ''
     mkdir -p $out/{lib,share/postgresql/extension}
 
-    cp src/*.so      $out/lib
+    cp src/*${postgresql.dlSuffix} $out/lib
     cp updates/*     $out/share/postgresql/extension
     cp -r sql/*      $out/share/postgresql/extension
     cp *.control     $out/share/postgresql/extension
@@ -25,9 +25,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Partition management extension for PostgreSQL";
     homepage    = "https://github.com/pgpartman/pg_partman";
-    changelog   = "https://github.com/pgpartman/pg_partman/raw/v${version}/CHANGELOG.txt";
+    changelog   = "https://github.com/pgpartman/pg_partman/blob/v${version}/CHANGELOG.md";
     maintainers = with maintainers; [ ggpeti ];
     platforms   = postgresql.meta.platforms;
     license     = licenses.postgresql;
+    broken      = versionOlder postgresql.version "14";
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_rational.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_rational.nix
index 5cfd6240990f..df80ea49a541 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_rational.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_rational.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/{lib,share/postgresql/extension}
 
-    cp *.so      $out/lib
+    cp *${postgresql.dlSuffix} $out/lib
     cp *.sql     $out/share/postgresql/extension
     cp *.control $out/share/postgresql/extension
 
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_relusage.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_relusage.nix
index 043adf725033..1fe9fd3cac87 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_relusage.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_relusage.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   installPhase = ''
-    install -D -t $out/lib *.so
+    install -D -t $out/lib *${postgresql.dlSuffix}
     install -D -t $out/share/postgresql/extension *.sql
     install -D -t $out/share/postgresql/extension *.control
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix
index dd1c745bc8cf..fd07b4e10544 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     install -D bin/pg_repack -t $out/bin/
-    install -D lib/pg_repack.so -t $out/lib/
+    install -D lib/pg_repack${postgresql.dlSuffix} -t $out/lib/
     install -D lib/{pg_repack--${version}.sql,pg_repack.control} -t $out/share/postgresql/extension
   '';
 
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix
index 5e9976c014d3..06b8ce690982 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix
@@ -14,8 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   installPhase = ''
-    mkdir -p $out/bin # for buildEnv, see https://github.com/NixOS/nixpkgs/issues/22653
-    install -D safeupdate.so -t $out/lib
+    install -D safeupdate${postgresql.dlSuffix} -t $out/lib
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_similarity.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
index a4a8e6b0fe37..227ea8357861 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   buildInputs = [ postgresql gcc ];
   buildPhase = "USE_PGXS=1 make";
   installPhase = ''
-    install -D pg_similarity.so -t $out/lib/
+    install -D pg_similarity${postgresql.dlSuffix} -t $out/lib/
     install -D ./{pg_similarity--unpackaged--1.0.sql,pg_similarity--1.0.sql,pg_similarity.control} -t $out/share/postgresql/extension
   '';
 
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_topn.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_topn.nix
index ec236b4d9168..2a11417c9083 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_topn.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_topn.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_topn";
-  version = "2.5.0";
+  version = "2.6.0";
 
   buildInputs = [ postgresql ];
 
@@ -10,13 +10,13 @@ stdenv.mkDerivation rec {
     owner  = "citusdata";
     repo   = "postgresql-topn";
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-BqOPnIReV6HnMQkqAGxB3PI10gh9ZEn4IN3A+g1h7/M=";
+    sha256 = "sha256-kq3P+a9NWLKN/CsISGHfInbeL4ex4KIeDhTKyyN7FVE=";
   };
 
   installPhase = ''
     mkdir -p $out/{lib,share/postgresql/extension}
 
-    cp *.so      $out/lib
+    cp *${postgresql.dlSuffix} $out/lib
     cp *.sql     $out/share/postgresql/extension
     cp *.control $out/share/postgresql/extension
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgaudit.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgaudit.nix
index c5e536363fda..188451f1b884 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgaudit.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgaudit.nix
@@ -1,14 +1,42 @@
 { lib, stdenv, fetchFromGitHub, libkrb5, openssl, postgresql }:
 
-stdenv.mkDerivation rec {
+let
+  source = {
+    "16" = {
+      version = "16.0";
+      hash = "sha256-8+tGOl1U5y9Zgu+9O5UDDE4bec4B0JC/BQ6GLhHzQzc=";
+    };
+    "15" = {
+      version = "1.7.0";
+      hash = "sha256-8pShPr4HJaJQPjW1iPJIpj3CutTx8Tgr+rOqoXtgCcw=";
+    };
+    "14" = {
+      version = "1.6.2";
+      hash = "sha256-Bl7Jk2B0deZUDiI391vk4nilwuVGHd1wuaQRSCoA3Mk=";
+    };
+    "13" = {
+      version = "1.5.2";
+      hash = "sha256-fyf2Ym0fAAXjc28iFCGDEftPAyDLXmEgi/0DaTJJiIg=";
+    };
+    "12" = {
+      version = "1.4.3";
+      hash = "sha256-c8/xUFIHalu2bMCs57DeylK0oW0VnQwmUCpdp+tYqk4=";
+    };
+    "11" = {
+      version = "1.3.4";
+      hash = "sha256-UEnwD36ejeYWyKRHZ4mPt6/Ru76Gy8s/rgIvmgermiM=";
+    };
+  }.${lib.versions.major postgresql.version} or (throw "Source for pgaudit is not available for ${postgresql.version}");
+in
+stdenv.mkDerivation {
   pname = "pgaudit";
-  version = "1.7.0";
+  inherit (source) version;
 
   src = fetchFromGitHub {
     owner = "pgaudit";
     repo = "pgaudit";
-    rev = version;
-    hash = "sha256-8pShPr4HJaJQPjW1iPJIpj3CutTx8Tgr+rOqoXtgCcw=";
+    rev = source.version;
+    hash = source.hash;
   };
 
   buildInputs = [ libkrb5 openssl postgresql ];
@@ -16,7 +44,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "USE_PGXS=1" ];
 
   installPhase = ''
-    install -D -t $out/lib *.so
+    install -D -t $out/lib pgaudit${postgresql.dlSuffix}
     install -D -t $out/share/postgresql/extension *.sql
     install -D -t $out/share/postgresql/extension *.control
   '';
@@ -24,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Open Source PostgreSQL Audit Logging";
     homepage = "https://github.com/pgaudit/pgaudit";
+    changelog = "https://github.com/pgaudit/pgaudit/releases/tag/${source.version}";
     maintainers = with maintainers; [ idontgetoutmuch ];
     platforms = postgresql.meta.platforms;
     license = licenses.postgresql;
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix
index b847de1f3ae6..535a16abad18 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix
@@ -18,11 +18,11 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
-    install -D pgroonga.so -t $out/lib/
+    install -D pgroonga${postgresql.dlSuffix} -t $out/lib/
     install -D pgroonga.control -t $out/share/postgresql/extension
     install -D data/pgroonga-*.sql -t $out/share/postgresql/extension
 
-    install -D pgroonga_database.so -t $out/lib/
+    install -D pgroonga_database${postgresql.dlSuffix} -t $out/lib/
     install -D pgroonga_database.control -t $out/share/postgresql/extension
     install -D data/pgroonga_database-*.sql -t $out/share/postgresql/extension
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix
index 03b229e81b27..51cef6b3f490 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pgrouting";
-  version = "3.5.0";
+  version = "3.5.1";
 
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [ postgresql boost ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner  = "pgRouting";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-6ckNKfun2A4WARhN6/hxPWAi8o+qGlrdYSDVQC9sKR0=";
+    sha256 = "sha256-X7ZXGPUkhPDBB2QpUGfqDTgOairkYZF78Ol0XEAmxD8=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgsql-http.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgsql-http.nix
index a0ef596aaded..f2fc5a329f87 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgsql-http.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgsql-http.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ curl postgresql ];
 
   installPhase = ''
-    install -D -t $out/lib *.so
+    install -D -t $out/lib *${postgresql.dlSuffix}
     install -D -t $out/share/postgresql/extension *.sql
     install -D -t $out/share/postgresql/extension *.control
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgtap.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgtap.nix
index 24c0e3e59b8a..3e8ba36994ce 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgtap.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgtap.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgtap";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "theory";
     repo = "pgtap";
     rev = "v${version}";
-    sha256 = "sha256-RaafUnrMRbvyf2m2Z+tK6XxVXDGnaOkYkSMxIJLnf6A=";
+    sha256 = "sha256-HOgCb1CCfsfbMbMMWuzFJ4B8CfVm9b0sI2zBY3/kqyI=";
   };
 
   nativeBuildInputs = [ postgresql perl perlPackages.TAPParserSourceHandlerpgTAP which ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix
index d709f822fb0a..26b330b3b5b2 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "pgvector";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "pgvector";
     repo = "pgvector";
     rev = "v${version}";
-    hash = "sha256-7GRqGgU15VQAY0wvZqfPU9og7s+/0NlOpTMclXPVwlQ=";
+    hash = "sha256-ZNzq+dATZn9LUgeOczsaadr5hwdbt9y/+sAOPIdr77U=";
   };
 
   buildInputs = [ postgresql ];
 
   installPhase = ''
-    install -D -t $out/lib vector.so
+    install -D -t $out/lib vector${postgresql.dlSuffix}
     install -D -t $out/share/postgresql/extension sql/vector-*.sql
     install -D -t $out/share/postgresql/extension vector.control
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
index 83e456069267..a37556436e74 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "plpgsql_check";
-  version = "2.5.0";
+  version = "2.5.3";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6S1YG/4KGlgtTBrxh3p6eMd/aCovK/QME4f2z0YTUxc=";
+    hash = "sha256-IR1x1duROt3IHYQx8CYXqUxTmFgB1sbia93k3oBfEkw=";
   };
 
   buildInputs = [ postgresql ];
 
   installPhase = ''
-    install -D -t $out/lib *.so
+    install -D -t $out/lib *${postgresql.dlSuffix}
     install -D -t $out/share/postgresql/extension *.sql
     install -D -t $out/share/postgresql/extension *.control
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/plr.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/plr.nix
index 7dcb3c0c4660..1800b424716f 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/plr.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/plr.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     export USE_PGXS=1
   '';
   installPhase = ''
-    install -D plr.so -t $out/lib/
+    install -D plr${postgresql.dlSuffix} -t $out/lib/
     install -D {plr--*.sql,plr.control} -t $out/share/postgresql/extension
   '';
 
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
index 61e7ee9fc965..93f607671579 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     mkdir -p $out/{bin,lib,share/postgresql/extension}
 
     cp repmgr{,d} $out/bin
-    cp *.so       $out/lib
+    cp *${postgresql.dlSuffix} $out/lib
     cp *.sql      $out/share/postgresql/extension
     cp *.control  $out/share/postgresql/extension
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/rum.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/rum.nix
index 8edd9a2fb47b..0fb6635529ae 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/rum.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/rum.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "USE_PGXS=1" ];
 
   installPhase = ''
-    install -D -t $out/lib *.so
+    install -D -t $out/lib *${postgresql.dlSuffix}
     install -D -t $out/share/postgresql/extension *.control
     install -D -t $out/share/postgresql/extension *.sql
   '';
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/tds_fdw.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/tds_fdw.nix
index 49c3ee044b2b..7eec155435a2 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/tds_fdw.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/tds_fdw.nix
@@ -1,26 +1,28 @@
-{ lib, stdenv, fetchFromGitHub, postgresql, freetds }:
+{ lib, stdenv, fetchFromGitHub, postgresql, freetds, unstableGitUpdater }:
 
 stdenv.mkDerivation rec {
   pname = "tds_fdw";
   # Move to stable version when it's released.
-  version = "unstable-2021-12-14";
+  version = "unstable-2023-09-28";
 
   buildInputs = [ postgresql freetds ];
 
   src = fetchFromGitHub {
     owner  = "tds-fdw";
-    repo   =  pname;
-    rev    = "1611a2805f85d84f463ae50c4e0765cb9bed72dc";
-    sha256 = "sha256-SYHo/o9fJjB1yzN4vLJB0RrF3HEJ4MzmEO44/Jih/20=";
+    repo   = "tds_fdw";
+    rev    = "22ee5d3f46909b35efb2600b44ec19a35179630e";
+    hash   = "sha256-MmaLN1OWUJMWJhPUXBevSyBmMgZqeEFPGuxuLPSp4Pk=";
   };
 
   installPhase = ''
     version="$(sed -En "s,^default_version *= *'([^']*)'.*,\1,p" tds_fdw.control)"
-    install -D tds_fdw.so      -t $out/lib
+    install -D tds_fdw${postgresql.dlSuffix} -t $out/lib
     install -D sql/tds_fdw.sql    "$out/share/postgresql/extension/tds_fdw--$version.sql"
     install -D tds_fdw.control -t $out/share/postgresql/extension
   '';
 
+  passthru.updateScript = unstableGitUpdater { };
+
   meta = with lib; {
     description = "A PostgreSQL foreign data wrapper to connect to TDS databases (Sybase and Microsoft SQL Server)";
     homepage    = "https://github.com/tds-fdw/tds_fdw";
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/temporal_tables.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/temporal_tables.nix
index ec654c4a09fa..cb401829b242 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/temporal_tables.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/temporal_tables.nix
@@ -2,28 +2,26 @@
 
 stdenv.mkDerivation rec {
   pname = "temporal_tables";
-  version = "unstable-2021-02-20";
+  version = "1.2.2";
 
   buildInputs = [ postgresql ];
 
   src = fetchFromGitHub {
     owner  = "arkhipov";
-    repo   = pname;
-    rev    = "3ce22da51f2549e8f8b8fbf2850c63eb3a2f1fbb";
-    sha256 = "sha256-kmcl6vVHRZj2G5GijEyaZgDpZBDcdIUKzXv0rYYqUu4=";
+    repo   = "temporal_tables";
+    rev    = "v${version}";
+    sha256 = "sha256-7+DCSPAPhsokWDq/5IXNhd7jY6FfzxxUjlsg/VJeD3k=";
   };
 
   installPhase = ''
-    mkdir -p $out/{lib,share/postgresql/extension}
-
-    cp *.so      $out/lib
-    cp *.sql     $out/share/postgresql/extension
-    cp *.control $out/share/postgresql/extension
-  '';
+    install -D -t $out/lib temporal_tables${postgresql.dlSuffix}
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+ '';
 
   meta = with lib; {
-    description = "Temporal Tables PostgreSQL Extension ";
-    homepage    = "https://github.com/mlt/temporal_tables";
+    description = "Temporal Tables PostgreSQL Extension";
+    homepage    = "https://github.com/arkhipov/temporal_tables";
     maintainers = with maintainers; [ ggpeti ];
     platforms   = postgresql.meta.platforms;
     license     = licenses.bsd2;
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index a7c136ba691f..efe3c431dca0 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
@@ -1,19 +1,8 @@
 { lib, stdenv, fetchFromGitHub, cmake, postgresql, openssl, libkrb5, enableUnfree ? true }:
 
-# # To enable on NixOS:
-# config.services.postgresql = let
-#   # The postgresql pkgs has to be taken from the
-#   # postgresql package used, so the extensions
-#   # are built for the correct postgresql version.
-#   postgresqlPackages = config.services.postgresql.package.pkgs;
-# in {
-#   extraPlugins = with postgresqlPackages; [ timescaledb ];
-#   settings.shared_preload_libraries = "timescaledb";
-# }
-
 stdenv.mkDerivation rec {
   pname = "timescaledb${lib.optionalString (!enableUnfree) "-apache"}";
-  version = "2.11.2";
+  version = "2.12.1";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl libkrb5 ];
@@ -22,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "timescale";
     repo = "timescaledb";
     rev = version;
-    sha256 = "sha256-c2fztGtl2cLThT0JhHCM0UaYkiWTp5T6TUZ3Au7CG7c=";
+    hash = "sha256-vl9DTbmRMs+2kpcCm7hY9Xd356bo2TlMzH4zWc6r8mQ=";
   };
 
   cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" "-DTAP_CHECKS=OFF" ]
@@ -46,7 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Scales PostgreSQL for time-series data via automatic partitioning across time and space";
     homepage = "https://www.timescale.com/";
-    changelog = "https://github.com/timescale/timescaledb/raw/${version}/CHANGELOG.md";
+    changelog = "https://github.com/timescale/timescaledb/blob/${version}/CHANGELOG.md";
     maintainers = with maintainers; [ marsam ];
     platforms = postgresql.meta.platforms;
     license = with licenses; if enableUnfree then tsl else asl20;
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix
index 582451b3ba44..b42095acd715 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   buildInputs = [ postgresql ];
 
   installPhase = ''
-    install -D tsearch_extras.so -t $out/lib/
+    install -D tsearch_extras${postgresql.dlSuffix} -t $out/lib/
     install -D ./{tsearch_extras--1.0.sql,tsearch_extras.control} -t $out/share/postgresql/extension
   '';
 
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/wal2json.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/wal2json.nix
index f9e01a7bd517..26d4cb0c1541 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/wal2json.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/wal2json.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "USE_PGXS=1" ];
 
   installPhase = ''
-    install -D -t $out/lib *.so
+    install -D -t $out/lib *${postgresql.dlSuffix}
     install -D -t $out/share/postgresql/extension sql/*.sql
   '';