From 35d58d9d35b6dfcd0783f8be1c8820f9fa007c43 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Mon, 17 Apr 2023 15:58:12 -0700 Subject: [PATCH 1/6] Rename pgx to pgrx --- pgml-extension/Cargo.lock | 50 +++++++++--------- pgml-extension/Cargo.toml | 16 +++--- pgml-extension/Dockerfile | 4 +- pgml-extension/control | 2 +- pgml-extension/docker/Cargo.toml.cuda | 18 +++---- pgml-extension/docker/Cargo.toml.no-python | 18 +++---- pgml-extension/sql/setup_examples.sql | 2 +- pgml-extension/src/api.rs | 10 ++-- pgml-extension/src/bindings/lightgbm.rs | 2 +- pgml-extension/src/bindings/linfa.rs | 2 +- pgml-extension/src/bindings/mod.rs | 2 +- pgml-extension/src/bindings/transformers.rs | 2 +- pgml-extension/src/bindings/xgboost.rs | 2 +- pgml-extension/src/lib.rs | 2 +- pgml-extension/src/orm/algorithm.rs | 2 +- pgml-extension/src/orm/dataset.rs | 2 +- pgml-extension/src/orm/file.rs | 2 +- pgml-extension/src/orm/model.rs | 56 ++++++++++----------- pgml-extension/src/orm/project.rs | 2 +- pgml-extension/src/orm/runtime.rs | 2 +- pgml-extension/src/orm/sampling.rs | 2 +- pgml-extension/src/orm/search.rs | 2 +- pgml-extension/src/orm/snapshot.rs | 2 +- pgml-extension/src/orm/status.rs | 2 +- pgml-extension/src/orm/strategy.rs | 2 +- pgml-extension/src/orm/task.rs | 4 +- pgml-extension/src/vectors.rs | 2 +- pgml-extension/tests/test.sql | 2 +- 28 files changed, 108 insertions(+), 108 deletions(-) diff --git a/pgml-extension/Cargo.lock b/pgml-extension/Cargo.lock index a731ecb6c..eb5962c3b 100644 --- a/pgml-extension/Cargo.lock +++ b/pgml-extension/Cargo.lock @@ -1701,9 +1701,9 @@ dependencies = [ "once_cell", "openblas-src", "parking_lot", - "pgx", - "pgx-pg-sys", - "pgx-tests", + "pgrx", + "pgrx-pg-sys", + "pgrx-tests", "pyo3", "rand", "rmp-serde", @@ -1715,10 +1715,10 @@ dependencies = [ ] [[package]] -name = "pgx" +name = "pgrx" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2947326bd9a80ec122207f0a59367592f79c053390d6ee961fe17a71ef1e3d" +checksum = "520e5f1b0c97fa07446eddf2e9c8a410ced351014a2339ef680bfc177d989b55" dependencies = [ "atomic-traits", "bitflags", @@ -1726,9 +1726,9 @@ dependencies = [ "heapless", "libc", "once_cell", - "pgx-macros", - "pgx-pg-sys", - "pgx-sql-entity-graph", + "pgrx-macros", + "pgrx-pg-sys", + "pgrx-sql-entity-graph", "seahash", "seq-macro", "serde", @@ -1742,22 +1742,22 @@ dependencies = [ ] [[package]] -name = "pgx-macros" +name = "pgrx-macros" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bf5c70a467b39c1a67a2e1ec7acc4ba8bb32e5bf2d3dead2d89b8442f31ff9" +checksum = "b28d2441f5e36140541868ef5fb92b964e9c10e242fe2cfdcb464f05afd7fd16" dependencies = [ - "pgx-sql-entity-graph", + "pgrx-sql-entity-graph", "proc-macro2", "quote 1.0.26", "syn 1.0.109", ] [[package]] -name = "pgx-pg-config" +name = "pgrx-pg-config" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020f2f1e0805a60321a375d0f27d771678d59b808bbb5f632c42607a661ab63a" +checksum = "bea222a7b5241102003693f48ee187878e92a5d4f6c5f344e00786899253978d" dependencies = [ "dirs 4.0.0", "eyre", @@ -1771,19 +1771,19 @@ dependencies = [ ] [[package]] -name = "pgx-pg-sys" +name = "pgrx-pg-sys" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2371dc1ee5c6f32b9a862fe1706e7ddf862003f167d21d9886b4b4f3f2391e" +checksum = "9ad42206dbd7780516c159da71a46b6785ee958595adebc87cbfb21ceb18e9cf" dependencies = [ "bindgen 0.60.1", "eyre", "libc", "memoffset 0.8.0", "once_cell", - "pgx-macros", - "pgx-pg-config", - "pgx-sql-entity-graph", + "pgrx-macros", + "pgrx-pg-config", + "pgrx-sql-entity-graph", "proc-macro2", "quote 1.0.26", "serde", @@ -1793,10 +1793,10 @@ dependencies = [ ] [[package]] -name = "pgx-sql-entity-graph" +name = "pgrx-sql-entity-graph" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5b7304665fe3a052dd353a08d013c4d5d780a49be8b60d27c430492b1d442e" +checksum = "87dd0800eb8ab52d161d57db297aaa00b2debdba77f738ff011664c8751e92c9" dependencies = [ "convert_case", "eyre", @@ -1808,19 +1808,19 @@ dependencies = [ ] [[package]] -name = "pgx-tests" +name = "pgrx-tests" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2dfa440a295e0a6bc1a7c87af83dc5e9f7a85c05d28b9fa77f1793f6883f917" +checksum = "e4ab1f3b9bbcdbea070d439e49ad146ea8a5a25104128a8b7f8522d21445a940" dependencies = [ "clap-cargo", "eyre", "libc", "once_cell", "owo-colors", - "pgx", - "pgx-macros", - "pgx-pg-config", + "pgrx", + "pgrx-macros", + "pgrx-pg-config", "postgres", "regex", "serde", diff --git a/pgml-extension/Cargo.toml b/pgml-extension/Cargo.toml index 2e68aa17c..e688ea2c4 100644 --- a/pgml-extension/Cargo.toml +++ b/pgml-extension/Cargo.toml @@ -8,18 +8,18 @@ crate-type = ["cdylib"] [features] default = ["pg15", "python"] -pg11 = ["pgx/pg11", "pgx-tests/pg11" ] -pg12 = ["pgx/pg12", "pgx-tests/pg12" ] -pg13 = ["pgx/pg13", "pgx-tests/pg13" ] -pg14 = ["pgx/pg14", "pgx-tests/pg14" ] -pg15 = ["pgx/pg15", "pgx-tests/pg15" ] +pg11 = ["pgrx/pg11", "pgrx-tests/pg11" ] +pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] +pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] +pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] +pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] pg_test = [] python = ["pyo3"] cuda = ["xgboost/cuda", "lightgbm/cuda"] [dependencies] -pgx = "=0.7.4" -pgx-pg-sys = "=0.7.4" +pgrx = "=0.7.4" +pgrx-pg-sys = "=0.7.4" xgboost = { git="https://github.com/postgresml/rust-xgboost.git", branch = "master" } once_cell = "1" rand = "0.8" @@ -48,7 +48,7 @@ flate2 = "1.0" csv = "1.1" [dev-dependencies] -pgx-tests = "=0.7.4" +pgrx-tests = "=0.7.4" [profile.dev] panic = "unwind" diff --git a/pgml-extension/Dockerfile b/pgml-extension/Dockerfile index 25f336260..1c61f9e99 100644 --- a/pgml-extension/Dockerfile +++ b/pgml-extension/Dockerfile @@ -37,8 +37,8 @@ RUN useradd postgresml -m -s /bin/bash -G sudo RUN echo 'postgresml ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers USER postgresml RUN curl https://sh.rustup.rs -sSf | sh -s -- -y -RUN $HOME/.cargo/bin/cargo install cargo-pgx --version "0.7.4" -RUN $HOME/.cargo/bin/cargo pgx init +RUN $HOME/.cargo/bin/cargo install cargo-pgrx --version "0.7.4" +RUN $HOME/.cargo/bin/cargo pgrx init RUN curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null RUN sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' RUN sudo apt update diff --git a/pgml-extension/control b/pgml-extension/control index 640540353..7ce5f6059 100644 --- a/pgml-extension/control +++ b/pgml-extension/control @@ -11,5 +11,5 @@ Description: PostgresML - machine learning with PostgreSQL learning directly in the database. It allows to both train algorithms on tables or views, and to predict novel datapoints using only SQL. - The extension is written in Rust using tcdi/pgx with some additional + The extension is written in Rust using tcdi/pgrx with some additional functionality written in Python & PLPython. diff --git a/pgml-extension/docker/Cargo.toml.cuda b/pgml-extension/docker/Cargo.toml.cuda index 97102f767..4f460c4e3 100644 --- a/pgml-extension/docker/Cargo.toml.cuda +++ b/pgml-extension/docker/Cargo.toml.cuda @@ -8,19 +8,19 @@ crate-type = ["cdylib"] [features] default = ["pg15", "python", "cuda"] -pg10 = ["pgx/pg10", "pgx-tests/pg10" ] -pg11 = ["pgx/pg11", "pgx-tests/pg11" ] -pg12 = ["pgx/pg12", "pgx-tests/pg12" ] -pg13 = ["pgx/pg13", "pgx-tests/pg13" ] -pg14 = ["pgx/pg14", "pgx-tests/pg14" ] -pg15 = ["pgx/pg15", "pgx-tests/pg15" ] +pg10 = ["pgrx/pg10", "pgrx-tests/pg10" ] +pg11 = ["pgrx/pg11", "pgrx-tests/pg11" ] +pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] +pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] +pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] +pg15 = ["pgrx/pg15", "pgrx-tests/pg15" ] pg_test = [] python = ["pyo3"] cuda = ["xgboost/cuda", "lightgbm/cuda"] [dependencies] -pgx = "=0.7.1" -pgx-pg-sys = "=0.7.1" +pgrx = "=0.7.1" +pgrx-pg-sys = "=0.7.1" xgboost = { git="https://github.com/postgresml/rust-xgboost.git", branch = "master" } once_cell = "1" rand = "0.8" @@ -49,7 +49,7 @@ flate2 = "1.0" csv = "1.1" [dev-dependencies] -pgx-tests = "=0.7.1" +pgrx-tests = "=0.7.1" [profile.dev] panic = "unwind" diff --git a/pgml-extension/docker/Cargo.toml.no-python b/pgml-extension/docker/Cargo.toml.no-python index e4dbf82cd..d2224c4df 100644 --- a/pgml-extension/docker/Cargo.toml.no-python +++ b/pgml-extension/docker/Cargo.toml.no-python @@ -8,19 +8,19 @@ crate-type = ["cdylib"] [features] default = ["pg15"] -pg10 = ["pgx/pg10", "pgx-tests/pg10" ] -pg11 = ["pgx/pg11", "pgx-tests/pg11" ] -pg12 = ["pgx/pg12", "pgx-tests/pg12" ] -pg13 = ["pgx/pg13", "pgx-tests/pg13" ] -pg14 = ["pgx/pg14", "pgx-tests/pg14" ] -pg14 = ["pgx/pg15", "pgx-tests/pg15" ] +pg10 = ["pgrx/pg10", "pgrx-tests/pg10" ] +pg11 = ["pgrx/pg11", "pgrx-tests/pg11" ] +pg12 = ["pgrx/pg12", "pgrx-tests/pg12" ] +pg13 = ["pgrx/pg13", "pgrx-tests/pg13" ] +pg14 = ["pgrx/pg14", "pgrx-tests/pg14" ] +pg14 = ["pgrx/pg15", "pgrx-tests/pg15" ] pg_test = [] python = ["pyo3"] cuda = ["xgboost/cuda", "lightgbm/cuda"] [dependencies] -pgx = "=0.7.1" -pgx-pg-sys = "=0.7.1" +pgrx = "=0.7.1" +pgrx-pg-sys = "=0.7.1" xgboost = { git="https://github.com/postgresml/rust-xgboost.git", branch = "master" } once_cell = "1" rand = "0.8" @@ -49,7 +49,7 @@ flate2 = "1.0" csv = "1.1" [dev-dependencies] -pgx-tests = "=0.7.1" +pgrx-tests = "=0.7.1" [profile.dev] panic = "unwind" diff --git a/pgml-extension/sql/setup_examples.sql b/pgml-extension/sql/setup_examples.sql index af696af89..872588f1a 100644 --- a/pgml-extension/sql/setup_examples.sql +++ b/pgml-extension/sql/setup_examples.sql @@ -3,7 +3,7 @@ --- --- Usage: --- ---- $ cargo pgx run --release +--- $ cargo pgrx run --release --- $ psql -P pager-off -h localhost -p 28813 -d pgml -f sql/setup_examples.sql --- \set ON_ERROR_STOP true diff --git a/pgml-extension/src/api.rs b/pgml-extension/src/api.rs index 7f09fb8c8..cd8538c0c 100644 --- a/pgml-extension/src/api.rs +++ b/pgml-extension/src/api.rs @@ -3,8 +3,8 @@ use std::fmt::Write; use std::str::FromStr; use ndarray::Zip; -use pgx::iter::{SetOfIterator, TableIterator}; -use pgx::*; +use pgrx::iter::{SetOfIterator, TableIterator}; +use pgrx::*; #[cfg(feature = "python")] use pyo3::prelude::*; @@ -464,7 +464,7 @@ fn predict_batch(project_name: &str, features: Vec) -> SetOfIterator<'stati } #[pg_extern(strict, name = "predict")] -fn predict_row(project_name: &str, row: pgx::datum::AnyElement) -> f32 { +fn predict_row(project_name: &str, row: pgrx::datum::AnyElement) -> f32 { predict_model_row(Project::get_deployed_model_id(project_name), row) } @@ -489,7 +489,7 @@ fn predict_model_batch(model_id: i64, features: Vec) -> Vec { } #[pg_extern(strict, name = "predict")] -fn predict_model_row(model_id: i64, row: pgx::datum::AnyElement) -> f32 { +fn predict_model_row(model_id: i64, row: pgrx::datum::AnyElement) -> f32 { let model = Model::find_cached(model_id); let snapshot = &model.snapshot; let numeric_encoded_features = model.numeric_encode_features(&[row]); @@ -534,7 +534,7 @@ fn load_dataset( limit: default!(Option, "NULL"), kwargs: default!(JsonB, "'{}'"), ) -> TableIterator<'static, (name!(table_name, String), name!(rows, i64))> { - // cast limit since pgx doesn't support usize + // cast limit since pgrx doesn't support usize let limit: Option = limit.map(|limit| limit.try_into().unwrap()); let (name, rows) = match source { "breast_cancer" => dataset::load_breast_cancer(limit), diff --git a/pgml-extension/src/bindings/lightgbm.rs b/pgml-extension/src/bindings/lightgbm.rs index e5795080e..65825f4ae 100644 --- a/pgml-extension/src/bindings/lightgbm.rs +++ b/pgml-extension/src/bindings/lightgbm.rs @@ -3,7 +3,7 @@ use crate::orm::dataset::Dataset; use crate::orm::task::Task; use crate::orm::Hyperparams; use lightgbm; -use pgx::*; +use pgrx::*; use serde_json::json; pub struct Estimator { diff --git a/pgml-extension/src/bindings/linfa.rs b/pgml-extension/src/bindings/linfa.rs index 420337208..8c358e7f6 100644 --- a/pgml-extension/src/bindings/linfa.rs +++ b/pgml-extension/src/bindings/linfa.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize}; use super::Bindings; use crate::orm::*; -use pgx::*; +use pgrx::*; #[derive(Debug, Serialize, Deserialize)] pub struct LinearRegression { diff --git a/pgml-extension/src/bindings/mod.rs b/pgml-extension/src/bindings/mod.rs index a1d35526a..6f62ebd34 100644 --- a/pgml-extension/src/bindings/mod.rs +++ b/pgml-extension/src/bindings/mod.rs @@ -1,7 +1,7 @@ use std::fmt::Debug; #[allow(unused_imports)] // used for test macros -use pgx::*; +use pgrx::*; use crate::orm::*; diff --git a/pgml-extension/src/bindings/transformers.rs b/pgml-extension/src/bindings/transformers.rs index 504202ba8..95b9ab298 100644 --- a/pgml-extension/src/bindings/transformers.rs +++ b/pgml-extension/src/bindings/transformers.rs @@ -4,7 +4,7 @@ use std::path::PathBuf; use std::str::FromStr; use once_cell::sync::Lazy; -use pgx::*; +use pgrx::*; use pyo3::prelude::*; use pyo3::types::PyTuple; diff --git a/pgml-extension/src/bindings/xgboost.rs b/pgml-extension/src/bindings/xgboost.rs index b7bebd91d..2eafc6839 100644 --- a/pgml-extension/src/bindings/xgboost.rs +++ b/pgml-extension/src/bindings/xgboost.rs @@ -13,7 +13,7 @@ use crate::orm::Hyperparams; use crate::bindings::Bindings; -use pgx::*; +use pgrx::*; #[pg_extern] fn xgboost_version() -> String { diff --git a/pgml-extension/src/lib.rs b/pgml-extension/src/lib.rs index a692ce368..e47825ad2 100644 --- a/pgml-extension/src/lib.rs +++ b/pgml-extension/src/lib.rs @@ -4,7 +4,7 @@ extern crate openblas_src; extern crate serde; extern crate signal_hook; -use pgx::*; +use pgrx::*; pub const VERSION: &str = env!("CARGO_PKG_VERSION"); diff --git a/pgml-extension/src/orm/algorithm.rs b/pgml-extension/src/orm/algorithm.rs index 277e90147..098e04adb 100644 --- a/pgml-extension/src/orm/algorithm.rs +++ b/pgml-extension/src/orm/algorithm.rs @@ -1,4 +1,4 @@ -use pgx::*; +use pgrx::*; use serde::Deserialize; #[derive(PostgresEnum, Copy, Clone, Eq, PartialEq, Debug, Deserialize)] diff --git a/pgml-extension/src/orm/dataset.rs b/pgml-extension/src/orm/dataset.rs index 8092522ab..92d20369c 100644 --- a/pgml-extension/src/orm/dataset.rs +++ b/pgml-extension/src/orm/dataset.rs @@ -1,7 +1,7 @@ use std::fmt::{Display, Formatter}; use flate2::read::GzDecoder; -use pgx::*; +use pgrx::*; use serde::Deserialize; #[derive(Debug)] diff --git a/pgml-extension/src/orm/file.rs b/pgml-extension/src/orm/file.rs index 89fa059c5..121243661 100644 --- a/pgml-extension/src/orm/file.rs +++ b/pgml-extension/src/orm/file.rs @@ -4,7 +4,7 @@ use std::str::FromStr; use std::sync::Arc; use once_cell::sync::Lazy; -use pgx::*; +use pgrx::*; use crate::bindings::Bindings; diff --git a/pgml-extension/src/orm/model.rs b/pgml-extension/src/orm/model.rs index bc9fbd7c3..9866f5c33 100644 --- a/pgml-extension/src/orm/model.rs +++ b/pgml-extension/src/orm/model.rs @@ -10,8 +10,8 @@ use indexmap::IndexMap; use itertools::{izip, Itertools}; use ndarray::ArrayView1; use once_cell::sync::Lazy; -use pgx::heap_tuple::PgHeapTuple; -use pgx::*; +use pgrx::heap_tuple::PgHeapTuple; +use pgrx::*; use rand::prelude::SliceRandom; use serde_json::json; @@ -928,13 +928,13 @@ impl Model { ).unwrap(); } - pub fn numeric_encode_features(&self, rows: &[pgx::datum::AnyElement]) -> Vec { - // TODO handle FLOAT4[] as if it were pgx::datum::AnyElement, skipping all this, and going straight to predict + pub fn numeric_encode_features(&self, rows: &[pgrx::datum::AnyElement]) -> Vec { + // TODO handle FLOAT4[] as if it were pgrx::datum::AnyElement, skipping all this, and going straight to predict let mut features = Vec::new(); // TODO pre-allocate space let columns = &self.snapshot.columns; for row in rows { match row.oid() { - pgx_pg_sys::RECORDOID => { + pgrx_pg_sys::RECORDOID => { let tuple = unsafe { PgHeapTuple::from_composite_datum(row.datum()) }; for index in 1..tuple.len() + 1 { let column = &columns[index - 1]; @@ -944,19 +944,19 @@ impl Model { match &column.statistics.categories { Some(_categories) => { let key = match attribute.atttypid { - pgx_pg_sys::UNKNOWNOID => { + pgrx_pg_sys::UNKNOWNOID => { error!("Type information missing for column: {:?}. If this is intended to be a TEXT or other categorical column, you will need to explicitly cast it, e.g. change `{:?}` to `CAST({:?} AS TEXT)`.", column.name, column.name, column.name); } - pgx_pg_sys::TEXTOID - | pgx_pg_sys::VARCHAROID - | pgx_pg_sys::BPCHAROID => { + pgrx_pg_sys::TEXTOID + | pgrx_pg_sys::VARCHAROID + | pgrx_pg_sys::BPCHAROID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); element .unwrap() .unwrap_or(snapshot::NULL_CATEGORY_KEY.to_string()) } - pgx_pg_sys::BOOLOID => { + pgrx_pg_sys::BOOLOID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); element @@ -965,7 +965,7 @@ impl Model { k.to_string() }) } - pgx_pg_sys::INT2OID => { + pgrx_pg_sys::INT2OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); element @@ -974,7 +974,7 @@ impl Model { k.to_string() }) } - pgx_pg_sys::INT4OID => { + pgrx_pg_sys::INT4OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); element @@ -983,7 +983,7 @@ impl Model { k.to_string() }) } - pgx_pg_sys::INT8OID => { + pgrx_pg_sys::INT8OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); element @@ -992,7 +992,7 @@ impl Model { k.to_string() }) } - pgx_pg_sys::FLOAT4OID => { + pgrx_pg_sys::FLOAT4OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); element @@ -1001,7 +1001,7 @@ impl Model { k.to_string() }) } - pgx_pg_sys::FLOAT8OID => { + pgrx_pg_sys::FLOAT8OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); element @@ -1020,82 +1020,82 @@ impl Model { } None => { match attribute.atttypid { - pgx_pg_sys::UNKNOWNOID => { + pgrx_pg_sys::UNKNOWNOID => { error!("Type information missing for column: {:?}. If this is intended to be a FLOAT4 or other numeric column, you will need to explicitly cast it, e.g. change `{:?}` to `CAST({:?} AS FLOAT4)`.", column.name, column.name, column.name); } - pgx_pg_sys::BOOLOID => { + pgrx_pg_sys::BOOLOID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); features.push( element.unwrap().map_or(f32::NAN, |v| v as u8 as f32), ); } - pgx_pg_sys::INT2OID => { + pgrx_pg_sys::INT2OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); features .push(element.unwrap().map_or(f32::NAN, |v| v as f32)); } - pgx_pg_sys::INT4OID => { + pgrx_pg_sys::INT4OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); features .push(element.unwrap().map_or(f32::NAN, |v| v as f32)); } - pgx_pg_sys::INT8OID => { + pgrx_pg_sys::INT8OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); features .push(element.unwrap().map_or(f32::NAN, |v| v as f32)); } - pgx_pg_sys::FLOAT4OID => { + pgrx_pg_sys::FLOAT4OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); features.push(element.unwrap().map_or(f32::NAN, |v| v)); } - pgx_pg_sys::FLOAT8OID => { + pgrx_pg_sys::FLOAT8OID => { let element: Result, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); features .push(element.unwrap().map_or(f32::NAN, |v| v as f32)); } // TODO handle NULL to NaN for arrays - pgx_pg_sys::BOOLARRAYOID => { + pgrx_pg_sys::BOOLARRAYOID => { let element: Result>, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); for j in element.as_ref().unwrap().as_ref().unwrap() { features.push(*j as i8 as f32); } } - pgx_pg_sys::INT2ARRAYOID => { + pgrx_pg_sys::INT2ARRAYOID => { let element: Result>, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); for j in element.as_ref().unwrap().as_ref().unwrap() { features.push(*j as f32); } } - pgx_pg_sys::INT4ARRAYOID => { + pgrx_pg_sys::INT4ARRAYOID => { let element: Result>, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); for j in element.as_ref().unwrap().as_ref().unwrap() { features.push(*j as f32); } } - pgx_pg_sys::INT8ARRAYOID => { + pgrx_pg_sys::INT8ARRAYOID => { let element: Result>, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); for j in element.as_ref().unwrap().as_ref().unwrap() { features.push(*j as f32); } } - pgx_pg_sys::FLOAT4ARRAYOID => { + pgrx_pg_sys::FLOAT4ARRAYOID => { let element: Result>, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); for j in element.as_ref().unwrap().as_ref().unwrap() { features.push(*j as f32); } } - pgx_pg_sys::FLOAT8ARRAYOID => { + pgrx_pg_sys::FLOAT8ARRAYOID => { let element: Result>, TryFromDatumError> = tuple.get_by_index(index.try_into().unwrap()); for j in element.as_ref().unwrap().as_ref().unwrap() { diff --git a/pgml-extension/src/orm/project.rs b/pgml-extension/src/orm/project.rs index caf12e022..595fb09ea 100644 --- a/pgml-extension/src/orm/project.rs +++ b/pgml-extension/src/orm/project.rs @@ -4,7 +4,7 @@ use std::fmt::{Display, Error, Formatter}; use std::str::FromStr; use once_cell::sync::Lazy; -use pgx::*; +use pgrx::*; use crate::orm::*; diff --git a/pgml-extension/src/orm/runtime.rs b/pgml-extension/src/orm/runtime.rs index abc02ed35..a28656b7d 100644 --- a/pgml-extension/src/orm/runtime.rs +++ b/pgml-extension/src/orm/runtime.rs @@ -1,4 +1,4 @@ -use pgx::*; +use pgrx::*; use serde::Deserialize; #[derive(PostgresEnum, Copy, Clone, Eq, PartialEq, Debug, Deserialize)] diff --git a/pgml-extension/src/orm/sampling.rs b/pgml-extension/src/orm/sampling.rs index f8781f97b..6bb3d7b5a 100644 --- a/pgml-extension/src/orm/sampling.rs +++ b/pgml-extension/src/orm/sampling.rs @@ -1,4 +1,4 @@ -use pgx::*; +use pgrx::*; use serde::Deserialize; #[derive(PostgresEnum, Copy, Clone, Eq, PartialEq, Debug, Deserialize)] diff --git a/pgml-extension/src/orm/search.rs b/pgml-extension/src/orm/search.rs index 58961af8b..4169e3e27 100644 --- a/pgml-extension/src/orm/search.rs +++ b/pgml-extension/src/orm/search.rs @@ -1,4 +1,4 @@ -use pgx::*; +use pgrx::*; use serde::Deserialize; #[derive(PostgresEnum, Copy, Clone, Eq, PartialEq, Debug, Deserialize)] diff --git a/pgml-extension/src/orm/snapshot.rs b/pgml-extension/src/orm/snapshot.rs index 121c82066..27f623347 100644 --- a/pgml-extension/src/orm/snapshot.rs +++ b/pgml-extension/src/orm/snapshot.rs @@ -5,7 +5,7 @@ use std::str::FromStr; use indexmap::IndexMap; use ndarray::Zip; -use pgx::*; +use pgrx::*; use serde::{Deserialize, Serialize}; use serde_json::json; diff --git a/pgml-extension/src/orm/status.rs b/pgml-extension/src/orm/status.rs index 4f99468e5..10d05e1f1 100644 --- a/pgml-extension/src/orm/status.rs +++ b/pgml-extension/src/orm/status.rs @@ -1,4 +1,4 @@ -use pgx::*; +use pgrx::*; use serde::Deserialize; #[derive(PostgresEnum, Copy, Clone, Eq, PartialEq, Debug, Deserialize)] diff --git a/pgml-extension/src/orm/strategy.rs b/pgml-extension/src/orm/strategy.rs index 597f45f4e..2e8e54edf 100644 --- a/pgml-extension/src/orm/strategy.rs +++ b/pgml-extension/src/orm/strategy.rs @@ -1,4 +1,4 @@ -use pgx::*; +use pgrx::*; use serde::Deserialize; #[derive(PostgresEnum, Copy, Clone, Eq, PartialEq, Debug, Deserialize)] diff --git a/pgml-extension/src/orm/task.rs b/pgml-extension/src/orm/task.rs index f9285a2cd..bd9d69d56 100644 --- a/pgml-extension/src/orm/task.rs +++ b/pgml-extension/src/orm/task.rs @@ -1,4 +1,4 @@ -use pgx::*; +use pgrx::*; use serde::Deserialize; #[derive(PostgresEnum, Copy, Clone, Eq, PartialEq, Debug, Deserialize)] @@ -14,7 +14,7 @@ pub enum Task { text2text, } -// unfortunately the pgx macro expands the enum names to underscore, but huggingface uses dash +// unfortunately the pgrx macro expands the enum names to underscore, but huggingface uses dash impl Task { pub fn to_pg_enum(&self) -> String { match *self { diff --git a/pgml-extension/src/vectors.rs b/pgml-extension/src/vectors.rs index 411f0b7eb..fd48e904c 100644 --- a/pgml-extension/src/vectors.rs +++ b/pgml-extension/src/vectors.rs @@ -1,4 +1,4 @@ -use pgx::*; +use pgrx::*; #[pg_extern(immutable, parallel_safe, strict, name = "add")] fn add_scalar_s(vector: Vec, addend: f32) -> Vec { diff --git a/pgml-extension/tests/test.sql b/pgml-extension/tests/test.sql index ed14c510d..ece0cd165 100644 --- a/pgml-extension/tests/test.sql +++ b/pgml-extension/tests/test.sql @@ -3,7 +3,7 @@ --- --- Usage: --- ---- $ cargo pgx run --release +--- $ cargo pgrx run --release --- $ psql -h localhost -p 28815 -d pgml -f tests/test.sql -P pager --- \set ON_ERROR_STOP true From 73f3fe642ca1f6db29624aee47ddf4b08e406303 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Mon, 17 Apr 2023 16:01:10 -0700 Subject: [PATCH 2/6] Run CI always please? --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b07bc57f0..604eb6596 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,8 +1,6 @@ name: tests on: push: - branches: - - master workflow_dispatch: jobs: tests: From 261178d345ab827460c35d019256248133e783a9 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Mon, 17 Apr 2023 16:49:50 -0700 Subject: [PATCH 3/6] Make tests faster --- .github/workflows/ci.yml | 99 +++++++++++++-------- .github/workflows/package-extension.yml | 2 +- pgml-extension/src/api.rs | 8 +- pgml-extension/src/bindings/transformers.rs | 9 +- 4 files changed, 76 insertions(+), 42 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 604eb6596..8de1f66d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,49 +12,78 @@ jobs: - uses: actions/checkout@v3 - name: Install dependencies run: | - sudo apt-get update && \ - DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC sudo apt-get install -y \ - curl \ - build-essential \ - libopenblas-dev \ - clang \ - python3-dev \ - libpython3-dev \ - postgresql \ - postgresql-server-dev-14 \ - pkg-config \ - python3-pip \ - python3 + git submodule update --init --recursive + + # PostgreSQL apt + curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null + sudo sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' + + sudo apt-get install -y software-properties-common + sudo add-apt-repository ppa:apt-fast/stable --yes + sudo add-apt-repository ppa:deadsnakes/ppa --yes + sudo apt update + + sudo apt-get install -y apt-fast + sudo apt-get update && sudo apt-fast install -y \ + libopenblas-dev \ + libssl-dev \ + bison \ + flex \ + pkg-config \ + cmake \ + libreadline-dev \ + libz-dev \ + curl \ + lsb-release \ + tzdata \ + sudo \ + cmake \ + libpq-dev \ + libclang-dev \ + wget \ + postgresql-15 \ + postgresql-14 \ + postgresql-13 \ + postgresql-12 \ + postgresql-11 \ + postgresql-server-dev-15 \ + postgresql-server-dev-14 \ + postgresql-server-dev-13 \ + postgresql-server-dev-12 \ + postgresql-server-dev-11 \ + lsb-release \ + python3.10 \ + python3-pip \ + libpython3.10-dev \ + python3.10-dev \ + sudo pip3 install xgboost lightgbm scikit-learn - name: Cache dependencies uses: actions/cache@v3 with: - path: | - ~/.cargo - pgml-extension/target - ~/.pgx + path: pgml-extension/target key: ${{ runner.os }}-rust-${{ hashFiles('pgml-extension/Cargo.lock') }} - name: Submodules run: | git submodule update --init --recursive + - name: Install pgx + uses: postgresml/gh-actions-cargo@master + with: + working-directory: pgml-extension + command: install + args: cargo-pgx --version "0.7.4" + - name: pgx init + uses: postgresml/gh-actions-cargo@master + with: + working-directory: pgml-extension + command: pgx + args: | + init \ + --pg11=/usr/lib/postgresql/11/bin/pg_config \ + --pg12=/usr/lib/postgresql/12/bin/pg_config \ + --pg13=/usr/lib/postgresql/13/bin/pg_config \ + --pg14=/usr/lib/postgresql/14/bin/pg_config \ + --pg15=/usr/lib/postgresql/15/bin/pg_config - name: Run tests run: | - curl https://sh.rustup.rs -sSf | sh -s -- -y - source ~/.cargo/env - cargo install cargo-pgx --version "0.7.1" - - if [[ ! -d ~/.pgx ]]; then - cargo pgx init - fi - cargo pgx test - - cargo pgx stop - cargo pgx start - - # psql -p 28813 -h 127.0.0.1 -d pgml -P pager -f tests/test.sql - - cargo pgx stop - - - diff --git a/.github/workflows/package-extension.yml b/.github/workflows/package-extension.yml index d9e31243d..9d27a3718 100644 --- a/.github/workflows/package-extension.yml +++ b/.github/workflows/package-extension.yml @@ -84,7 +84,7 @@ jobs: with: working-directory: pgml-extension command: install - args: cargo-pgx --version "0.7.1" + args: cargo-pgx --version "0.7.4" - name: pgx init uses: postgresml/gh-actions-cargo@master with: diff --git a/pgml-extension/src/api.rs b/pgml-extension/src/api.rs index cd8538c0c..029f5a169 100644 --- a/pgml-extension/src/api.rs +++ b/pgml-extension/src/api.rs @@ -564,10 +564,10 @@ pub fn transform_json( task: JsonB, args: default!(JsonB, "'{}'"), inputs: default!(Vec, "ARRAY[]::TEXT[]"), - cache: default!(bool, false) + cache: default!(bool, false), ) -> JsonB { JsonB(crate::bindings::transformers::transform( - &task.0, &args.0, &inputs, cache + &task.0, &args.0, &inputs, cache, )) } @@ -577,13 +577,13 @@ pub fn transform_string( task: String, args: default!(JsonB, "'{}'"), inputs: default!(Vec, "ARRAY[]::TEXT[]"), - cache: default!(bool, false) + cache: default!(bool, false), ) -> JsonB { let mut task_map = HashMap::new(); task_map.insert("task", task); let task_json = json!(task_map); JsonB(crate::bindings::transformers::transform( - &task_json, &args.0, &inputs, cache + &task_json, &args.0, &inputs, cache, )) } diff --git a/pgml-extension/src/bindings/transformers.rs b/pgml-extension/src/bindings/transformers.rs index 95b9ab298..2024e3905 100644 --- a/pgml-extension/src/bindings/transformers.rs +++ b/pgml-extension/src/bindings/transformers.rs @@ -25,7 +25,7 @@ pub fn transform( task: &serde_json::Value, args: &serde_json::Value, inputs: &Vec, - cache: bool + cache: bool, ) -> serde_json::Value { let task = serde_json::to_string(task).unwrap(); let args = serde_json::to_string(args).unwrap(); @@ -39,7 +39,12 @@ pub fn transform( py, PyTuple::new( py, - &[task.into_py(py), args.into_py(py), inputs.into_py(py), cache.into_py(py)], + &[ + task.into_py(py), + args.into_py(py), + inputs.into_py(py), + cache.into_py(py), + ], ), ) .unwrap() From 21dee8eb720b210e9504d27b4c64b2aa69b1819d Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Mon, 17 Apr 2023 16:51:58 -0700 Subject: [PATCH 4/6] hmm --- .github/workflows/ci.yml | 125 ++++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 61 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8de1f66d1..595c75967 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,50 +14,50 @@ jobs: run: | git submodule update --init --recursive - # PostgreSQL apt - curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null - sudo sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' + # PostgreSQL apt + curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null + sudo sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' - sudo apt-get install -y software-properties-common - sudo add-apt-repository ppa:apt-fast/stable --yes - sudo add-apt-repository ppa:deadsnakes/ppa --yes - sudo apt update + sudo apt-get install -y software-properties-common + sudo add-apt-repository ppa:apt-fast/stable --yes + sudo add-apt-repository ppa:deadsnakes/ppa --yes + sudo apt update - sudo apt-get install -y apt-fast - sudo apt-get update && sudo apt-fast install -y \ - libopenblas-dev \ - libssl-dev \ - bison \ - flex \ - pkg-config \ - cmake \ - libreadline-dev \ - libz-dev \ - curl \ - lsb-release \ - tzdata \ - sudo \ - cmake \ - libpq-dev \ - libclang-dev \ - wget \ - postgresql-15 \ - postgresql-14 \ - postgresql-13 \ - postgresql-12 \ - postgresql-11 \ - postgresql-server-dev-15 \ - postgresql-server-dev-14 \ - postgresql-server-dev-13 \ - postgresql-server-dev-12 \ - postgresql-server-dev-11 \ - lsb-release \ - python3.10 \ - python3-pip \ - libpython3.10-dev \ - python3.10-dev \ + sudo apt-get install -y apt-fast + sudo apt-get update && sudo apt-fast install -y \ + libopenblas-dev \ + libssl-dev \ + bison \ + flex \ + pkg-config \ + cmake \ + libreadline-dev \ + libz-dev \ + curl \ + lsb-release \ + tzdata \ + sudo \ + cmake \ + libpq-dev \ + libclang-dev \ + wget \ + postgresql-15 \ + postgresql-14 \ + postgresql-13 \ + postgresql-12 \ + postgresql-11 \ + postgresql-server-dev-15 \ + postgresql-server-dev-14 \ + postgresql-server-dev-13 \ + postgresql-server-dev-12 \ + postgresql-server-dev-11 \ + lsb-release \ + python3.10 \ + python3-pip \ + libpython3.10-dev \ + python3.10-dev \ - sudo pip3 install xgboost lightgbm scikit-learn + sudo pip3 install xgboost lightgbm scikit-learn - name: Cache dependencies uses: actions/cache@v3 with: @@ -67,23 +67,26 @@ jobs: run: | git submodule update --init --recursive - name: Install pgx - uses: postgresml/gh-actions-cargo@master - with: - working-directory: pgml-extension - command: install - args: cargo-pgx --version "0.7.4" - - name: pgx init - uses: postgresml/gh-actions-cargo@master - with: - working-directory: pgml-extension - command: pgx - args: | - init \ - --pg11=/usr/lib/postgresql/11/bin/pg_config \ - --pg12=/usr/lib/postgresql/12/bin/pg_config \ - --pg13=/usr/lib/postgresql/13/bin/pg_config \ - --pg14=/usr/lib/postgresql/14/bin/pg_config \ - --pg15=/usr/lib/postgresql/15/bin/pg_config - - name: Run tests - run: | - cargo pgx test + uses: postgresml/gh-actions-cargo@master + with: + working-directory: pgml-extension + command: install + args: cargo-pgx --version "0.7.4" + - name: pgx init + uses: postgresml/gh-actions-cargo@master + with: + working-directory: pgml-extension + command: pgx + args: | + init \ + --pg11=/usr/lib/postgresql/11/bin/pg_config \ + --pg12=/usr/lib/postgresql/12/bin/pg_config \ + --pg13=/usr/lib/postgresql/13/bin/pg_config \ + --pg14=/usr/lib/postgresql/14/bin/pg_config \ + --pg15=/usr/lib/postgresql/15/bin/pg_config + - name: pgx init + uses: postgresml/gh-actions-cargo@master + with: + working-directory: pgml-extension + command: pgx + args: test From 35416b5e30747036b521109b6602ddf4c491695b Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Mon, 17 Apr 2023 17:05:27 -0700 Subject: [PATCH 5/6] aha --- .github/workflows/ci.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 595c75967..9aa07946f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,7 +61,9 @@ jobs: - name: Cache dependencies uses: actions/cache@v3 with: - path: pgml-extension/target + path: | + pgml-extension/target + ~/.cargo key: ${{ runner.os }}-rust-${{ hashFiles('pgml-extension/Cargo.lock') }} - name: Submodules run: | @@ -77,13 +79,7 @@ jobs: with: working-directory: pgml-extension command: pgx - args: | - init \ - --pg11=/usr/lib/postgresql/11/bin/pg_config \ - --pg12=/usr/lib/postgresql/12/bin/pg_config \ - --pg13=/usr/lib/postgresql/13/bin/pg_config \ - --pg14=/usr/lib/postgresql/14/bin/pg_config \ - --pg15=/usr/lib/postgresql/15/bin/pg_config + args: init --pg11=/usr/lib/postgresql/11/bin/pg_config --pg12=/usr/lib/postgresql/12/bin/pg_config --pg13=/usr/lib/postgresql/13/bin/pg_config --pg14=/usr/lib/postgresql/14/bin/pg_config --pg15=/usr/lib/postgresql/15/bin/pg_config - name: pgx init uses: postgresml/gh-actions-cargo@master with: From 46169bdb60960d69ce82686901cd0ace220685b9 Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Mon, 17 Apr 2023 17:15:56 -0700 Subject: [PATCH 6/6] Fix --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9aa07946f..220c9efd1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,21 +68,21 @@ jobs: - name: Submodules run: | git submodule update --init --recursive - - name: Install pgx + - name: Install pgrx uses: postgresml/gh-actions-cargo@master with: working-directory: pgml-extension command: install - args: cargo-pgx --version "0.7.4" - - name: pgx init + args: cargo-pgrx --version "0.7.4" + - name: pgrx init uses: postgresml/gh-actions-cargo@master with: working-directory: pgml-extension - command: pgx + command: pgrx args: init --pg11=/usr/lib/postgresql/11/bin/pg_config --pg12=/usr/lib/postgresql/12/bin/pg_config --pg13=/usr/lib/postgresql/13/bin/pg_config --pg14=/usr/lib/postgresql/14/bin/pg_config --pg15=/usr/lib/postgresql/15/bin/pg_config - - name: pgx init + - name: pgrx test uses: postgresml/gh-actions-cargo@master with: working-directory: pgml-extension - command: pgx + command: pgrx args: test pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy