mirror of
https://github.com/pgvector/pgvector.git
synced 2026-06-06 14:01:31 +08:00
35 lines
1.1 KiB
SQL
35 lines
1.1 KiB
SQL
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
|
\echo Use "ALTER EXTENSION vector UPDATE TO '0.7.0'" to load this file. \quit
|
|
|
|
CREATE FUNCTION quantize_binary(vector) RETURNS bit
|
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
CREATE FUNCTION subvector(vector, int, int) RETURNS vector
|
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
CREATE FUNCTION hamming_distance(bit, bit) RETURNS float8
|
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
CREATE FUNCTION jaccard_distance(bit, bit) RETURNS float8
|
|
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
CREATE OPERATOR <~> (
|
|
LEFTARG = bit, RIGHTARG = bit, PROCEDURE = hamming_distance,
|
|
COMMUTATOR = '<~>'
|
|
);
|
|
|
|
CREATE OPERATOR <%> (
|
|
LEFTARG = bit, RIGHTARG = bit, PROCEDURE = jaccard_distance,
|
|
COMMUTATOR = '<%>'
|
|
);
|
|
|
|
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);
|
|
|
|
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);
|