Skip to content

Commit b7fecac

Browse files
committed
WIP
1 parent e2436e4 commit b7fecac

File tree

13 files changed

+89
-116
lines changed

13 files changed

+89
-116
lines changed

nix/cargo-pgrx/versions.json

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,92 +3,89 @@
33
"hash": "sha256-O4eHVbJBudybsPab+zr2eXnfheREMqLAHAKm2GDbfrs=",
44
"rust": {
55
"1.82.0": {
6-
"cargoHash": "sha256-MucGrA3qXgJOcT2LMNmoNOhQi8QA3LuqgZEHKycLCCo="
6+
"cargoHash": "sha256-lcnUVO8dJET5g6wM1YgTsj4uP4I3vVZy5PWBKIsvLB8="
77
}
88
}
99
},
1010
"0.7.1": {
1111
"hash": "sha256-t/gdlrBeP6KFkBFJiZUa8KKVJVYMf6753vQGKJdytss=",
1212
"rust": {
1313
"1.82.0": {
14-
"cargoHash": "sha256-muce9wT4LAJmfNLWWEShARnpZgglXe/KrfxlitmGgXk="
14+
"cargoHash": "sha256-bLS/pKJnwgcp38wAHej6vOkzVb/E2UHRCQ/OMDI6GqU="
1515
}
1616
}
1717
},
1818
"0.9.5": {
1919
"hash": "sha256-GpXQUOBuojAqPXyRR+k8AVW2XzBbn6V0+2dhP4w4Vs8=",
2020
"rust": {
2121
"1.70.0": {
22-
"cargoHash": "sha256-YbwGh3tbt8W9/VOu11fTWO9fRMUlrwJnG4wxUHuyX10="
22+
"cargoHash": "sha256-TGeHOA5kRZ7KclRfYj6V+/ZbPiPx/4xUyKxNm4o7ubM="
2323
}
2424
}
2525
},
2626
"0.9.7": {
2727
"hash": "sha256-uDBq7tUZ9f8h5nlRFR1mv4+Ty1OFtAk5P7OTNQPI1gI=",
2828
"rust": {
2929
"1.70.0": {
30-
"cargoHash": "sha256-YTkjqMNF+cz5XtELh7+l8KwvRoVKQP7t98nkJwkW218="
30+
"cargoHash": "sha256-uc1/zWMLt5U0egsf3xu/5RxouSl0m+81qY+ZZd8BSxU="
3131
}
3232
}
3333
},
3434
"0.10.2": {
3535
"hash": "sha256-FqjfbJmSy5UCpPPPk4bkEyvQCnaH9zYtkI7txgIn+ls=",
3636
"rust": {
3737
"1.70.0": {
38-
"cargoHash": "sha256-syZ3cQq8qDHBLvqmNDGoxeK6zXHJ47Jwkw3uhaXNCzI="
38+
"cargoHash": "sha256-VlxXXSwegKGYIO3r3XtclwdtkJNz4r5H35Tkkw0nl9c="
3939
},
4040
"1.76.0": {
41-
"cargoHash": "sha256-syZ3cQq8qDHBLvqmNDGoxeK6zXHJ47Jwkw3uhaXNCzI="
41+
"cargoHash": "sha256-VlxXXSwegKGYIO3r3XtclwdtkJNz4r5H35Tkkw0nl9c="
4242
}
4343
}
4444
},
4545
"0.11.2": {
4646
"hash": "sha256-8NlpMDFaltTIA8G4JioYm8LaPJ2RGKH5o6sd6lBHmmM=",
4747
"rust": {
4848
"1.70.0": {
49-
"cargoHash": "sha256-qTb3JV3u42EilaK2jP9oa5D09mkuHyRbGGRs9Rg4TzI="
50-
},
51-
"1.76.0": {
52-
"cargoHash": "sha256-qTb3JV3u42EilaK2jP9oa5D09mkuHyRbGGRs9Rg4TzI="
49+
"cargoHash": "sha256-TMuJ7kyMckCT4JJVWuEE14HpD5uw3Vjym96GA71vOMo="
5350
},
5451
"1.85.1": {
55-
"cargoHash": "sha256-CbU5B0pvB9ApTZOdYP/ZwuIG8bqGzk/ING2PCM0q2bQ="
52+
"cargoHash": "sha256-TMuJ7kyMckCT4JJVWuEE14HpD5uw3Vjym96GA71vOMo="
5653
}
5754
}
5855
},
5956
"0.11.3": {
6057
"hash": "sha256-UHIfwOdXoJvR4Svha6ud0FxahP1wPwUtviUwUnTmLXU=",
6158
"rust": {
59+
"1.70.0": {
60+
"cargoHash": "sha256-giL077I5VzWJ+fAbxqp/Oc28Qjc7ontVm7of5LQz+uY="
61+
},
6262
"1.76.0": {
63-
"cargoHash": "sha256-j4HnD8Zt9uhlV5N7ldIy9564o9qFEqs5KfXHmnQ1WEw="
63+
"cargoHash": "sha256-giL077I5VzWJ+fAbxqp/Oc28Qjc7ontVm7of5LQz+uY="
6464
},
6565
"1.85.1": {
66-
"cargoHash": "sha256-KBlT3FARjGcbtHIGDoC6ir3aNXXfDRmIoy990SOqoFg="
66+
"cargoHash": "sha256-giL077I5VzWJ+fAbxqp/Oc28Qjc7ontVm7of5LQz+uY="
6767
}
6868
}
6969
},
7070
"0.12.6": {
7171
"hash": "sha256-7aQkrApALZe6EoQGVShGBj0UIATnfOy2DytFj9IWdEA=",
7272
"rust": {
7373
"1.80.0": {
74-
"cargoHash": "sha256-Di4UldQwAt3xVyvgQT1gUhdvYUVp7n/a72pnX45kP0w="
74+
"cargoHash": "sha256-pnMxWWfvr1/AEp8DvG4awig8zjdHizJHoZ5RJA8CL08="
7575
},
7676
"1.81.0": {
77-
"cargoHash": "sha256-Di4UldQwAt3xVyvgQT1gUhdvYUVp7n/a72pnX45kP0w="
77+
"cargoHash": "sha256-pnMxWWfvr1/AEp8DvG4awig8zjdHizJHoZ5RJA8CL08="
7878
}
7979
}
8080
},
8181
"0.12.9": {
8282
"hash": "sha256-aR3DZAjeEEAjLQfZ0ZxkjLqTVMIEbU0UiZ62T4BkQq8=",
8383
"rust": {
8484
"1.81.0": {
85-
"cargoHash": "sha256-53HKhvsKLTa2JCByLEcK3UzWXoM+LTatd98zvS1C9no="
85+
"cargoHash": "sha256-yZpD3FriL9UbzRtdFkfIfFfYIrRPYxr/lZ5rb0YBTPc="
8686
},
8787
"1.84.0": {
88-
"cargoHash": "sha256-KTKcol9qSNLQZGW32e6fBb6cPkUGItknyVpLdBYqrBY="
89-
},
90-
"1.87.0": {
91-
"cargoHash": "sha256-KTKcol9qSNLQZGW32e6fBb6cPkUGItknyVpLdBYqrBY="
88+
"cargoHash": "sha256-yZpD3FriL9UbzRtdFkfIfFfYIrRPYxr/lZ5rb0YBTPc="
9289
}
9390
}
9491
},
@@ -104,15 +101,15 @@
104101
"hash": "sha256-emNR7fXNVD9sY/Mdno7mwpH6l/7AD28cBUsFRn9je50=",
105102
"rust": {
106103
"1.87.0": {
107-
"cargoHash": "sha256-pK6OxRNubcWhohLvIJIliRtaHSIQOhQp7Q9brPygZYA="
104+
"cargoHash": "sha256-3eyBDWDoCzSU0tbab8qbjSnBkkN0oOgd7YbuyHLEHYw="
108105
}
109106
}
110107
},
111108
"0.16.1": {
112109
"hash": "sha256-AjoBr+/sEPdzbD0wLUNVm2syCySkGaFOFQ70TST1U9w=",
113110
"rust": {
114111
"1.88.0": {
115-
"cargoHash": "sha256-uWj/V2lJa6HF2GlHX+i5RbSMZFOxZsBzOf6okKDb0j8="
112+
"cargoHash": "sha256-95DHq5GLnAqb3bbKwwaeBeKEmkfRh81ZTRaJ7L59DAg="
116113
}
117114
}
118115
}

nix/ext/pg_jsonschema/default.nix

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ let
4747
];
4848
# update the following array when the pg_jsonschema version is updated
4949
# required to ensure that extensions update scripts from previous versions are generated
50-
5150
previousVersions = [
5251
"0.3.1"
5352
"0.3.0"
@@ -109,6 +108,9 @@ let
109108
}
110109
111110
create_control_files
111+
112+
# Remove empty postmaster_stub.rs files to avoid cargo-pgrx error
113+
find $out -type f -name 'postmaster_stub.rs' -empty -print -delete
112114
'';
113115

114116
meta = with lib; {

nix/ext/pg_net.nix

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,19 @@
33
lib,
44
stdenv,
55
fetchFromGitHub,
6-
curl,
76
postgresql,
87
libuv,
98
makeWrapper,
109
switch-ext-version,
1110
}:
1211

12+
let
13+
olderPkgs = import (fetchTarball {
14+
url = "https://github.com/nixos/nixpkgs/archive/a76c4553d7e741e17f289224eda135423de0491d.tar.gz";
15+
sha256 = "0rwdzp942b8ay625lqgra83qrp64b3wqm6w9a0i4z593df8x822v";
16+
}) { system = stdenv.system; };
17+
curl = olderPkgs.curl;
18+
in
1319
let
1420
pname = "pg_net";
1521
build =

nix/ext/pgrouting.nix

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,18 @@ let
4949
inherit hash;
5050
};
5151

52+
patches = lib.optionals (version == "3.4.1" && lib.versionAtLeast postgresql.version "17") [
53+
./pgrouting/pgrouting-3.4.1-pg17.patch
54+
];
55+
5256
#disable compile time warnings for incompatible pointer types only on macos and pg16
5357
NIX_CFLAGS_COMPILE = lib.optionalString (
5458
stdenv.isDarwin && lib.versionAtLeast postgresql.version "16"
5559
) "-Wno-error=int-conversion -Wno-error=incompatible-pointer-types";
5660

5761
cmakeFlags = [
5862
"-DPOSTGRESQL_VERSION=${postgresql.version}"
63+
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
5964
]
6065
++ lib.optionals (stdenv.isDarwin && lib.versionAtLeast postgresql.version "16") [
6166
"-DCMAKE_MACOSX_RPATH=ON"
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
From ce195442200452ae50b63528647e3837e9f121e0 Mon Sep 17 00:00:00 2001
2+
From: Yvan Sraka <yvan@sraka.xyz>
3+
Date: Thu, 4 Dec 2025 19:33:44 +0100
4+
Subject: [PATCH] Fix PostgreSQL 17 compatibility in SPI_getvalue calls
5+
6+
SPI_getvalue already returns a char* in PostgreSQL 17, so wrapping
7+
it in DatumGetCString (which expects a Datum) causes a compilation
8+
error. This patch removes the unnecessary DatumGetCString wrapper
9+
in both get_check_data.c and trsp.c files.
10+
---
11+
src/common/get_check_data.c | 2 +-
12+
src/trsp/trsp.c | 2 +-
13+
2 files changed, 2 insertions(+), 2 deletions(-)
14+
15+
diff --git a/src/common/get_check_data.c b/src/common/get_check_data.c
16+
index 85ea70d..82a81d1 100644
17+
--- a/src/common/get_check_data.c
18+
+++ b/src/common/get_check_data.c
19+
@@ -304,5 +304,5 @@ pgr_SPI_getFloat8(HeapTuple *tuple, TupleDesc *tupdesc, Column_info_t info) {
20+
*/
21+
char*
22+
pgr_SPI_getText(HeapTuple *tuple, TupleDesc *tupdesc, Column_info_t info) {
23+
- return DatumGetCString(SPI_getvalue(*tuple, *tupdesc, info.colNumber));
24+
+ return SPI_getvalue(*tuple, *tupdesc, info.colNumber);
25+
}
26+
diff --git a/src/trsp/trsp.c b/src/trsp/trsp.c
27+
index 7f9397a..52b68dd 100644
28+
--- a/src/trsp/trsp.c
29+
+++ b/src/trsp/trsp.c
30+
@@ -114,7 +114,7 @@ fetch_restrict(HeapTuple *tuple, TupleDesc *tupdesc,
31+
if (isnull)
32+
elog(ERROR, "to_cost contains a null value");
33+
rest->to_cost = DatumGetFloat8(binval);
34+
- char *str = DatumGetCString(SPI_getvalue(*tuple, *tupdesc,
35+
+ char *str = SPI_getvalue(*tuple, *tupdesc,
36+
restrict_columns->via_path));
37+
38+
// PGR_DBG("restriction: %f, %i, %s", rest->to_cost, rest->target_id, str);
39+
--
40+
2.51.2
41+

nix/ext/postgis.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
nixosTests,
1717
callPackage,
1818
buildEnv,
19+
sfcgal,
1920
}:
2021

2122
let
22-
sfcgal = callPackage ../packages/sfcgal.nix { };
2323
gdal = callPackage ./gdal.nix { inherit postgresql; };
2424
pname = "postgis";
2525

nix/ext/tests/orioledb.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ let
1515
];
1616
passthru = {
1717
inherit (postgresql) version psqlSchema;
18-
installedExtensions = [ self.packages.${pkgs.system}."psql_orioledb-17/exts/orioledb" ];
18+
installedExtensions = [ (self.legacyPackages.${pkgs.system}."psql_orioledb-17".exts.orioledb) ];
1919
lib = pkg;
2020
withPackages = _: pkg;
2121
withJIT = pkg;

nix/ext/tests/pgrouting.nix

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,15 @@ let
1212
majorVersion = lib.versions.major postgresql.version;
1313
pkg = pkgs.buildEnv {
1414
name = "postgresql-${majorVersion}-${pname}";
15-
paths =
16-
[
17-
postgresql
18-
postgresql.lib
19-
(installedExtension majorVersion)
20-
(self.legacyPackages.${pkgs.system}."psql_${majorVersion}".exts.postgis)
21-
]
22-
++ lib.optional (postgresql.isOrioleDB) (
23-
self.legacyPackages.${pkgs.system}."psql_orioledb-17".exts.orioledb
24-
);
15+
paths = [
16+
postgresql
17+
postgresql.lib
18+
(installedExtension majorVersion)
19+
(self.legacyPackages.${pkgs.system}."psql_${majorVersion}".exts.postgis)
20+
]
21+
++ lib.optional (postgresql.isOrioleDB) (
22+
self.legacyPackages.${pkgs.system}."psql_orioledb-17".exts.orioledb
23+
);
2524
passthru = {
2625
inherit (postgresql) version psqlSchema;
2726
installedExtensions = [ (installedExtension majorVersion) ];

nix/ext/versions.json

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,6 @@
392392
"hash": "sha256-QC77AnPGpPQGEWi6JtJdiNsB2su5+aV2pKg5ImR2B0k="
393393
}
394394
},
395-
396395
"pgsodium": {
397396
"3.0.4": {
398397
"postgresql": [
@@ -572,30 +571,6 @@
572571
}
573572
},
574573
"wrappers": {
575-
"0.3.0": {
576-
"postgresql": [
577-
"15"
578-
],
579-
"hash": "sha256-ogpF8NJ7kW3Ut8jaKMDiKYIXnI38nfRq2mMK4rqFAIA=",
580-
"pgrx": "0.11.3",
581-
"rust": "1.76.0"
582-
},
583-
"0.4.1": {
584-
"postgresql": [
585-
"15"
586-
],
587-
"hash": "sha256-AU9Y43qEMcIBVBThu+Aor1HCtfFIg+CdkzK9IxVdkzM=",
588-
"pgrx": "0.11.3",
589-
"rust": "1.76.0"
590-
},
591-
"0.4.2": {
592-
"postgresql": [
593-
"15"
594-
],
595-
"hash": "sha256-ut3IQED6ANXgabiHoEUdfSrwkuuYYSpRoeWdtBvSe64=",
596-
"pgrx": "0.11.3",
597-
"rust": "1.76.0"
598-
},
599574
"0.4.3": {
600575
"postgresql": [
601576
"15"

nix/overlays/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{ self, ... }:
22
{
3-
flake.overlays.default = final: prev: {
3+
flake.overlays.default = final: _prev: {
44
# NOTE: add any needed overlays here. in theory we could
55
# pull them from the overlays/ directory automatically, but we don't
66
# want to have an arbitrary order, since it might matter. being

0 commit comments

Comments
 (0)