4949 # update the following array when the pg_jsonschema version is updated
5050 # required to ensure that extensions update scripts from previous versions are generated
5151
52- previousVersions = [
53- "0.3.1"
54- "0.3.0"
55- "0.2.0"
56- "0.1.4"
57- "0.1.3"
58- "0.1.2"
59- "0.1.1"
60- "0.1.0"
61- ] ;
6252 CARGO = "${ cargo } /bin/cargo" ;
6353 #darwin env needs PGPORT to be unique for build to not clash with other pgrx extensions
6454 env = lib . optionalAttrs stdenv . isDarwin {
7969
8070 preCheck = ''
8171 export PGRX_HOME=$(mktemp -d)
82- export NIX_PGLIBDIR=$PGRX_HOME/${ lib . versions . major postgresql . version } /lib
83- ${ lib . getExe pkgs . rsync } --chmod=ugo+w -a ${ postgresql } / ${ postgresql . lib } / $PGRX_HOME/${ lib . versions . major postgresql . version } /
84- cargo pgrx init --pg${ lib . versions . major postgresql . version } $PGRX_HOME/${ lib . versions . major postgresql . version } /bin/pg_config
72+ export NIX_PGLIBDIR=$PGRX_HOME/${ pgVersion } /lib
73+ ${ lib . getExe pkgs . rsync } --chmod=ugo+w -a ${ postgresql } / ${ postgresql . lib } / $PGRX_HOME/${ pgVersion } /
74+ cargo pgrx init --pg${ pgVersion } $PGRX_HOME/${ pgVersion } /bin/pg_config
8575 '' ;
8676
8777 doCheck = true ;
8878
89- preBuild = ''
90- echo "Processing git tags..."
91- echo '${ builtins . concatStringsSep "," previousVersions } ' | sed 's/,/\n/g' > git_tags.txt
92- '' ;
93-
9479 postInstall = ''
80+ find $out
9581 mv $out/lib/${ pname } ${ postgresql . dlSuffix } $out/lib/${ pname } -${ version } ${ postgresql . dlSuffix }
9682
9783 create_control_files() {
@@ -120,15 +106,18 @@ let
120106 } ;
121107 } ;
122108 allVersions = ( builtins . fromJSON ( builtins . readFile ../versions.json ) ) . pg_jsonschema ;
109+ pgVersion = lib . versions . major postgresql . version ;
123110 supportedVersions = lib . filterAttrs (
124- _ : value : builtins . elem ( lib . versions . major postgresql . version ) value . postgresql
111+ _ : value : builtins . elem pgVersion value . postgresql
125112 ) allVersions ;
126113 versions = lib . naturalSort ( lib . attrNames supportedVersions ) ;
127114 latestVersion = lib . last versions ;
128115 numberOfVersions = builtins . length versions ;
129116 packages = builtins . attrValues (
130117 lib . mapAttrs ( name : value : build name value . hash value . rust value . pgrx ) supportedVersions
131118 ) ;
119+ unsupportedVersionsItems = lib . filterAttrs ( _ : value : value . postgresql == [ "15" ] ) allVersions ;
120+ unsupportedVersions = if pgVersion == "17" then lib . attrNames unsupportedVersionsItems else [ ] ;
132121in
133122pkgs . buildEnv {
134123 name = pname ;
@@ -145,6 +134,10 @@ pkgs.buildEnv {
145134 } "
146135 )
147136
137+ for v in ${ lib . concatStringsSep " " unsupportedVersions } ; do
138+ cp $out/share/postgresql/extension/${ pname } --${ lib . head versions } .sql $out/share/postgresql/extension/${ pname } --$v.sql
139+ done
140+
148141 create_sql_files() {
149142 PREVIOUS_VERSION=""
150143 while IFS= read -r i; do
0 commit comments