summary refs log tree commit diff
path: root/pkgs/servers/sql/postgresql/ext
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-11-21 16:12:21 +0100
committerAlyssa Ross <hi@alyssa.is>2023-11-21 16:12:48 +0100
commit048a4cd441a59cbf89defb18bb45c9f0b4429b35 (patch)
treef8f5850ff05521ab82d65745894714a8796cbfb6 /pkgs/servers/sql/postgresql/ext
parent030c5028b07afcedce7c5956015c629486cc79d9 (diff)
parent4c2d05dd6435d449a3651a6dd314d9411b5f8146 (diff)
downloadnixpkgs-rootfs.tar
nixpkgs-rootfs.tar.gz
nixpkgs-rootfs.tar.bz2
nixpkgs-rootfs.tar.lz
nixpkgs-rootfs.tar.xz
nixpkgs-rootfs.tar.zst
nixpkgs-rootfs.zip
Rebase onto e4ad989506ec7d71f7302cc3067abd82730a4beb HEAD rootfs
Signed-off-by: Alyssa Ross <hi@alyssa.is>
Diffstat (limited to 'pkgs/servers/sql/postgresql/ext')
-rw-r--r--pkgs/servers/sql/postgresql/ext/age.nix22
-rw-r--r--pkgs/servers/sql/postgresql/ext/hypopg.nix29
-rw-r--r--pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/periods.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_bigm.nix27
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_cron.nix6
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_embedding.nix30
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix48
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_hll.nix16
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_ivm.nix7
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_net.nix8
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_partman.nix9
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_rational.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_relusage.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_repack.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix3
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_similarity.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_topn.nix6
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix34
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgaudit.nix35
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgroonga.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgrouting.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgsql-http.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgtap.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgvector.nix6
-rw-r--r--pkgs/servers/sql/postgresql/ext/pipelinedb.nix39
-rw-r--r--pkgs/servers/sql/postgresql/ext/plpgsql_check.nix6
-rw-r--r--pkgs/servers/sql/postgresql/ext/plr.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/repmgr.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/rum.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/tds_fdw.nix14
-rw-r--r--pkgs/servers/sql/postgresql/ext/temporal_tables.nix22
-rw-r--r--pkgs/servers/sql/postgresql/ext/timescaledb.nix17
-rw-r--r--pkgs/servers/sql/postgresql/ext/tsearch_extras.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/tsja.nix45
-rw-r--r--pkgs/servers/sql/postgresql/ext/wal2json.nix2
37 files changed, 311 insertions, 156 deletions
diff --git a/pkgs/servers/sql/postgresql/ext/age.nix b/pkgs/servers/sql/postgresql/ext/age.nix
index 5e88b2fdebc..3a1c1c8388b 100644
--- a/pkgs/servers/sql/postgresql/ext/age.nix
+++ b/pkgs/servers/sql/postgresql/ext/age.nix
@@ -1,14 +1,22 @@
-{ 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=";
+  };
+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 +24,7 @@ stdenv.mkDerivation rec {
   makeFlags = [
     "BISON=${bison}/bin/bison"
     "FLEX=${flex}/bin/flex"
+    "PERL=${perl}/bin/perl"
   ];
 
   installPhase = ''
@@ -54,11 +63,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/pkgs/servers/sql/postgresql/ext/hypopg.nix b/pkgs/servers/sql/postgresql/ext/hypopg.nix
new file mode 100644
index 00000000000..62f2e9263e7
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/hypopg.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "hypopg";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "HypoPG";
+    repo = "hypopg";
+    rev = version;
+    hash = "sha256-YzQnkQi9BlDryUySnWHWeTanhgfVUXjHjOqj+nQucCY=";
+  };
+
+  buildInputs = [ postgresql ];
+
+  installPhase = ''
+    install -D -t $out/lib *${postgresql.dlSuffix}
+    install -D -t $out/share/postgresql/extension *.control
+    install -D -t $out/share/postgresql/extension *.sql
+  '';
+
+  meta = with lib; {
+    description = "Hypothetical Indexes for PostgreSQL";
+    homepage = "https://hypopg.readthedocs.io";
+    license = licenses.postgresql;
+    platforms = postgresql.meta.platforms;
+    maintainers = with maintainers; [ bbigras ];
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix b/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix
index cf0ba46d876..092212aa3de 100644
--- a/pkgs/servers/sql/postgresql/ext/jsonb_deep_sum.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/periods.nix b/pkgs/servers/sql/postgresql/ext/periods.nix
index 9a390e258da..102f80cf8d7 100644
--- a/pkgs/servers/sql/postgresql/ext/periods.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_bigm.nix b/pkgs/servers/sql/postgresql/ext/pg_bigm.nix
index cb9aa5e57d3..dcd23a0949b 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_bigm.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_cron.nix b/pkgs/servers/sql/postgresql/ext/pg_cron.nix
index 450f5b06e28..02c6e6435ae 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_cron.nix
+++ b/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.2";
 
   buildInputs = [ postgresql ];
 
@@ -10,13 +10,13 @@ stdenv.mkDerivation rec {
     owner  = "citusdata";
     repo   = pname;
     rev    = "v${version}";
-    hash   = "sha256-s1wjBx84Z12fRlaT1y3CPEFHK8tzMKp7wF+t7suRNL4=";
+    hash   = "sha256-/dD1gX0+RRsBFIjSV9TVk+ppPw0Jrzssl+rRZ2qAp4w=";
   };
 
   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/pkgs/servers/sql/postgresql/ext/pg_embedding.nix b/pkgs/servers/sql/postgresql/ext/pg_embedding.nix
new file mode 100644
index 00000000000..a39dcd53727
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/pg_embedding.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "pg_embedding";
+  version = "0.3.6";
+
+  src = fetchFromGitHub {
+    owner = "neondatabase";
+    repo = pname;
+    rev = version;
+    hash = "sha256-NTBxsQB8mR7e/CWwkCEyDiYhi3Nxl/aKgRBwqc0THcI=";
+  };
+
+  buildInputs = [ postgresql ];
+
+  installPhase = ''
+    install -D -t $out/lib *.so
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+  '';
+
+  meta = with lib; {
+    description = "PostgreSQL extension implementing the HNSW algorithm for vector similarity search";
+    homepage = "https://github.com/neondatabase/pg_embedding";
+    maintainers = with maintainers; [ ivan ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.asl20;
+    broken = versionOlder postgresql.version "12";
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix b/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix
index 25d27fcdfcb..afc5b9fe650 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_hint_plan.nix
@@ -1,24 +1,51 @@
 { 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=";
+    };
+  }.${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 +54,5 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ _1000101 ];
     platforms = postgresql.meta.platforms;
     license = licenses.bsd3;
-    broken = versionOlder postgresql.version "14";
   };
 }
diff --git a/pkgs/servers/sql/postgresql/ext/pg_hll.nix b/pkgs/servers/sql/postgresql/ext/pg_hll.nix
index 71533645ef0..a60601aef56 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_hll.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_ivm.nix b/pkgs/servers/sql/postgresql/ext/pg_ivm.nix
index 61f9a89704a..2b2cf185955 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_ivm.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_net.nix b/pkgs/servers/sql/postgresql/ext/pg_net.nix
index fc52857de17..3cfcafad74e 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_net.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_partman.nix b/pkgs/servers/sql/postgresql/ext/pg_partman.nix
index b288a27baf8..e008993fcfa 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_partman.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_rational.nix b/pkgs/servers/sql/postgresql/ext/pg_rational.nix
index 5cfd6240990..df80ea49a54 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_rational.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_relusage.nix b/pkgs/servers/sql/postgresql/ext/pg_relusage.nix
index 043adf72503..1fe9fd3cac8 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_relusage.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_repack.nix b/pkgs/servers/sql/postgresql/ext/pg_repack.nix
index dd1c745bc8c..fd07b4e1054 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_repack.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix b/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix
index 5e9976c014d..06b8ce69098 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_similarity.nix b/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
index a4a8e6b0fe3..227ea835786 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_topn.nix b/pkgs/servers/sql/postgresql/ext/pg_topn.nix
index ec236b4d916..2a11417c908 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_topn.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix b/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix
new file mode 100644
index 00000000000..6daa5e0cf0e
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, postgresql
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pg_uuidv7";
+  version = "1.3.0";
+
+  buildInputs = [ postgresql ];
+
+  src = fetchFromGitHub {
+    owner = "fboulnois";
+    repo = "pg_uuidv7";
+    rev = "v${version}";
+    hash = "sha256-kHxS9tL7fpKhjJ8Xx5tee1fv10zVcTt2FgUQSaRdNZo=";
+  };
+
+  installPhase = ''
+      install -D -t $out/lib pg_uuidv7${postgresql.dlSuffix}
+      install -D {sql/pg_uuidv7--${lib.versions.majorMinor version}.sql,pg_uuidv7.control} -t $out/share/postgresql/extension
+  '';
+
+  meta = with lib; {
+    description = "A tiny Postgres extension to create version 7 UUIDs";
+    homepage = "https://github.com/fboulnois/pg_uuidv7";
+    changelog = "https://github.com/fboulnois/pg_uuidv7/blob/main/CHANGELOG.md";
+    maintainers = with maintainers; [ gaelreyrol ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.mpl20;
+    broken = versionOlder postgresql.version "13";
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/pgaudit.nix b/pkgs/servers/sql/postgresql/ext/pgaudit.nix
index c5e536363fd..f4c03d611f5 100644
--- a/pkgs/servers/sql/postgresql/ext/pgaudit.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgaudit.nix
@@ -1,14 +1,38 @@
 { 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=";
+    };
+  }.${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 +40,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 +48,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/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/pkgs/servers/sql/postgresql/ext/pgroonga.nix
index b847de1f3ae..535a16abad1 100644
--- a/pkgs/servers/sql/postgresql/ext/pgroonga.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pgrouting.nix b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
index 03b229e81b2..51cef6b3f49 100644
--- a/pkgs/servers/sql/postgresql/ext/pgrouting.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pgsql-http.nix b/pkgs/servers/sql/postgresql/ext/pgsql-http.nix
index a0ef596aade..f2fc5a329f8 100644
--- a/pkgs/servers/sql/postgresql/ext/pgsql-http.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pgtap.nix b/pkgs/servers/sql/postgresql/ext/pgtap.nix
index 24c0e3e59b8..3e8ba36994c 100644
--- a/pkgs/servers/sql/postgresql/ext/pgtap.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pgvector.nix b/pkgs/servers/sql/postgresql/ext/pgvector.nix
index d709f822fb0..26b330b3b5b 100644
--- a/pkgs/servers/sql/postgresql/ext/pgvector.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/pipelinedb.nix b/pkgs/servers/sql/postgresql/ext/pipelinedb.nix
deleted file mode 100644
index 6403138fd70..00000000000
--- a/pkgs/servers/sql/postgresql/ext/pipelinedb.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, postgresql, zeromq, openssl, libsodium, libkrb5 }:
-
-stdenv.mkDerivation rec {
-  pname = "pipelinedb";
-  version = "1.0.0-13";
-
-  src = fetchFromGitHub {
-    owner = "pipelinedb";
-    repo = pname;
-    rev = version;
-    sha256 = "1mnqpvx6g1r2n4kjrrx01vbdx7kvndfsbmm7zbzizjnjlyixz75f";
-  };
-
-  buildInputs = [ postgresql openssl zeromq libsodium libkrb5 ];
-
-  makeFlags = [ "USE_PGXS=1" ];
-
-  NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lsodium";
-
-  preConfigure = ''
-    substituteInPlace Makefile \
-      --replace "/usr/lib/libzmq.a" "${zeromq}/lib/libzmq.a"
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    install -D -t $out/lib/ pipelinedb.so
-    install -D -t $out/share/postgresql/extension {pipelinedb-*.sql,pipelinedb.control}
-  '';
-
-  meta = with lib; {
-    description = "High-performance time-series aggregation for PostgreSQL";
-    homepage = "https://www.pipelinedb.com/";
-    license = licenses.asl20;
-    platforms = postgresql.meta.platforms;
-    maintainers = [ maintainers.marsam ];
-    broken = versions.major postgresql.version != "11";
-  };
-}
diff --git a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
index abbb1ac4d3e..61836a4573d 100644
--- a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
+++ b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "plpgsql_check";
-  version = "2.5.1";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-4J4uKcQ/jRKKgrpUUed9MXDmOJaYKYDzznt1DItr6T0=";
+    hash = "sha256-mC8cDLfTu/gpMjNfXGCAV8EhE+kMq2MofzibIWijX3w=";
   };
 
   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/pkgs/servers/sql/postgresql/ext/plr.nix b/pkgs/servers/sql/postgresql/ext/plr.nix
index 7dcb3c0c466..1800b424716 100644
--- a/pkgs/servers/sql/postgresql/ext/plr.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index 5745630964e..583bde82f48 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
     homepage = "https://postgis.net/";
     changelog = "https://git.osgeo.org/gitea/postgis/postgis/raw/tag/${version}/NEWS";
     license = licenses.gpl2;
-    maintainers = [ maintainers.marcweber ];
+    maintainers = with maintainers; teams.geospatial.members ++ [ marcweber ];
     inherit (postgresql.meta) platforms;
     broken = versionOlder postgresql.version "12";
   };
diff --git a/pkgs/servers/sql/postgresql/ext/repmgr.nix b/pkgs/servers/sql/postgresql/ext/repmgr.nix
index 61e7ee9fc96..93f60767157 100644
--- a/pkgs/servers/sql/postgresql/ext/repmgr.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/rum.nix b/pkgs/servers/sql/postgresql/ext/rum.nix
index 8edd9a2fb47..0fb6635529a 100644
--- a/pkgs/servers/sql/postgresql/ext/rum.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/tds_fdw.nix b/pkgs/servers/sql/postgresql/ext/tds_fdw.nix
index 49c3ee044b2..7eec155435a 100644
--- a/pkgs/servers/sql/postgresql/ext/tds_fdw.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/temporal_tables.nix b/pkgs/servers/sql/postgresql/ext/temporal_tables.nix
index ec654c4a09f..cb401829b24 100644
--- a/pkgs/servers/sql/postgresql/ext/temporal_tables.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index a7c136ba691..a567db94812 100644
--- a/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/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.2";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl libkrb5 ];
@@ -22,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "timescale";
     repo = "timescaledb";
     rev = version;
-    sha256 = "sha256-c2fztGtl2cLThT0JhHCM0UaYkiWTp5T6TUZ3Au7CG7c=";
+    hash = "sha256-bZHgkcCmkheTupVLOBZ5UsgIVyy7aIJoge+ot2SmMFg=";
   };
 
   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/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix b/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix
index 582451b3ba4..b42095acd71 100644
--- a/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix
+++ b/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/pkgs/servers/sql/postgresql/ext/tsja.nix b/pkgs/servers/sql/postgresql/ext/tsja.nix
new file mode 100644
index 00000000000..f62eae5b6a3
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/tsja.nix
@@ -0,0 +1,45 @@
+{ lib
+, fetchzip
+, nixosTests
+, stdenv
+
+, mecab
+, postgresql
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tsja";
+  version = "0.5.0";
+
+  src = fetchzip {
+    url = "https://www.amris.jp/tsja/tsja-${version}.tar.xz";
+    hash = "sha256-h59UhUG/7biN8NaDiGK6kXDqfhR9uMzt8CpwbJ+PpEM=";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace /usr/local/pgsql ${postgresql} \
+      --replace -L/usr/local/lib "" \
+      --replace -I/usr/local/include ""
+    substituteInPlace tsja.c --replace /usr/local/lib/mecab ${mecab}/lib/mecab
+  '';
+
+  buildInputs = [ mecab postgresql ];
+
+  installPhase = ''
+    mkdir -p $out/lib $out/share/postgresql/extension
+    mv libtsja.so $out/lib
+    mv dbinit_libtsja.txt $out/share/postgresql/extension/libtsja_dbinit.sql
+  '';
+
+  passthru.tests.tsja = nixosTests.tsja;
+
+  meta = with lib; {
+    description = "PostgreSQL extension implementing Japanese text search";
+    homepage = "https://www.amris.jp/tsja/index.html";
+    maintainers = with maintainers; [ chayleaf ];
+    # GNU-specific linker options are used
+    platforms = platforms.gnu;
+    license = licenses.gpl2Only;
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/wal2json.nix b/pkgs/servers/sql/postgresql/ext/wal2json.nix
index f9e01a7bd51..26d4cb0c154 100644
--- a/pkgs/servers/sql/postgresql/ext/wal2json.nix
+++ b/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
   '';