Skip to content

Commit 6c5aa03

Browse files
committed
feat: update orioledb extension
Expose patchset and revision attributes in postgresql to build orioledb properly. Add NixOS VM test for orioledb extension validation.
1 parent d61b69d commit 6c5aa03

File tree

3 files changed

+110
-16
lines changed

3 files changed

+110
-16
lines changed

nix/ext/orioledb.nix

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
1515
src = fetchFromGitHub {
1616
owner = "orioledb";
1717
repo = "orioledb";
18-
rev = "beta12";
19-
sha256 = "sha256-5dyVdKD1PzW+F5OPW3TR3OKBaJxxR3OhLbzK+o9Wf+Q=";
18+
rev = "f147bf21fea29965c18e4f3bb9d1e57e713376b2";
19+
sha256 = "sha256-W3AquOCeTYv9jLsh0VV+wW9w8mGZnpLVZDWaxmVIiX8=";
2020
};
2121
version = "beta12";
2222
buildInputs = [
@@ -26,7 +26,9 @@ stdenv.mkDerivation rec {
2626
python3
2727
openssl
2828
];
29-
buildPhase = "make USE_PGXS=1 ORIOLEDB_PATCHSET_VERSION=11";
29+
buildPhase = ''
30+
make USE_PGXS=1 ORIOLEDB_PATCHSET_VERSION=${postgresql.patchset} all
31+
'';
3032
installPhase = ''
3133
runHook preInstall
3234

nix/ext/tests/orioledb.nix

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
{ self, pkgs }:
2+
let
3+
pname = "orioledb";
4+
inherit (pkgs) lib;
5+
postgresqlWithExtension =
6+
postgresql:
7+
let
8+
majorVersion = lib.versions.major postgresql.version;
9+
pkg = pkgs.buildEnv {
10+
name = "postgresql-${majorVersion}-${pname}";
11+
paths = [
12+
postgresql
13+
postgresql.lib
14+
self.packages.${pkgs.system}."psql_orioledb-17/exts/orioledb"
15+
];
16+
passthru = {
17+
inherit (postgresql) version psqlSchema;
18+
lib = pkg;
19+
withPackages = _: pkg;
20+
};
21+
nativeBuildInputs = [ pkgs.makeWrapper ];
22+
pathsToLink = [
23+
"/"
24+
"/bin"
25+
"/lib"
26+
];
27+
postBuild = ''
28+
wrapProgram $out/bin/postgres --set NIX_PGLIBDIR $out/lib
29+
wrapProgram $out/bin/pg_ctl --set NIX_PGLIBDIR $out/lib
30+
wrapProgram $out/bin/pg_upgrade --set NIX_PGLIBDIR $out/lib
31+
'';
32+
};
33+
in
34+
pkg;
35+
psql_orioledb = postgresqlWithExtension self.packages.${pkgs.system}.postgresql_orioledb-17;
36+
in
37+
self.inputs.nixpkgs.lib.nixos.runTest {
38+
name = pname;
39+
hostPkgs = pkgs;
40+
nodes.server =
41+
{ ... }:
42+
{
43+
virtualisation = {
44+
forwardPorts = [
45+
{
46+
from = "host";
47+
host.port = 13022;
48+
guest.port = 22;
49+
}
50+
];
51+
};
52+
services.openssh = {
53+
enable = true;
54+
};
55+
56+
services.postgresql = {
57+
enable = true;
58+
package = psql_orioledb;
59+
settings = {
60+
shared_preload_libraries = "orioledb";
61+
default_table_access_method = "orioledb";
62+
};
63+
initdbArgs = [
64+
"--allow-group-access"
65+
"--locale-provider=icu"
66+
"--encoding=UTF-8"
67+
"--icu-locale=en_US.UTF-8"
68+
];
69+
initialScript = pkgs.writeText "init-postgres-with-orioledb" ''
70+
CREATE EXTENSION orioledb CASCADE;
71+
'';
72+
};
73+
};
74+
testScript =
75+
{ ... }:
76+
''
77+
start_all()
78+
79+
server.wait_for_unit("multi-user.target")
80+
server.wait_for_unit("postgresql.service")
81+
'';
82+
}

nix/postgresql/generic.nix

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -131,18 +131,15 @@ let
131131
++ lib.optionals gssSupport [ libkrb5 ]
132132
++ lib.optionals stdenv'.isLinux [ linux-pam ]
133133
++ lib.optionals (!stdenv'.isDarwin) [ libossp_uuid ]
134-
++
135-
lib.optionals
136-
(isOrioleDB || (lib.versionAtLeast version "17"))
137-
[
138-
perl
139-
bison
140-
flex
141-
docbook_xsl
142-
docbook_xml_dtd_45
143-
docbook_xsl_ns
144-
libxslt
145-
];
134+
++ lib.optionals (isOrioleDB || (lib.versionAtLeast version "17")) [
135+
perl
136+
bison
137+
flex
138+
docbook_xsl
139+
docbook_xml_dtd_45
140+
docbook_xsl_ns
141+
libxslt
142+
];
146143

147144
nativeBuildInputs =
148145
[
@@ -292,13 +289,20 @@ let
292289
in
293290
{
294291
psqlSchema = lib.versions.major version;
292+
inherit revision;
295293

296294
withJIT = if jitSupport then this else jitToggle;
297295
withoutJIT = if jitSupport then jitToggle else this;
298296

299297
dlSuffix = if olderThan "16" then ".so" else stdenv.hostPlatform.extensions.sharedLibrary;
300298
inherit isOrioleDB;
301299

300+
patchset =
301+
if isOrioleDB then
302+
if revision != null then revision else builtins.elemAt (builtins.split "_" version) 2
303+
else
304+
null;
305+
302306
pkgs =
303307
let
304308
scope = {
@@ -411,7 +415,13 @@ let
411415
'';
412416

413417
passthru = {
414-
inherit (postgresql) version psqlSchema isOrioleDB;
418+
inherit (postgresql)
419+
version
420+
revision
421+
patchset
422+
psqlSchema
423+
isOrioleDB
424+
;
415425
};
416426
};
417427
in

0 commit comments

Comments
 (0)