This version of hasql-pool is a simplified rewrite that doesn't use the resource-pool package. The major API changes are that idle connections are no longer timed out (and the corresponding setting is gone), and that `release` makes the pool unusable, where it used to remain usable and only flushed idle connections. We depend on a PostgREST fork of 0.7.2 that gives us reliable flushing, compare https://github.com/PostgREST/hasql-pool/pull/1 - hasql-pool 0.7 removes timing out of idle connections, so this change removes the db-pool-timeout option. Given that we were typically running with very high timeout settings, I don't anticipate the lack of timeout to introduce new issues, though we might want to consider introducing some retry-logic down the line when we encounter connection failures. - See https://github.com/PostgREST/postgrest/issues/2422 for a discussion on depending on a forked dependency. Besides adding the dependency to the nix overlay, we're also adding it to stack.yaml and a new cabal.project to allow stack/cabal users to build the project.
55 lines
1.6 KiB
Nix
55 lines
1.6 KiB
Nix
{ compiler, extraOverrides ? (final: prev: { }) }:
|
|
|
|
self: super:
|
|
let
|
|
inherit (self.haskell) lib;
|
|
|
|
overrides =
|
|
final: prev:
|
|
rec {
|
|
# To pin custom versions of Haskell packages:
|
|
# protolude =
|
|
# prev.callHackageDirect
|
|
# {
|
|
# pkg = "protolude";
|
|
# ver = "0.3.0";
|
|
# sha256 = "0iwh4wsjhb7pms88lw1afhdal9f86nrrkkvv65f9wxbd1b159n72";
|
|
# }
|
|
# { };
|
|
#
|
|
# To get the sha256:
|
|
# nix-prefetch-url --unpack https://hackage.haskell.org/package/protolude-0.3.0/protolude-0.3.0.tar.gz
|
|
|
|
# To temporarily pin unreleased versions from GitHub:
|
|
# <name> =
|
|
# prev.callCabal2nixWithOptions "<name>" (super.fetchFromGitHub {
|
|
# owner = "<owner>";
|
|
# repo = "<repo>";
|
|
# rev = "<commit>";
|
|
# sha256 = "<sha256>";
|
|
# }) "--subpath=<subpath>" {};
|
|
#
|
|
# To get the sha256:
|
|
# nix-prefetch-url --unpack https://github.com/<owner>/<repo>/archive/<commit>.tar.gz
|
|
|
|
hasql-pool = lib.dontCheck (
|
|
prev.callCabal2nix "hasql-pool"
|
|
(super.fetchFromGitHub {
|
|
owner = "PostgREST";
|
|
repo = "hasql-pool";
|
|
rev = "4d462c4d47d762effefc7de6c85eaed55f144f1d"; # master as of 2022-08-26
|
|
sha256 = "sha256-UwX1PynimrQHm1KCs4BQXMwYYY3h4T5UAkgtEJ0EZQQ=";
|
|
})
|
|
{ });
|
|
} // extraOverrides final prev;
|
|
in
|
|
{
|
|
haskell =
|
|
super.haskell // {
|
|
packages = super.haskell.packages // {
|
|
"${compiler}" =
|
|
super.haskell.packages."${compiler}".override { inherit overrides; };
|
|
};
|
|
};
|
|
}
|