Skip to content

Commit 9d03774

Browse files
committed
fix(pg-safeupdate): configure missing control and sql files for pg_safeupdate extension
The install was failing on orioledb 17 because pg_safeupdate extension was missing control and sql files. This adds the necessary control and sql files, as well as upgrade paths between versions, ensuring the extension can be properly installed and upgraded across PostgreSQL versions.
1 parent ef04f08 commit 9d03774

4 files changed

Lines changed: 23 additions & 3 deletions

File tree

nix/ext/pg-safeupdate.nix

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ let
3232
# Install versioned library
3333
install -Dm755 ${pname}${postgresql.dlSuffix} $out/lib/${pname}-${version}${postgresql.dlSuffix}
3434
35+
touch $out/share/postgresql/extension/${pname}--${version}.control
36+
touch $out/share/postgresql/extension/${pname}--${version}.sql
3537
runHook postInstall
3638
'';
3739

@@ -76,6 +78,21 @@ pkgs.buildEnv {
7678
toString (numberOfVersionsBuilt + 1)
7779
}"
7880
)
81+
82+
# Create empty upgrade files between consecutive versions
83+
# plpgsql_check ships without upgrade scripts - extensions are backward-compatible
84+
previous_version=""
85+
for ver in ${lib.concatStringsSep " " versions}; do
86+
if [[ -n "$previous_version" ]]; then
87+
touch $out/share/postgresql/extension/${pname}--''${previous_version}--''${ver}.sql
88+
fi
89+
previous_version=$ver
90+
done
91+
92+
{
93+
echo "default_version = '${latestVersion}'"
94+
cat $out/share/postgresql/extension/${pname}--${latestVersion}.control
95+
} > $out/share/postgresql/extension/${pname}.control
7996
'';
8097

8198
passthru = {

nix/tests/expected/z_15_ext_interface.out

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ order by
3131
-----------------
3232
pg_cron
3333
pgjwt
34+
safeupdate
3435
tsm_system_time
3536
wal2json
36-
(4 rows)
37+
(5 rows)
3738

3839
/*
3940

nix/tests/expected/z_17_ext_interface.out

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ order by
2525
pg_cron
2626
pgjwt
2727
postgis_tiger_geocoder
28+
safeupdate
2829
tsm_system_time
2930
wal2json
30-
(5 rows)
31+
(6 rows)
3132

3233
/*
3334

nix/tests/expected/z_orioledb-17_ext_interface.out

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ order by
2525
pg_cron
2626
pgjwt
2727
postgis_tiger_geocoder
28+
safeupdate
2829
tsm_system_time
2930
wal2json
30-
(5 rows)
31+
(6 rows)
3132

3233
/*
3334

0 commit comments

Comments
 (0)