mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-28 16:43:58 +00:00
68254e438c
This enables update scripts via buildPostgresqlExtension. Extensions must actively opt-out, if they don't support either the default configuration or the unstable configuration. To make the update script work, some extensions had to be changed to pull their code from GitHub instead. Those with PostgreSQL-style version tags (REL_X_Y) had to be changed to make src.rev the source of truth.
61 lines
1.8 KiB
Nix
61 lines
1.8 KiB
Nix
{ stdenv, lib, fetchFromGitHub, postgresql, boost182, postgresqlTestExtension, buildPostgresqlExtension }:
|
|
|
|
let
|
|
version = "1.7.0";
|
|
|
|
main_src = fetchFromGitHub {
|
|
name = "datasketches-postgresql";
|
|
owner = "apache";
|
|
repo = "datasketches-postgresql";
|
|
rev = "refs/tags/${version}";
|
|
hash = "sha256-W41uAs3W4V7c9O/wBw3rut65bcmY8EdQS1/tPszMGqA=";
|
|
};
|
|
|
|
cpp_src = fetchFromGitHub {
|
|
name = "datasketches-cpp";
|
|
owner = "apache";
|
|
repo = "datasketches-cpp";
|
|
rev = "refs/tags/5.0.2";
|
|
hash = "sha256-yGk1OckYipAgLTQK6w6p6EdHMxBIQSjPV/MMND3cDks=";
|
|
};
|
|
in
|
|
|
|
buildPostgresqlExtension (finalAttrs: {
|
|
pname = "apache_datasketches";
|
|
inherit version;
|
|
|
|
srcs = [ main_src cpp_src ];
|
|
|
|
sourceRoot = main_src.name;
|
|
|
|
buildInputs = [ boost182 ];
|
|
|
|
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 ];
|
|
};
|
|
})
|