1 { system ? builtins.currentSystem
3 , pkgs ? import ../.. { inherit system config; }
6 with import ../lib/testing-python.nix { inherit system pkgs; };
10 packages = builtins.attrNames (import ../../pkgs/servers/sql/postgresql pkgs);
12 mkJitTest = packageName: makeTest {
13 name = "${packageName}";
14 meta.maintainers = with lib.maintainers; [ ma27 ];
15 nodes.machine = { pkgs, lib, ... }: {
16 services.postgresql = {
19 package = pkgs.${packageName};
20 initialScript = pkgs.writeText "init.sql" ''
21 create table demo (id int);
22 insert into demo (id) select generate_series(1, 5);
28 machine.wait_for_unit("postgresql.service")
30 with subtest("JIT is enabled"):
31 machine.succeed("sudo -u postgres psql <<<'show jit;' | grep 'on'")
33 with subtest("Test JIT works fine"):
34 output = machine.succeed(
35 "cat ${pkgs.writeText "test.sql" ''
36 set jit_above_cost = 1;
37 EXPLAIN ANALYZE SELECT CONCAT('jit result = ', SUM(id)) FROM demo;
38 SELECT CONCAT('jit result = ', SUM(id)) from demo;
39 ''} | sudo -u postgres psql"
41 assert "JIT:" in output
42 assert "jit result = 15" in output
48 lib.genAttrs packages mkJitTest