diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fa9820087..8af7d5553 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -43,7 +43,7 @@ jobs: with: tools: tests - - name: Run coverage (IO tests and Spec tests against PostgreSQL 14) + - name: Run coverage (IO tests and Spec tests against PostgreSQL 15) run: postgrest-coverage - name: Upload coverage to codecov uses: codecov/codecov-action@v3.1.1 @@ -63,7 +63,7 @@ jobs: strategy: fail-fast: false matrix: - pgVersion: [9.6, 10, 11, 12, 13, 14] + pgVersion: [9.6, 10, 11, 12, 13, 14, 15] name: Test PG ${{ matrix.pgVersion }} (Nix) runs-on: ubuntu-latest defaults: diff --git a/CHANGELOG.md b/CHANGELOG.md index 946660726..8bfba2aeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - #2362, Fix error message when [] is used inside select - @wolfgangwalther - #2475, Disallow !inner on computed columns - @wolfgangwalther - #2285, Ignore leading and trailing spaces in column names when parsing the query string - @wolfgangwalther + - #2545, Fix UPSERT with PostgreSQL 15 - @wolfgangwalther ### Changed diff --git a/default.nix b/default.nix index 729568cfe..9f4367a9d 100644 --- a/default.nix +++ b/default.nix @@ -49,6 +49,7 @@ let postgresqlVersions = [ + { name = "postgresql-15"; postgresql = pkgs.postgresql_15.withPackages (p: [ p.postgis p.pg_safeupdate ]); } { name = "postgresql-14"; postgresql = pkgs.postgresql_14.withPackages (p: [ p.postgis p.pg_safeupdate ]); } { name = "postgresql-13"; postgresql = pkgs.postgresql_13.withPackages (p: [ p.postgis p.pg_safeupdate ]); } { name = "postgresql-12"; postgresql = pkgs.postgresql_12.withPackages (p: [ p.postgis p.pg_safeupdate ]); } diff --git a/src/PostgREST/Query/QueryBuilder.hs b/src/PostgREST/Query/QueryBuilder.hs index 91e54ceff..0cacbdcf6 100644 --- a/src/PostgREST/Query/QueryBuilder.hs +++ b/src/PostgREST/Query/QueryBuilder.hs @@ -94,7 +94,7 @@ mutatePlanToQuery (Insert mainQi iCols body onConflct putConditions returnings _ if null oncCols then mempty else - "ON CONFLICT(" <> BS.intercalate ", " (pgFmtIdent <$> oncCols) <> ") " <> case oncDo of + " ON CONFLICT(" <> BS.intercalate ", " (pgFmtIdent <$> oncCols) <> ") " <> case oncDo of IgnoreDuplicates -> "DO NOTHING" MergeDuplicates ->