From 722c7ede955a6a361ef937d09f76314aa1b2d4df Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Sat, 23 Aug 2025 01:41:17 +0100 Subject: [PATCH] postgresqlPackages.vectorchord: 0.4.2 -> 0.5.3 Upstream has dropped jemalloc in favour of mimalloc. --- ...001-read-clang-flags-from-environment.diff | 29 ----------- .../vectorchord/0002-add-feature-flags.diff | 24 --------- .../postgresql/ext/vectorchord/package.nix | 52 +++---------------- 3 files changed, 6 insertions(+), 99 deletions(-) delete mode 100644 pkgs/servers/sql/postgresql/ext/vectorchord/0001-read-clang-flags-from-environment.diff delete mode 100644 pkgs/servers/sql/postgresql/ext/vectorchord/0002-add-feature-flags.diff diff --git a/pkgs/servers/sql/postgresql/ext/vectorchord/0001-read-clang-flags-from-environment.diff b/pkgs/servers/sql/postgresql/ext/vectorchord/0001-read-clang-flags-from-environment.diff deleted file mode 100644 index 79b48513e29a..000000000000 --- a/pkgs/servers/sql/postgresql/ext/vectorchord/0001-read-clang-flags-from-environment.diff +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/crates/simd/build.rs b/crates/simd/build.rs -index 12ce198..aed5588 100644 ---- a/crates/simd/build.rs -+++ b/crates/simd/build.rs -@@ -17,17 +17,24 @@ use std::error::Error; - - fn main() -> Result<(), Box> { - println!("cargo::rerun-if-changed=cshim"); -+ println!("cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS"); - let target_arch = var("CARGO_CFG_TARGET_ARCH")?; - match target_arch.as_str() { - "aarch64" => { - let mut build = cc::Build::new(); - build.file("./cshim/aarch64.c"); -+ build.compiler("@clang@"); -+ // read env var set by rustPlatform.bindgenHook -+ build.try_flags_from_environment("BINDGEN_EXTRA_CLANG_ARGS").expect("the BINDGEN_EXTRA_CLANG_ARGS environment variable must be specified and UTF-8"); - build.opt_level(3); - build.compile("simd_cshim"); - } - "x86_64" => { - let mut build = cc::Build::new(); - build.file("./cshim/x86_64.c"); -+ build.compiler("@clang@"); -+ // read env var set by rustPlatform.bindgenHook -+ build.try_flags_from_environment("BINDGEN_EXTRA_CLANG_ARGS").expect("the BINDGEN_EXTRA_CLANG_ARGS environment variable must be specified and UTF-8"); - build.opt_level(3); - build.compile("simd_cshim"); - } diff --git a/pkgs/servers/sql/postgresql/ext/vectorchord/0002-add-feature-flags.diff b/pkgs/servers/sql/postgresql/ext/vectorchord/0002-add-feature-flags.diff deleted file mode 100644 index 5aca4dae6233..000000000000 --- a/pkgs/servers/sql/postgresql/ext/vectorchord/0002-add-feature-flags.diff +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/crates/algorithm/src/lib.rs b/crates/algorithm/src/lib.rs -index 853a280..f88acbf 100644 ---- a/crates/algorithm/src/lib.rs -+++ b/crates/algorithm/src/lib.rs -@@ -13,6 +13,7 @@ - // Copyright (c) 2025 TensorChord Inc. - - #![feature(select_unpredictable)] -+#![feature(let_chains)] - #![allow(clippy::type_complexity)] - - mod build; -diff --git a/src/lib.rs b/src/lib.rs -index 654b4d1..2b11d03 100644 ---- a/src/lib.rs -+++ b/src/lib.rs -@@ -13,6 +13,7 @@ - // Copyright (c) 2025 TensorChord Inc. - - #![allow(unsafe_code)] -+#![feature(let_chains)] - - mod datatype; - mod index; diff --git a/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix b/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix index 99c7f5c60267..0cd70bff768f 100644 --- a/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix +++ b/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix @@ -1,68 +1,34 @@ { buildPgrxExtension, - cargo-pgrx_0_14_1, - clang, + cargo-pgrx_0_16_0, fetchFromGitHub, lib, nix-update-script, postgresql, postgresqlTestExtension, - replaceVars, - rust-jemalloc-sys, - stdenv, }: -let - # Follow upstream and use rust-jemalloc-sys on linux aarch64 and x86_64 - # Additionally, disable init exec TLS, since it causes issues with postgres. - # https://github.com/tensorchord/VectorChord/blob/0.4.2/Cargo.toml#L43-L44 - useSystemJemalloc = - stdenv.hostPlatform.isLinux && (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isx86_64); - rust-jemalloc-sys' = ( - rust-jemalloc-sys.override (old: { - jemalloc = old.jemalloc.override { disableInitExecTls = true; }; - }) - ); -in buildPgrxExtension (finalAttrs: { inherit postgresql; - cargo-pgrx = cargo-pgrx_0_14_1; + cargo-pgrx = cargo-pgrx_0_16_0; pname = "vectorchord"; - version = "0.4.2"; + version = "0.5.3"; src = fetchFromGitHub { owner = "tensorchord"; repo = "vectorchord"; tag = finalAttrs.version; - hash = "sha256-EdMuSNcWwCBsAY0e3d0WVug1KBWYWldvKStF6cf/uRs="; + hash = "sha256-+c1Uf/3rp+HuthDVPLloJF2MQPW3Xho897Z2eAnG6aM="; }; - patches = [ - # Tell the `simd` crate to use the flags from the rust bindgen hook - (replaceVars ./0001-read-clang-flags-from-environment.diff { - clang = lib.getExe clang; - }) - # Add feature flags needed for features not yet stabilised in rustc stable - ./0002-add-feature-flags.diff - ]; - - buildInputs = lib.optionals useSystemJemalloc [ - rust-jemalloc-sys' - ]; - - cargoHash = "sha256-8NwfsJn5dnvog3fexzLmO3v7/3+L7xtv+PHWfCCWoHY="; + cargoHash = "sha256-/EcQgQ6J9hg4BsniRX7OMwEYy5EtVeT6Q/+3mAkyCH8="; # Include upgrade scripts in the final package - # https://github.com/tensorchord/VectorChord/blob/0.4.2/crates/make/src/main.rs#L224 + # https://github.com/tensorchord/VectorChord/blob/0.5.0/crates/make/src/main.rs#L366 postInstall = '' cp sql/upgrade/* $out/share/postgresql/extension/ ''; - env = { - # Bypass rust nightly features not being available on rust stable - RUSTC_BOOTSTRAP = 1; - }; - # This crate does not have the "pg_test" feature usePgTestCheckFeature = false; @@ -123,12 +89,6 @@ buildPgrxExtension (finalAttrs: { }; meta = { - # PostgreSQL 18 is not yet supported - # Will be supported in the next release (likely 0.5.0), as it's already supported in the main branch - # Check after next package update. - broken = lib.warnIf ( - finalAttrs.version != "0.4.2" - ) "Is postgresql18Packages.vectorchord still broken?" (lib.versionAtLeast postgresql.version "18"); changelog = "https://github.com/tensorchord/VectorChord/releases/tag/${finalAttrs.version}"; description = "Scalable, fast, and disk-friendly vector search in Postgres, the successor of pgvecto.rs"; homepage = "https://github.com/tensorchord/VectorChord";