Skip to content

Commit

Permalink
chore: set schema and search_path (#273)
Browse files Browse the repository at this point in the history
* chore: set schema and search_path

Signed-off-by: usamoi <[email protected]>

* fix: remove unnecessary changes

Signed-off-by: usamoi <[email protected]>

* fix: set search_path for docker

Signed-off-by: usamoi <[email protected]>

* fix: ci

Signed-off-by: usamoi <[email protected]>

* fix: docker

Signed-off-by: usamoi <[email protected]>

* fix: search_path search order

Signed-off-by: usamoi <[email protected]>

---------

Signed-off-by: usamoi <[email protected]>
  • Loading branch information
usamoi authored Jan 16, 2024
1 parent 0e5fb8b commit da6686e
Show file tree
Hide file tree
Showing 9 changed files with 29 additions and 13 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version.workspace = true
edition.workspace = true

[lib]
crate-type = ["cdylib"]
crate-type = ["cdylib", "lib"]

[features]
default = ["pg15"]
Expand Down
2 changes: 1 addition & 1 deletion docker/pgvecto-rs.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ FROM tensorchord/pgvecto-rs-binary:${TAG}-${TARGETARCH} as binary
FROM postgres:$POSTGRES_VERSION
COPY --from=binary /pgvecto-rs-binary-release.deb /tmp/vectors.deb
RUN apt-get install -y /tmp/vectors.deb && rm -f /tmp/vectors.deb
CMD ["postgres","-c","shared_preload_libraries=vectors.so"]
CMD ["postgres", "-c" ,"shared_preload_libraries='vectors.so'", "-c", "search_path='\"\$user\", public, vectors'"]
1 change: 1 addition & 0 deletions scripts/ci_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ set -e

cargo pgrx install --no-default-features --features "pg$VERSION" --release
psql -c 'ALTER SYSTEM SET shared_preload_libraries = "vectors.so"'
psql -c 'ALTER SYSTEM SET search_path TO "$user", public, vectors'

if [ "$OS" == "ubuntu-latest" ]; then
sudo systemctl restart postgresql
Expand Down
12 changes: 12 additions & 0 deletions src/bin/pgrx_embed.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
macro_rules! pgrx_embed {
() => {
#[cfg(not(pgrx_embed))]
fn main() {
panic!("PGRX_EMBED was not set.");
}
#[cfg(pgrx_embed)]
include!(env!("PGRX_EMBED"));
};
}

pgrx_embed!();
2 changes: 1 addition & 1 deletion src/datatype/vecf16.rs
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ impl IntoDatum for Vecf16Output {
}

fn type_oid() -> Oid {
pgrx::wrappers::regtypein("vecf16")
pgrx::wrappers::regtypein("vectors.vecf16")
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/datatype/vecf32.rs
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ impl IntoDatum for Vecf32Output {
}

fn type_oid() -> Oid {
pgrx::wrappers::regtypein("vector")
pgrx::wrappers::regtypein("vectors.vector")
}
}

Expand Down
16 changes: 8 additions & 8 deletions src/index/am_setup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ pub unsafe fn convert_opclass_to_distance(opclass: pgrx::pg_sys::Oid) -> (Distan
let tuple = pgrx::pg_sys::SearchSysCache1(opclass_cache_id, opclass.into());
assert!(
!tuple.is_null(),
"cache lookup failed for operator class {opclass}"
"cache lookup failed for operator class {opclass:?}"
);
let classform = pgrx::pg_sys::GETSTRUCT(tuple).cast::<pgrx::pg_sys::FormData_pg_opclass>();
let opfamily = (*classform).opcfamily;
Expand All @@ -36,7 +36,7 @@ pub unsafe fn convert_opfamily_to_distance(opfamily: pgrx::pg_sys::Oid) -> (Dist
let tuple = pgrx::pg_sys::SearchSysCache1(opfamily_cache_id, opfamily.into());
assert!(
!tuple.is_null(),
"cache lookup failed for operator family {opfamily}"
"cache lookup failed for operator family {opfamily:?}"
);
let list = pgrx::pg_sys::SearchSysCacheList(
opstrategy_cache_id,
Expand All @@ -53,17 +53,17 @@ pub unsafe fn convert_opfamily_to_distance(opfamily: pgrx::pg_sys::Oid) -> (Dist
assert!((*amop).amoppurpose == pgrx::pg_sys::AMOP_ORDER as libc::c_char);
let operator = (*amop).amopopr;
let result;
if operator == regoperatorin("<->(vector,vector)") {
if operator == regoperatorin("vectors.<->(vectors.vector,vectors.vector)") {
result = (Distance::L2, Kind::F32);
} else if operator == regoperatorin("<#>(vector,vector)") {
} else if operator == regoperatorin("vectors.<#>(vectors.vector,vectors.vector)") {
result = (Distance::Dot, Kind::F32);
} else if operator == regoperatorin("<=>(vector,vector)") {
} else if operator == regoperatorin("vectors.<=>(vectors.vector,vectors.vector)") {
result = (Distance::Cos, Kind::F32);
} else if operator == regoperatorin("<->(vecf16,vecf16)") {
} else if operator == regoperatorin("vectors.<->(vectors.vecf16,vectors.vecf16)") {
result = (Distance::L2, Kind::F16);
} else if operator == regoperatorin("<#>(vecf16,vecf16)") {
} else if operator == regoperatorin("vectors.<#>(vectors.vecf16,vectors.vecf16)") {
result = (Distance::Dot, Kind::F16);
} else if operator == regoperatorin("<=>(vecf16,vecf16)") {
} else if operator == regoperatorin("vectors.<=>(vectors.vecf16,vectors.vecf16)") {
result = (Distance::Cos, Kind::F16);
} else {
SessionError::BadOptions2.friendly();
Expand Down
4 changes: 3 additions & 1 deletion src/index/views.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ use crate::prelude::*;
use service::prelude::*;

#[pgrx::pg_extern(volatile, strict)]
fn _vectors_index_stat(oid: pgrx::pg_sys::Oid) -> pgrx::composite_type!("vector_index_stat") {
fn _vectors_index_stat(
oid: pgrx::pg_sys::Oid,
) -> pgrx::composite_type!('static, "vector_index_stat") {
use service::index::IndexStat;
let id = Handle::from_sys(oid);
let mut res = pgrx::prelude::PgHeapTuple::new_composite_type("vector_index_stat").unwrap();
Expand Down
1 change: 1 addition & 0 deletions vectors.control
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ default_version = '@CARGO_VERSION@'
module_pathname = '$libdir/vectors'
relocatable = false
superuser = true
schema = vectors

0 comments on commit da6686e

Please sign in to comment.