Files
nixpkgs/pkgs/servers/sql/postgresql/ext/apache_datasketches.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

72 lines
1.8 KiB
Nix

{
boost186,
fetchFromGitHub,
lib,
postgresql,
postgresqlBuildExtension,
postgresqlTestExtension,
}:
let
version = "1.7.0";
main_src = fetchFromGitHub {
name = "datasketches-postgresql";
owner = "apache";
repo = "datasketches-postgresql";
tag = version;
hash = "sha256-W41uAs3W4V7c9O/wBw3rut65bcmY8EdQS1/tPszMGqA=";
};
cpp_src = fetchFromGitHub {
name = "datasketches-cpp";
owner = "apache";
repo = "datasketches-cpp";
tag = "5.0.2";
hash = "sha256-yGk1OckYipAgLTQK6w6p6EdHMxBIQSjPV/MMND3cDks=";
};
in
postgresqlBuildExtension (finalAttrs: {
pname = "apache_datasketches";
inherit version;
srcs = [
main_src
cpp_src
];
sourceRoot = main_src.name;
# fails to build with boost 1.87
buildInputs = [ boost186 ];
patchPhase = ''
runHook prePatch
cp -r ../${cpp_src.name} .
runHook postPatch
'';
enableUpdateScript = false;
passthru.tests.extension = postgresqlTestExtension {
inherit (finalAttrs) finalPackage;
sql = ''
CREATE EXTENSION datasketches;
SELECT hll_sketch_to_string(hll_sketch_build(1));
'';
};
meta = {
description = "PostgreSQL extension providing approximate algorithms for distinct item counts, quantile estimation and frequent items detection";
longDescription = ''
apache_datasketches is an extension to support approximate algorithms on PostgreSQL. The implementation
is based on the Apache Datasketches CPP library, and provides support for HyperLogLog,
Compressed Probabilistic Counting, KLL, Frequent strings, and Theta sketches.
'';
homepage = "https://datasketches.apache.org/";
platforms = postgresql.meta.platforms;
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ mmusnjak ];
};
})