From 85778382503333b4a536e95c83ee847b30333cf1 Mon Sep 17 00:00:00 2001 From: Adam Hendel Date: Mon, 24 Jul 2023 14:50:41 -0500 Subject: [PATCH] rename to pg_vectorize --- .gitignore | 3 + ...6feafb8464aebced1ee62dc5e2b0042f0ab9c.json | 58 +++++++++++++++++++ Cargo.toml | 3 +- README.md | 2 +- sql/meta.sql | 2 +- src/executor.rs | 18 +++--- src/init.rs | 8 +-- src/types.rs | 2 +- src/worker.rs | 4 +- tembo.control | 7 --- vectorize.control | 7 +++ 11 files changed, 88 insertions(+), 26 deletions(-) create mode 100644 .sqlx/query-2570c83389d229bee10f84a4c566feafb8464aebced1ee62dc5e2b0042f0ab9c.json delete mode 100644 tembo.control create mode 100644 vectorize.control diff --git a/.gitignore b/.gitignore index 3906c332..fba6767a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ *.iml **/*.rs.bk Cargo.lock +.env +pg_cron +test.sql \ No newline at end of file diff --git a/.sqlx/query-2570c83389d229bee10f84a4c566feafb8464aebced1ee62dc5e2b0042f0ab9c.json b/.sqlx/query-2570c83389d229bee10f84a4c566feafb8464aebced1ee62dc5e2b0042f0ab9c.json new file mode 100644 index 00000000..8625aa6d --- /dev/null +++ b/.sqlx/query-2570c83389d229bee10f84a4c566feafb8464aebced1ee62dc5e2b0042f0ab9c.json @@ -0,0 +1,58 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT *\n FROM vectorize.vectorize_meta\n WHERE name = $1\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "job_id", + "type_info": "Int8" + }, + { + "ordinal": 1, + "name": "name", + "type_info": "Text" + }, + { + "ordinal": 2, + "name": "job_type", + "type_info": "Text" + }, + { + "ordinal": 3, + "name": "transformer", + "type_info": "Text" + }, + { + "ordinal": 4, + "name": "search_alg", + "type_info": "Text" + }, + { + "ordinal": 5, + "name": "params", + "type_info": "Jsonb" + }, + { + "ordinal": 6, + "name": "last_completion", + "type_info": "Timestamptz" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + true + ] + }, + "hash": "2570c83389d229bee10f84a4c566feafb8464aebced1ee62dc5e2b0042f0ab9c" +} diff --git a/Cargo.toml b/Cargo.toml index 6c756731..e92ca4b7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,8 @@ [package] -name = "tembo" +name = "vectorize" version = "0.0.0" edition = "2021" +publish = false [lib] crate-type = ["cdylib"] diff --git a/README.md b/README.md index cbbd5636..52d65ed3 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Dev pgrx settings Required postgresql.conf settings ``` -cron.database_name = 'tembo' +cron.database_name = 'vectorize' ``` diff --git a/sql/meta.sql b/sql/meta.sql index fcc1011f..823d378f 100644 --- a/sql/meta.sql +++ b/sql/meta.sql @@ -1,4 +1,4 @@ -CREATE TABLE tembo_meta ( +CREATE TABLE vectorize_meta ( job_id bigserial, name TEXT NOT NULL UNIQUE, job_type TEXT NOT NULL, diff --git a/src/executor.rs b/src/executor.rs index 2a782c21..ac4c2485 100644 --- a/src/executor.rs +++ b/src/executor.rs @@ -15,9 +15,9 @@ use sqlx::types::chrono::Utc; use sqlx::{FromRow, PgPool, Pool, Postgres, Row}; // schema for every job -// also schema for the tembo.tembo_meta table +// also schema for the vectorize.vectorize_meta table #[derive(Clone, Debug, Deserialize, FromRow, Serialize)] -pub struct TemboMeta { +pub struct VectorizeMeta { pub job_id: i64, pub name: String, pub job_type: types::JobType, @@ -42,7 +42,7 @@ pub struct ColumnJobParams { #[derive(Clone, Deserialize, Debug, Serialize)] pub struct JobMessage { pub job_name: String, - pub job_meta: TemboMeta, + pub job_meta: VectorizeMeta, pub inputs: Vec, } @@ -66,7 +66,7 @@ fn job_execute(job_name: String) -> pgrx::JsonB { let queue = pgmq::PGMQueueExt::new(db_url, 2) .await .expect("failed to init db connection"); - let meta = get_tembo_meta(&job_name, conn) + let meta = get_vectorize_meta(&job_name, conn) .await .expect("failed to get job meta"); let job_params = serde_json::from_value::(meta.params.clone()) @@ -101,15 +101,15 @@ fn job_execute(job_name: String) -> pgrx::JsonB { } // get job meta -pub async fn get_tembo_meta( +pub async fn get_vectorize_meta( job_name: &str, conn: Pool, -) -> Result { +) -> Result { let row = sqlx::query_as!( - TemboMeta, + VectorizeMeta, " SELECT * - FROM tembo.tembo_meta + FROM vectorize.vectorize_meta WHERE name = $1 ", job_name.to_string(), @@ -188,7 +188,7 @@ fn get_inputs_query( WHERE {last_updated_col} > ( SELECT last_completion - FROM tembo_meta + FROM vectorize_meta WHERE name = '{job_name}' )::timestamp " diff --git a/src/init.rs b/src/init.rs index a8c3b82b..001668ab 100644 --- a/src/init.rs +++ b/src/init.rs @@ -5,7 +5,7 @@ use crate::{ types::{self, Transformer}, }; -pub const PGMQ_QUEUE_NAME: &str = "tembo_vectorize_queue"; +pub const PGMQ_QUEUE_NAME: &str = "vectorize_queue"; #[pg_extern] fn init_table( @@ -92,10 +92,10 @@ fn init_pgmq() -> Result<(), spi::Error> { fn init_job_query() -> String { format!( " - INSERT INTO {schema}.tembo_meta (name, job_type, transformer, search_alg, params) + INSERT INTO {schema}.vectorize_meta (name, job_type, transformer, search_alg, params) VALUES ($1, $2, $3, $4, $5); ", - schema = types::TEMBO_SCHEMA + schema = types::VECTORIZE_SCHEMA ) } @@ -109,6 +109,6 @@ fn init_embedding_table(job_name: &str) -> String { updated_at TIMESTAMP WITH TIME ZONE DEFAULT (now() at time zone 'utc') not null ); ", - schema = types::TEMBO_SCHEMA + schema = types::VECTORIZE_SCHEMA ) } diff --git a/src/types.rs b/src/types.rs index d22aa0a1..e4daafbd 100644 --- a/src/types.rs +++ b/src/types.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; use std::fmt::{Display, Formatter}; use std::str::FromStr; -pub const TEMBO_SCHEMA: &str = "tembo"; +pub const VECTORIZE_SCHEMA: &str = "vectorize"; #[allow(non_camel_case_types)] #[derive(Clone, Debug, Serialize, Deserialize, PostgresEnum)] diff --git a/src/worker.rs b/src/worker.rs index 0551994c..48a3909a 100644 --- a/src/worker.rs +++ b/src/worker.rs @@ -25,9 +25,9 @@ use crate::executor::JobMessage; #[pg_guard] pub extern "C" fn _PG_init() { - BackgroundWorkerBuilder::new("PG Tembo Background Worker") + BackgroundWorkerBuilder::new("PG Vectorize Background Worker") .set_function("background_worker_main") - .set_library("tembo") + .set_library("vectorize") .enable_spi_access() .load(); } diff --git a/tembo.control b/tembo.control deleted file mode 100644 index 2def144f..00000000 --- a/tembo.control +++ /dev/null @@ -1,7 +0,0 @@ -comment = 'tembo: Created by pgrx' -default_version = '@CARGO_VERSION@' -module_pathname = '$libdir/tembo' -relocatable = false -superuser = true -schema = 'tembo' -requires = 'pg_cron,pgmq' \ No newline at end of file diff --git a/vectorize.control b/vectorize.control new file mode 100644 index 00000000..69151be3 --- /dev/null +++ b/vectorize.control @@ -0,0 +1,7 @@ +comment = 'Vector search in two functions' +default_version = '@CARGO_VERSION@' +module_pathname = '$libdir/vectorize' +relocatable = false +superuser = true +schema = 'vectorize' +requires = 'pg_cron,pgmq' \ No newline at end of file