mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-11 23:26:55 +08:00
Marked functions as PARALLEL SAFE
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
## 0.1.1 (unreleased)
|
## 0.1.1 (unreleased)
|
||||||
|
|
||||||
- Added external binary representation for `vector` type
|
- Added external binary representation for `vector` type
|
||||||
|
- Marked functions as `PARALLEL SAFE`
|
||||||
|
|
||||||
## 0.1.0 (2021-04-20)
|
## 0.1.0 (2021-04-20)
|
||||||
|
|
||||||
|
|||||||
@@ -8,3 +8,32 @@ CREATE FUNCTION vector_send(vector) RETURNS bytea
|
|||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
||||||
|
|
||||||
ALTER TYPE vector SET ( RECEIVE = vector_recv, SEND = vector_send );
|
ALTER TYPE vector SET ( RECEIVE = vector_recv, SEND = vector_send );
|
||||||
|
|
||||||
|
-- functions
|
||||||
|
|
||||||
|
ALTER FUNCTION vector_in(cstring, oid, integer) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_out(vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_typmod_in(cstring[]) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_recv(internal, oid, integer) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_send(vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION l2_distance(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION inner_product(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION cosine_distance(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_dims(vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_norm(vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_add(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_sub(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_lt(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_le(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_eq(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_ne(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_ge(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_gt(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_cmp(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_l2_squared_distance(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_negative_inner_product(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector_spherical_distance(vector, vector) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION vector(vector, integer, boolean) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION array_to_vector(integer[], integer, boolean) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION array_to_vector(real[], integer, boolean) PARALLEL SAFE;
|
||||||
|
ALTER FUNCTION array_to_vector(double precision[], integer, boolean) PARALLEL SAFE;
|
||||||
|
|||||||
@@ -6,19 +6,19 @@
|
|||||||
CREATE TYPE vector;
|
CREATE TYPE vector;
|
||||||
|
|
||||||
CREATE FUNCTION vector_in(cstring, oid, integer) RETURNS vector
|
CREATE FUNCTION vector_in(cstring, oid, integer) RETURNS vector
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_out(vector) RETURNS cstring
|
CREATE FUNCTION vector_out(vector) RETURNS cstring
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_typmod_in(cstring[]) RETURNS integer
|
CREATE FUNCTION vector_typmod_in(cstring[]) RETURNS integer
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_recv(internal, oid, integer) RETURNS vector
|
CREATE FUNCTION vector_recv(internal, oid, integer) RETURNS vector
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_send(vector) RETURNS bytea
|
CREATE FUNCTION vector_send(vector) RETURNS bytea
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE TYPE vector (
|
CREATE TYPE vector (
|
||||||
INPUT = vector_in,
|
INPUT = vector_in,
|
||||||
@@ -31,71 +31,71 @@ CREATE TYPE vector (
|
|||||||
-- functions
|
-- functions
|
||||||
|
|
||||||
CREATE FUNCTION l2_distance(vector, vector) RETURNS float8
|
CREATE FUNCTION l2_distance(vector, vector) RETURNS float8
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION inner_product(vector, vector) RETURNS float8
|
CREATE FUNCTION inner_product(vector, vector) RETURNS float8
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION cosine_distance(vector, vector) RETURNS float8
|
CREATE FUNCTION cosine_distance(vector, vector) RETURNS float8
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_dims(vector) RETURNS integer
|
CREATE FUNCTION vector_dims(vector) RETURNS integer
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_norm(vector) RETURNS float8
|
CREATE FUNCTION vector_norm(vector) RETURNS float8
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_add(vector, vector) RETURNS vector
|
CREATE FUNCTION vector_add(vector, vector) RETURNS vector
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_sub(vector, vector) RETURNS vector
|
CREATE FUNCTION vector_sub(vector, vector) RETURNS vector
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
-- private functions
|
-- private functions
|
||||||
|
|
||||||
CREATE FUNCTION vector_lt(vector, vector) RETURNS bool
|
CREATE FUNCTION vector_lt(vector, vector) RETURNS bool
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_le(vector, vector) RETURNS bool
|
CREATE FUNCTION vector_le(vector, vector) RETURNS bool
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_eq(vector, vector) RETURNS bool
|
CREATE FUNCTION vector_eq(vector, vector) RETURNS bool
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_ne(vector, vector) RETURNS bool
|
CREATE FUNCTION vector_ne(vector, vector) RETURNS bool
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_ge(vector, vector) RETURNS bool
|
CREATE FUNCTION vector_ge(vector, vector) RETURNS bool
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_gt(vector, vector) RETURNS bool
|
CREATE FUNCTION vector_gt(vector, vector) RETURNS bool
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_cmp(vector, vector) RETURNS int4
|
CREATE FUNCTION vector_cmp(vector, vector) RETURNS int4
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_l2_squared_distance(vector, vector) RETURNS float8
|
CREATE FUNCTION vector_l2_squared_distance(vector, vector) RETURNS float8
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_negative_inner_product(vector, vector) RETURNS float8
|
CREATE FUNCTION vector_negative_inner_product(vector, vector) RETURNS float8
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION vector_spherical_distance(vector, vector) RETURNS float8
|
CREATE FUNCTION vector_spherical_distance(vector, vector) RETURNS float8
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
-- cast functions
|
-- cast functions
|
||||||
|
|
||||||
CREATE FUNCTION vector(vector, integer, boolean) RETURNS vector
|
CREATE FUNCTION vector(vector, integer, boolean) RETURNS vector
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION array_to_vector(integer[], integer, boolean) RETURNS vector
|
CREATE FUNCTION array_to_vector(integer[], integer, boolean) RETURNS vector
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION array_to_vector(real[], integer, boolean) RETURNS vector
|
CREATE FUNCTION array_to_vector(real[], integer, boolean) RETURNS vector
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
CREATE FUNCTION array_to_vector(double precision[], integer, boolean) RETURNS vector
|
CREATE FUNCTION array_to_vector(double precision[], integer, boolean) RETURNS vector
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT;
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
||||||
|
|
||||||
-- casts
|
-- casts
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user