remove: drop support for PostgreSQL 13

PostgreSQL 13 has been EOL since November 2025 and will not be available
in the next Nixpkgs bump anymore.
This commit is contained in:
Wolfgang Walther
2026-04-19 13:16:55 +00:00
parent 4ccb125e85
commit 1b74b93466
8 changed files with 21 additions and 34 deletions
+1 -1
View File
@@ -69,7 +69,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
pgVersion: [13, 14, 15, 16, 17] pgVersion: [14, 15, 16, 17]
name: PG ${{ matrix.pgVersion }} name: PG ${{ matrix.pgVersion }}
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
defaults: defaults:
+1
View File
@@ -17,6 +17,7 @@ All notable changes to this project will be documented in this file. From versio
### Changed ### Changed
- Drop support for PostgreSQL EOL version 13 by @wolfgangwalther in #4193
- All responses now include a `Vary` header by @develop7 in #4609 - All responses now include a `Vary` header by @develop7 in #4609
- Log error when `db-schemas` config contains schema `pg_catalog` or `information_schema` by @taimoorzaeem in #4359 - Log error when `db-schemas` config contains schema `pg_catalog` or `information_schema` by @taimoorzaeem in #4359
+ Now fails at startup. Prior to this, it failed with `PGRST205` on requests related to these schemas. + Now fails at startup. Prior to this, it failed with `PGRST205` on requests related to these schemas.
-1
View File
@@ -56,7 +56,6 @@ let
{ name = "pg-16"; postgresql = pkgs.postgresql_16.withPackages (p: [ p.postgis p.pg_safeupdate ]); } { name = "pg-16"; postgresql = pkgs.postgresql_16.withPackages (p: [ p.postgis p.pg_safeupdate ]); }
{ name = "pg-15"; postgresql = pkgs.postgresql_15.withPackages (p: [ p.postgis p.pg_safeupdate ]); } { name = "pg-15"; postgresql = pkgs.postgresql_15.withPackages (p: [ p.postgis p.pg_safeupdate ]); }
{ name = "pg-14"; postgresql = pkgs.postgresql_14.withPackages (p: [ p.postgis p.pg_safeupdate ]); } { name = "pg-14"; postgresql = pkgs.postgresql_14.withPackages (p: [ p.postgis p.pg_safeupdate ]); }
{ name = "pg-13"; postgresql = pkgs.postgresql_13.withPackages (p: [ p.postgis p.pg_safeupdate ]); }
]; ];
haskellPackages = pkgs.haskell.packages."${compiler}"; haskellPackages = pkgs.haskell.packages."${compiler}";
+1 -1
View File
@@ -16,7 +16,7 @@ Supported PostgreSQL versions
============================= =============================
=============== ================================= =============== =================================
**Supported** PostgreSQL >= 13 **Supported** PostgreSQL >= 14
=============== ================================= =============== =================================
PostgREST works with all PostgreSQL versions still `officially supported <https://www.postgresql.org/support/versioning/>`_. PostgREST works with all PostgreSQL versions still `officially supported <https://www.postgresql.org/support/versioning/>`_.
+8 -8
View File
@@ -91,13 +91,13 @@ postgrest-gen-ctags postgrest-watch
postgrest-gen-jwt postgrest-with-all postgrest-gen-jwt postgrest-with-all
postgrest-gen-secret postgrest-with-git postgrest-gen-secret postgrest-with-git
postgrest-git-hooks postgrest-with-pgrst postgrest-git-hooks postgrest-with-pgrst
postgrest-hsie-graph-modules postgrest-with-pg-13 postgrest-hsie-graph-modules postgrest-with-pg-14
postgrest-hsie-graph-symbols postgrest-with-pg-14 postgrest-hsie-graph-symbols postgrest-with-pg-15
postgrest-hsie-minimal-imports postgrest-with-pg-15 postgrest-hsie-minimal-imports postgrest-with-pg-16
postgrest-lint postgrest-with-pg-16 postgrest-lint postgrest-with-pg-17
postgrest-loadtest postgrest-with-pg-17 postgrest-loadtest postgrest-with-slow-pg
postgrest-loadtest-against postgrest-with-slow-pg postgrest-loadtest-against postgrest-with-slow-postgrest
postgrest-loadtest-report postgrest-with-slow-postgrest postgrest-loadtest-report
postgrest-nixpkgs-upgrade postgrest-nixpkgs-upgrade
... ...
@@ -174,7 +174,7 @@ $ nix-shell --run "postgrest-with-all postgrest-test-spec"
# Run the tests against a specific version of PostgreSQL (use tab-completion in # Run the tests against a specific version of PostgreSQL (use tab-completion in
# nix-shell to see all available versions): # nix-shell to see all available versions):
$ nix-shell --run "postgrest-with-pg-13 postgrest-test-spec" $ nix-shell --run "postgrest-with-pg-17 postgrest-test-spec"
``` ```
+1 -5
View File
@@ -3,7 +3,6 @@
module PostgREST.Config.PgVersion module PostgREST.Config.PgVersion
( PgVersion(..) ( PgVersion(..)
, minimumPgVersion , minimumPgVersion
, pgVersion140
, pgVersion150 , pgVersion150
, pgVersion170 , pgVersion170
) where ) where
@@ -25,10 +24,7 @@ instance Ord PgVersion where
-- | Tells the minimum PostgreSQL version required by this version of PostgREST -- | Tells the minimum PostgreSQL version required by this version of PostgREST
minimumPgVersion :: PgVersion minimumPgVersion :: PgVersion
minimumPgVersion = pgVersion130 minimumPgVersion = pgVersion140
pgVersion130 :: PgVersion
pgVersion130 = PgVersion 130000 "13.0" "13.0"
pgVersion140 :: PgVersion pgVersion140 :: PgVersion
pgVersion140 = PgVersion 140000 "14.0" "14.0" pgVersion140 = PgVersion 140000 "14.0" "14.0"
+8 -17
View File
@@ -11,13 +11,11 @@ import Test.Hspec.Wai
import Test.Hspec.Wai.JSON import Test.Hspec.Wai.JSON
import Text.Heredoc import Text.Heredoc
import PostgREST.Config.PgVersion (PgVersion, pgVersion140)
import Protolude hiding (get) import Protolude hiding (get)
import SpecHelper import SpecHelper
spec :: PgVersion -> SpecWith ((), Application) spec :: SpecWith ((), Application)
spec actualPgVersion = do spec = do
describe "Posting new record" $ do describe "Posting new record" $ do
context "disparate json types" $ do context "disparate json types" $ do
it "accepts disparate json types" $ do it "accepts disparate json types" $ do
@@ -554,19 +552,12 @@ spec actualPgVersion = do
{"a": "val", "b": "val"} {"a": "val", "b": "val"}
]|] ]|]
`shouldRespondWith` `shouldRespondWith`
(if actualPgVersion < pgVersion140 [json| {
then [json| { "code": "428C9",
"code": "42601", "details": "Column \"b\" is a generated column.",
"details": "Column \"b\" is a generated column.", "hint": null,
"hint": null, "message": "cannot insert a non-DEFAULT value into column \"b\""
"message": "cannot insert into column \"b\"" }|]
}|]
else [json| {
"code": "428C9",
"details": "Column \"b\" is a generated column.",
"hint": null,
"message": "cannot insert a non-DEFAULT value into column \"b\""
}|])
{ matchStatus = 400 } { matchStatus = 400 }
it "inserts a default on a DOMAIN with default" $ it "inserts a default on a DOMAIN with default" $
+1 -1
View File
@@ -150,7 +150,7 @@ main = do
, ("Feature.Query.DeleteSpec" , Feature.Query.DeleteSpec.spec) , ("Feature.Query.DeleteSpec" , Feature.Query.DeleteSpec.spec)
, ("Feature.Query.EmbedDisambiguationSpec" , Feature.Query.EmbedDisambiguationSpec.spec) , ("Feature.Query.EmbedDisambiguationSpec" , Feature.Query.EmbedDisambiguationSpec.spec)
, ("Feature.Query.EmbedInnerJoinSpec" , Feature.Query.EmbedInnerJoinSpec.spec) , ("Feature.Query.EmbedInnerJoinSpec" , Feature.Query.EmbedInnerJoinSpec.spec)
, ("Feature.Query.InsertSpec" , Feature.Query.InsertSpec.spec actualPgVersion) , ("Feature.Query.InsertSpec" , Feature.Query.InsertSpec.spec)
, ("Feature.Query.JsonOperatorSpec" , Feature.Query.JsonOperatorSpec.spec) , ("Feature.Query.JsonOperatorSpec" , Feature.Query.JsonOperatorSpec.spec)
, ("Feature.Query.NullsStripSpec" , Feature.Query.NullsStripSpec.spec) , ("Feature.Query.NullsStripSpec" , Feature.Query.NullsStripSpec.spec)
, ("Feature.Query.PgErrorCodeMappingSpec" , Feature.Query.ErrorSpec.pgErrorCodeMapping) , ("Feature.Query.PgErrorCodeMappingSpec" , Feature.Query.ErrorSpec.pgErrorCodeMapping)