at 25.11-pre 1.4 kB view raw
1{ 2 pkgs, 3 makeTest, 4 genTests, 5}: 6 7let 8 inherit (pkgs) lib; 9 10 makeTestFor = 11 package: 12 makeTest { 13 name = "postgresql-jit-${package.name}"; 14 meta.maintainers = with lib.maintainers; [ ma27 ]; 15 16 nodes.machine = 17 { pkgs, ... }: 18 { 19 services.postgresql = { 20 inherit package; 21 enable = true; 22 enableJIT = true; 23 initialScript = pkgs.writeText "init.sql" '' 24 create table demo (id int); 25 insert into demo (id) select generate_series(1, 5); 26 ''; 27 }; 28 }; 29 30 testScript = '' 31 machine.start() 32 machine.wait_for_unit("postgresql.service") 33 34 with subtest("JIT is enabled"): 35 machine.succeed("sudo -u postgres psql <<<'show jit;' | grep 'on'") 36 37 with subtest("Test JIT works fine"): 38 output = machine.succeed( 39 "cat ${pkgs.writeText "test.sql" '' 40 set jit_above_cost = 1; 41 EXPLAIN ANALYZE SELECT CONCAT('jit result = ', SUM(id)) FROM demo; 42 SELECT CONCAT('jit result = ', SUM(id)) from demo; 43 ''} | sudo -u postgres psql" 44 ) 45 assert "JIT:" in output 46 assert "jit result = 15" in output 47 48 machine.shutdown() 49 ''; 50 }; 51in 52genTests { 53 inherit makeTestFor; 54}