From 00c8f312f6ebfdf1abc1bd978ea369b4ccd4d0f8 Mon Sep 17 00:00:00 2001 From: Elizabeth Murray Date: Wed, 23 Apr 2025 08:16:04 -0700 Subject: [PATCH 1/4] Upgrade pgrx version to 0.14.1 for rag extensions. --- exts/rag/Cargo.toml | 5 ++--- exts/rag_bge_small_en_v15/Cargo.toml | 5 ++--- exts/rag_bge_small_en_v15/src/lib.rs | 4 ++-- exts/rag_jina_reranker_v1_tiny_en/Cargo.toml | 5 ++--- exts/rag_jina_reranker_v1_tiny_en/src/lib.rs | 4 ++-- 5 files changed, 10 insertions(+), 13 deletions(-) diff --git a/exts/rag/Cargo.toml b/exts/rag/Cargo.toml index d2356ee..4d88704 100644 --- a/exts/rag/Cargo.toml +++ b/exts/rag/Cargo.toml @@ -12,7 +12,6 @@ path = "./src/bin/pgrx_embed.rs" [features] default = ["pg16"] -pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] @@ -24,7 +23,7 @@ pg_test = [] docx-rust = "0.1.8" htmd = "0.1.6" pdf-extract = "0.7.7" -pgrx = "0.12.6" +pgrx = version = "0.14.1" serde = "1.0.209" serde_json = "1.0.120" text-splitter = { version = "0.14.1" } @@ -32,7 +31,7 @@ unicode-normalization = "0.1.24" ureq = { version = "2.9.7", features = ["json"] } [dev-dependencies] -pgrx-tests = "0.12.6" +pgrx-tests = "0.14.1" [profile.dev] panic = "unwind" diff --git a/exts/rag_bge_small_en_v15/Cargo.toml b/exts/rag_bge_small_en_v15/Cargo.toml index 7c99894..6499122 100644 --- a/exts/rag_bge_small_en_v15/Cargo.toml +++ b/exts/rag_bge_small_en_v15/Cargo.toml @@ -12,7 +12,6 @@ path = "./src/bin/pgrx_embed.rs" [features] default = ["pg16"] -pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] @@ -26,7 +25,7 @@ fastembed = "=3.14.1" tokenizers = "0.19.1" text-splitter = { version = "0.14.1", features = ["tokenizers"] } serde_json = "1.0.120" -pgrx = "0.12.6" +pgrx = "0.14.1" tonic = "0.12.3" prost = "0.13.3" tokio = "1.40.0" @@ -46,7 +45,7 @@ ort-sys = { path = "../../lib/ort-2.0.0-rc.4/ort-sys" } tonic-build = "0.12.3" [dev-dependencies] -pgrx-tests = "0.12.6" +pgrx-tests = "0.14.1" [profile.dev] panic = "unwind" diff --git a/exts/rag_bge_small_en_v15/src/lib.rs b/exts/rag_bge_small_en_v15/src/lib.rs index 2ce8919..b0b7937 100644 --- a/exts/rag_bge_small_en_v15/src/lib.rs +++ b/exts/rag_bge_small_en_v15/src/lib.rs @@ -45,7 +45,7 @@ static PID: OnceLock = OnceLock::new(); static TEXT_EMBEDDING: tokio::sync::OnceCell = tokio::sync::OnceCell::const_new(); #[pg_guard] -pub extern "C" fn _PG_init() { +pub extern "C-unwind" fn _PG_init() { let pid = std::process::id() as i64; PID.set(pid) .expect_or_pg_err("Impossible concurrent access to set PID value"); @@ -129,7 +129,7 @@ impl EmbeddingGenerator for EmbeddingGeneratorStruct { #[pg_guard] #[no_mangle] -pub extern "C" fn background_main(arg: pg_sys::Datum) { +pub extern "C-unwind" fn background_main(arg: pg_sys::Datum) { let pid = unsafe { i64::from_polymorphic_datum(arg, false, pg_sys::INT8OID).unwrap_or_pg_err("No PID received") }; let name = BackgroundWorker::get_name(); log!("{ERR_PREFIX} {name} started, received PID {pid}"); diff --git a/exts/rag_jina_reranker_v1_tiny_en/Cargo.toml b/exts/rag_jina_reranker_v1_tiny_en/Cargo.toml index 2266eec..70f8222 100644 --- a/exts/rag_jina_reranker_v1_tiny_en/Cargo.toml +++ b/exts/rag_jina_reranker_v1_tiny_en/Cargo.toml @@ -12,7 +12,6 @@ path = "./src/bin/pgrx_embed.rs" [features] default = ["pg16"] -pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] @@ -23,7 +22,7 @@ remote_onnx = [] [dependencies] fastembed = "=3.14.1" -pgrx = "0.12.6" +pgrx = version = "0.14.1" tonic = "0.12.3" prost = "0.13.3" tokio = "1.40.0" @@ -43,7 +42,7 @@ ort-sys = { path = "../../lib/ort-2.0.0-rc.4/ort-sys" } tonic-build = "0.12.3" [dev-dependencies] -pgrx-tests = "0.12.6" +pgrx-tests = "0.14.1" [profile.dev] panic = "unwind" diff --git a/exts/rag_jina_reranker_v1_tiny_en/src/lib.rs b/exts/rag_jina_reranker_v1_tiny_en/src/lib.rs index 3ea96b4..0b8bc9b 100644 --- a/exts/rag_jina_reranker_v1_tiny_en/src/lib.rs +++ b/exts/rag_jina_reranker_v1_tiny_en/src/lib.rs @@ -44,7 +44,7 @@ static PID: OnceLock = OnceLock::new(); static TEXT_RERANK: tokio::sync::OnceCell = tokio::sync::OnceCell::const_new(); #[pg_guard] -pub extern "C" fn _PG_init() { +pub extern "C-unwind" fn _PG_init() { let pid = std::process::id() as i64; PID.set(pid) .expect_or_pg_err("Impossible concurrent access to set PID value"); @@ -133,7 +133,7 @@ impl Reranker for RerankerStruct { #[pg_guard] #[no_mangle] -pub extern "C" fn background_main(arg: pg_sys::Datum) { +pub extern "C-unwind" fn background_main(arg: pg_sys::Datum) { let pid = unsafe { i64::from_polymorphic_datum(arg, false, pg_sys::INT8OID).unwrap_or_pg_err("No PID received") }; let name = BackgroundWorker::get_name(); log!("{ERR_PREFIX} {name} started, received PID {pid}"); From 3994b9eee5ed47fb07c26dad1bce0227c92ef060 Mon Sep 17 00:00:00 2001 From: Elizabeth Murray Date: Wed, 23 Apr 2025 08:23:59 -0700 Subject: [PATCH 2/4] Update README.md with the correct pgrx version. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a42ced1..06d6ea1 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ cd lib/jina_reranker_v1_tiny_en && tar xzf model.onnx.tar.gz && cd ../.. Then (with up-to-date Rust installed): ```bash -cargo install --locked cargo-pgrx@0.12.6 +cargo install --locked cargo-pgrx@0.14.1 ``` Finally, inside each of the three folders inside `exts`: From 8abe8fa023265b7df67dd695f1c317f3ff206e8f Mon Sep 17 00:00:00 2001 From: Elizabeth Murray Date: Wed, 23 Apr 2025 10:35:09 -0700 Subject: [PATCH 3/4] Fix version string in pgrx line of Cargo.toml for rag extension. --- exts/rag/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exts/rag/Cargo.toml b/exts/rag/Cargo.toml index 4d88704..71be9a8 100644 --- a/exts/rag/Cargo.toml +++ b/exts/rag/Cargo.toml @@ -23,7 +23,7 @@ pg_test = [] docx-rust = "0.1.8" htmd = "0.1.6" pdf-extract = "0.7.7" -pgrx = version = "0.14.1" +pgrx = "0.14.1" serde = "1.0.209" serde_json = "1.0.120" text-splitter = { version = "0.14.1" } From 82a037642c25e8b5740a495a3fd8e83ecd061f6b Mon Sep 17 00:00:00 2001 From: Elizabeth Murray Date: Wed, 23 Apr 2025 10:37:21 -0700 Subject: [PATCH 4/4] Fix pgrx line of Cargo.toml in extension. --- exts/rag_jina_reranker_v1_tiny_en/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exts/rag_jina_reranker_v1_tiny_en/Cargo.toml b/exts/rag_jina_reranker_v1_tiny_en/Cargo.toml index 70f8222..366a2dd 100644 --- a/exts/rag_jina_reranker_v1_tiny_en/Cargo.toml +++ b/exts/rag_jina_reranker_v1_tiny_en/Cargo.toml @@ -22,7 +22,7 @@ remote_onnx = [] [dependencies] fastembed = "=3.14.1" -pgrx = version = "0.14.1" +pgrx = "0.14.1" tonic = "0.12.3" prost = "0.13.3" tokio = "1.40.0"