diff --git a/sql/vector--0.6.2--0.7.0.sql b/sql/vector--0.6.2--0.7.0.sql index 846d5a5..4b1bb20 100644 --- a/sql/vector--0.6.2--0.7.0.sql +++ b/sql/vector--0.6.2--0.7.0.sql @@ -33,10 +33,10 @@ CREATE FUNCTION hamming_distance(bit, bit) RETURNS float8 CREATE FUNCTION jaccard_distance(bit, bit) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION bit_ivfflat_support(internal) RETURNS internal +CREATE FUNCTION ivfflat_bit_support(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION bit_hnsw_support(internal) RETURNS internal +CREATE FUNCTION hnsw_bit_support(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; CREATE OPERATOR <~> ( @@ -54,19 +54,19 @@ CREATE OPERATOR CLASS bit_hamming_ops OPERATOR 1 <~> (bit, bit) FOR ORDER BY float_ops, FUNCTION 1 hamming_distance(bit, bit), FUNCTION 3 hamming_distance(bit, bit), - FUNCTION 6 bit_ivfflat_support(internal); + FUNCTION 6 ivfflat_bit_support(internal); CREATE OPERATOR CLASS bit_hamming_ops FOR TYPE bit USING hnsw AS OPERATOR 1 <~> (bit, bit) FOR ORDER BY float_ops, FUNCTION 1 hamming_distance(bit, bit), - FUNCTION 4 bit_hnsw_support(internal); + FUNCTION 4 hnsw_bit_support(internal); CREATE OPERATOR CLASS bit_jaccard_ops FOR TYPE bit USING hnsw AS OPERATOR 1 <%> (bit, bit) FOR ORDER BY float_ops, FUNCTION 1 jaccard_distance(bit, bit), - FUNCTION 4 bit_hnsw_support(internal); + FUNCTION 4 hnsw_bit_support(internal); CREATE TYPE halfvec; @@ -169,10 +169,10 @@ CREATE FUNCTION halfvec_accum(double precision[], halfvec) RETURNS double precis CREATE FUNCTION halfvec_avg(double precision[]) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION halfvec_ivfflat_support(internal) RETURNS internal +CREATE FUNCTION ivfflat_halfvec_support(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION halfvec_hnsw_support(internal) RETURNS internal +CREATE FUNCTION hnsw_halfvec_support(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; CREATE AGGREGATE avg(halfvec) ( @@ -327,7 +327,7 @@ CREATE OPERATOR CLASS halfvec_l2_ops OPERATOR 1 <-> (halfvec, halfvec) FOR ORDER BY float_ops, FUNCTION 1 halfvec_l2_squared_distance(halfvec, halfvec), FUNCTION 3 l2_distance(halfvec, halfvec), - FUNCTION 6 halfvec_ivfflat_support(internal); + FUNCTION 6 ivfflat_halfvec_support(internal); CREATE OPERATOR CLASS halfvec_ip_ops FOR TYPE halfvec USING ivfflat AS @@ -336,7 +336,7 @@ CREATE OPERATOR CLASS halfvec_ip_ops FUNCTION 3 halfvec_spherical_distance(halfvec, halfvec), FUNCTION 4 l2_norm(halfvec), FUNCTION 5 l2_normalize(halfvec), - FUNCTION 6 halfvec_ivfflat_support(internal); + FUNCTION 6 ivfflat_halfvec_support(internal); CREATE OPERATOR CLASS halfvec_cosine_ops FOR TYPE halfvec USING ivfflat AS @@ -346,19 +346,19 @@ CREATE OPERATOR CLASS halfvec_cosine_ops FUNCTION 3 halfvec_spherical_distance(halfvec, halfvec), FUNCTION 4 l2_norm(halfvec), FUNCTION 5 l2_normalize(halfvec), - FUNCTION 6 halfvec_ivfflat_support(internal); + FUNCTION 6 ivfflat_halfvec_support(internal); CREATE OPERATOR CLASS halfvec_l2_ops FOR TYPE halfvec USING hnsw AS OPERATOR 1 <-> (halfvec, halfvec) FOR ORDER BY float_ops, FUNCTION 1 halfvec_l2_squared_distance(halfvec, halfvec), - FUNCTION 4 halfvec_hnsw_support(internal); + FUNCTION 4 hnsw_halfvec_support(internal); CREATE OPERATOR CLASS halfvec_ip_ops FOR TYPE halfvec USING hnsw AS OPERATOR 1 <#> (halfvec, halfvec) FOR ORDER BY float_ops, FUNCTION 1 halfvec_negative_inner_product(halfvec, halfvec), - FUNCTION 4 halfvec_hnsw_support(internal); + FUNCTION 4 hnsw_halfvec_support(internal); CREATE OPERATOR CLASS halfvec_cosine_ops FOR TYPE halfvec USING hnsw AS @@ -366,13 +366,13 @@ CREATE OPERATOR CLASS halfvec_cosine_ops FUNCTION 1 halfvec_negative_inner_product(halfvec, halfvec), FUNCTION 2 l2_norm(halfvec), FUNCTION 3 l2_normalize(halfvec), - FUNCTION 4 halfvec_hnsw_support(internal); + FUNCTION 4 hnsw_halfvec_support(internal); CREATE OPERATOR CLASS halfvec_l1_ops FOR TYPE halfvec USING hnsw AS OPERATOR 1 <+> (halfvec, halfvec) FOR ORDER BY float_ops, FUNCTION 1 l1_distance(halfvec, halfvec), - FUNCTION 4 halfvec_hnsw_support(internal); + FUNCTION 4 hnsw_halfvec_support(internal); CREATE TYPE sparsevec; @@ -460,7 +460,7 @@ CREATE FUNCTION halfvec_to_sparsevec(halfvec, integer, boolean) RETURNS sparseve CREATE FUNCTION sparsevec_to_halfvec(sparsevec, integer, boolean) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION sparsevec_hnsw_support(internal) RETURNS internal +CREATE FUNCTION hnsw_sparsevec_support(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; CREATE CAST (sparsevec AS sparsevec) @@ -547,13 +547,13 @@ CREATE OPERATOR CLASS sparsevec_l2_ops FOR TYPE sparsevec USING hnsw AS OPERATOR 1 <-> (sparsevec, sparsevec) FOR ORDER BY float_ops, FUNCTION 1 sparsevec_l2_squared_distance(sparsevec, sparsevec), - FUNCTION 4 sparsevec_hnsw_support(internal); + FUNCTION 4 hnsw_sparsevec_support(internal); CREATE OPERATOR CLASS sparsevec_ip_ops FOR TYPE sparsevec USING hnsw AS OPERATOR 1 <#> (sparsevec, sparsevec) FOR ORDER BY float_ops, FUNCTION 1 sparsevec_negative_inner_product(sparsevec, sparsevec), - FUNCTION 4 sparsevec_hnsw_support(internal); + FUNCTION 4 hnsw_sparsevec_support(internal); CREATE OPERATOR CLASS sparsevec_cosine_ops FOR TYPE sparsevec USING hnsw AS @@ -561,10 +561,10 @@ CREATE OPERATOR CLASS sparsevec_cosine_ops FUNCTION 1 sparsevec_negative_inner_product(sparsevec, sparsevec), FUNCTION 2 l2_norm(sparsevec), FUNCTION 3 l2_normalize(sparsevec), - FUNCTION 4 sparsevec_hnsw_support(internal); + FUNCTION 4 hnsw_sparsevec_support(internal); CREATE OPERATOR CLASS sparsevec_l1_ops FOR TYPE sparsevec USING hnsw AS OPERATOR 1 <+> (sparsevec, sparsevec) FOR ORDER BY float_ops, FUNCTION 1 l1_distance(sparsevec, sparsevec), - FUNCTION 4 sparsevec_hnsw_support(internal); + FUNCTION 4 hnsw_sparsevec_support(internal); diff --git a/sql/vector.sql b/sql/vector.sql index f57f296..2838d9d 100644 --- a/sql/vector.sql +++ b/sql/vector.sql @@ -324,10 +324,10 @@ CREATE FUNCTION jaccard_distance(bit, bit) RETURNS float8 -- bit private functions -CREATE FUNCTION bit_ivfflat_support(internal) RETURNS internal +CREATE FUNCTION ivfflat_bit_support(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION bit_hnsw_max_dims(internal) RETURNS internal +CREATE FUNCTION hnsw_bit_max_dims(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -- bit operators @@ -349,19 +349,19 @@ CREATE OPERATOR CLASS bit_hamming_ops OPERATOR 1 <~> (bit, bit) FOR ORDER BY float_ops, FUNCTION 1 hamming_distance(bit, bit), FUNCTION 3 hamming_distance(bit, bit), - FUNCTION 6 bit_ivfflat_support(internal); + FUNCTION 6 ivfflat_bit_support(internal); CREATE OPERATOR CLASS bit_hamming_ops FOR TYPE bit USING hnsw AS OPERATOR 1 <~> (bit, bit) FOR ORDER BY float_ops, FUNCTION 1 hamming_distance(bit, bit), - FUNCTION 4 bit_hnsw_max_dims(internal); + FUNCTION 4 hnsw_bit_max_dims(internal); CREATE OPERATOR CLASS bit_jaccard_ops FOR TYPE bit USING hnsw AS OPERATOR 1 <%> (bit, bit) FOR ORDER BY float_ops, FUNCTION 1 jaccard_distance(bit, bit), - FUNCTION 4 bit_hnsw_max_dims(internal); + FUNCTION 4 hnsw_bit_max_dims(internal); -- halfvec type @@ -470,10 +470,10 @@ CREATE FUNCTION halfvec_accum(double precision[], halfvec) RETURNS double precis CREATE FUNCTION halfvec_avg(double precision[]) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION halfvec_ivfflat_support(internal) RETURNS internal +CREATE FUNCTION ivfflat_halfvec_support(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION halfvec_hnsw_max_dims(internal) RETURNS internal +CREATE FUNCTION hnsw_halfvec_max_dims(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -- halfvec aggregates @@ -638,7 +638,7 @@ CREATE OPERATOR CLASS halfvec_l2_ops OPERATOR 1 <-> (halfvec, halfvec) FOR ORDER BY float_ops, FUNCTION 1 halfvec_l2_squared_distance(halfvec, halfvec), FUNCTION 3 l2_distance(halfvec, halfvec), - FUNCTION 6 halfvec_ivfflat_support(internal); + FUNCTION 6 ivfflat_halfvec_support(internal); CREATE OPERATOR CLASS halfvec_ip_ops FOR TYPE halfvec USING ivfflat AS @@ -647,7 +647,7 @@ CREATE OPERATOR CLASS halfvec_ip_ops FUNCTION 3 halfvec_spherical_distance(halfvec, halfvec), FUNCTION 4 l2_norm(halfvec), FUNCTION 5 l2_normalize(halfvec), - FUNCTION 6 halfvec_ivfflat_support(internal); + FUNCTION 6 ivfflat_halfvec_support(internal); CREATE OPERATOR CLASS halfvec_cosine_ops FOR TYPE halfvec USING ivfflat AS @@ -657,19 +657,19 @@ CREATE OPERATOR CLASS halfvec_cosine_ops FUNCTION 3 halfvec_spherical_distance(halfvec, halfvec), FUNCTION 4 l2_norm(halfvec), FUNCTION 5 l2_normalize(halfvec), - FUNCTION 6 halfvec_ivfflat_support(internal); + FUNCTION 6 ivfflat_halfvec_support(internal); CREATE OPERATOR CLASS halfvec_l2_ops FOR TYPE halfvec USING hnsw AS OPERATOR 1 <-> (halfvec, halfvec) FOR ORDER BY float_ops, FUNCTION 1 halfvec_l2_squared_distance(halfvec, halfvec), - FUNCTION 4 halfvec_hnsw_max_dims(internal); + FUNCTION 4 hnsw_halfvec_max_dims(internal); CREATE OPERATOR CLASS halfvec_ip_ops FOR TYPE halfvec USING hnsw AS OPERATOR 1 <#> (halfvec, halfvec) FOR ORDER BY float_ops, FUNCTION 1 halfvec_negative_inner_product(halfvec, halfvec), - FUNCTION 4 halfvec_hnsw_max_dims(internal); + FUNCTION 4 hnsw_halfvec_max_dims(internal); CREATE OPERATOR CLASS halfvec_cosine_ops FOR TYPE halfvec USING hnsw AS @@ -677,13 +677,13 @@ CREATE OPERATOR CLASS halfvec_cosine_ops FUNCTION 1 halfvec_negative_inner_product(halfvec, halfvec), FUNCTION 2 l2_norm(halfvec), FUNCTION 3 l2_normalize(halfvec), - FUNCTION 4 halfvec_hnsw_max_dims(internal); + FUNCTION 4 hnsw_halfvec_max_dims(internal); CREATE OPERATOR CLASS halfvec_l1_ops FOR TYPE halfvec USING hnsw AS OPERATOR 1 <+> (halfvec, halfvec) FOR ORDER BY float_ops, FUNCTION 1 l1_distance(halfvec, halfvec), - FUNCTION 4 halfvec_hnsw_max_dims(internal); + FUNCTION 4 hnsw_halfvec_max_dims(internal); --- sparsevec type @@ -779,10 +779,10 @@ CREATE FUNCTION halfvec_to_sparsevec(halfvec, integer, boolean) RETURNS sparseve CREATE FUNCTION sparsevec_to_halfvec(sparsevec, integer, boolean) RETURNS halfvec AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION sparsevec_hnsw_max_dims(internal) RETURNS internal +CREATE FUNCTION hnsw_sparsevec_max_dims(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -CREATE FUNCTION sparsevec_hnsw_check_value(internal) RETURNS internal +CREATE FUNCTION hnsw_sparsevec_check_value(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE; -- sparsevec casts @@ -875,15 +875,15 @@ CREATE OPERATOR CLASS sparsevec_l2_ops FOR TYPE sparsevec USING hnsw AS OPERATOR 1 <-> (sparsevec, sparsevec) FOR ORDER BY float_ops, FUNCTION 1 sparsevec_l2_squared_distance(sparsevec, sparsevec), - FUNCTION 4 sparsevec_hnsw_max_dims(internal), - FUNCTION 5 sparsevec_hnsw_check_value(internal); + FUNCTION 4 hnsw_sparsevec_max_dims(internal), + FUNCTION 5 hnsw_sparsevec_check_value(internal); CREATE OPERATOR CLASS sparsevec_ip_ops FOR TYPE sparsevec USING hnsw AS OPERATOR 1 <#> (sparsevec, sparsevec) FOR ORDER BY float_ops, FUNCTION 1 sparsevec_negative_inner_product(sparsevec, sparsevec), - FUNCTION 4 sparsevec_hnsw_max_dims(internal), - FUNCTION 5 sparsevec_hnsw_check_value(internal); + FUNCTION 4 hnsw_sparsevec_max_dims(internal), + FUNCTION 5 hnsw_sparsevec_check_value(internal); CREATE OPERATOR CLASS sparsevec_cosine_ops FOR TYPE sparsevec USING hnsw AS @@ -891,12 +891,12 @@ CREATE OPERATOR CLASS sparsevec_cosine_ops FUNCTION 1 sparsevec_negative_inner_product(sparsevec, sparsevec), FUNCTION 2 l2_norm(sparsevec), FUNCTION 3 l2_normalize(sparsevec), - FUNCTION 4 sparsevec_hnsw_max_dims(internal), - FUNCTION 5 sparsevec_hnsw_check_value(internal); + FUNCTION 4 hnsw_sparsevec_max_dims(internal), + FUNCTION 5 hnsw_sparsevec_check_value(internal); CREATE OPERATOR CLASS sparsevec_l1_ops FOR TYPE sparsevec USING hnsw AS OPERATOR 1 <+> (sparsevec, sparsevec) FOR ORDER BY float_ops, FUNCTION 1 l1_distance(sparsevec, sparsevec), - FUNCTION 4 sparsevec_hnsw_max_dims(internal), - FUNCTION 5 sparsevec_hnsw_check_value(internal); + FUNCTION 4 hnsw_sparsevec_max_dims(internal), + FUNCTION 5 hnsw_sparsevec_check_value(internal); diff --git a/src/hnswutils.c b/src/hnswutils.c index 71007c3..bc3c56e 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -1276,30 +1276,30 @@ HnswFindElementNeighbors(char *base, HnswElement element, HnswElement entryPoint } } -PGDLLEXPORT PG_FUNCTION_INFO_V1(halfvec_hnsw_max_dims); +PGDLLEXPORT PG_FUNCTION_INFO_V1(hnsw_halfvec_max_dims); Datum -halfvec_hnsw_max_dims(PG_FUNCTION_ARGS) +hnsw_halfvec_max_dims(PG_FUNCTION_ARGS) { PG_RETURN_INT32(HNSW_MAX_DIM * 2); }; -PGDLLEXPORT PG_FUNCTION_INFO_V1(bit_hnsw_max_dims); +PGDLLEXPORT PG_FUNCTION_INFO_V1(hnsw_bit_max_dims); Datum -bit_hnsw_max_dims(PG_FUNCTION_ARGS) +hnsw_bit_max_dims(PG_FUNCTION_ARGS) { PG_RETURN_INT32(HNSW_MAX_DIM * 32); }; -PGDLLEXPORT PG_FUNCTION_INFO_V1(sparsevec_hnsw_max_dims); +PGDLLEXPORT PG_FUNCTION_INFO_V1(hnsw_sparsevec_max_dims); Datum -sparsevec_hnsw_max_dims(PG_FUNCTION_ARGS) +hnsw_sparsevec_max_dims(PG_FUNCTION_ARGS) { PG_RETURN_INT32(SPARSEVEC_MAX_DIM); }; -PGDLLEXPORT PG_FUNCTION_INFO_V1(sparsevec_hnsw_check_value); +PGDLLEXPORT PG_FUNCTION_INFO_V1(hnsw_sparsevec_check_value); Datum -sparsevec_hnsw_check_value(PG_FUNCTION_ARGS) +hnsw_sparsevec_check_value(PG_FUNCTION_ARGS) { SparseVector *vec = PG_GETARG_SPARSEVEC_P(0); diff --git a/src/ivfutils.c b/src/ivfutils.c index 7223ba3..6f40730 100644 --- a/src/ivfutils.c +++ b/src/ivfutils.c @@ -246,16 +246,16 @@ IvfflatUpdateList(Relation index, ListInfo listInfo, } } -PGDLLEXPORT PG_FUNCTION_INFO_V1(halfvec_ivfflat_support); +PGDLLEXPORT PG_FUNCTION_INFO_V1(ivfflat_halfvec_support); Datum -halfvec_ivfflat_support(PG_FUNCTION_ARGS) +ivfflat_halfvec_support(PG_FUNCTION_ARGS) { PG_RETURN_INT32(IVFFLAT_TYPE_HALFVEC); }; -PGDLLEXPORT PG_FUNCTION_INFO_V1(bit_ivfflat_support); +PGDLLEXPORT PG_FUNCTION_INFO_V1(ivfflat_bit_support); Datum -bit_ivfflat_support(PG_FUNCTION_ARGS) +ivfflat_bit_support(PG_FUNCTION_ARGS) { Oid typid = PG_GETARG_OID(0);