Skip to content

Commit fe9a9a0

Browse files
committed
Renamed quantize_binary to binary_quantize
1 parent 3e48a3f commit fe9a9a0

File tree

10 files changed

+28
-28
lines changed

10 files changed

+28
-28
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
- Added `halfvec` type
44
- Added `sparsevec` type
55
- Added support for `bit` vectors to HNSW
6+
- Added `binary_quantize` function
67
- Added `hamming_distance` function
78
- Added `jaccard_distance` function
8-
- Added `quantize_binary` function
99
- Added `subvector` function
1010
- Updated comparison operators to support vectors with different dimensions
1111

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -482,20 +482,20 @@ Also supports Jaccard distance (`<%>`)
482482
Use expression indexing for binary quantization
483483

484484
```sql
485-
CREATE INDEX ON items USING hnsw ((quantize_binary(embedding)::bit(3)) bit_hamming_ops);
485+
CREATE INDEX ON items USING hnsw ((binary_quantize(embedding)::bit(3)) bit_hamming_ops);
486486
```
487487

488488
Get the nearest neighbors by Hamming distance
489489

490490
```sql
491-
SELECT * FROM items ORDER BY quantize_binary(embedding)::bit(3) <~> quantize_binary('[1,-2,3]') LIMIT 5;
491+
SELECT * FROM items ORDER BY binary_quantize(embedding)::bit(3) <~> binary_quantize('[1,-2,3]') LIMIT 5;
492492
```
493493

494494
Re-rank by the original vectors for better recall
495495

496496
```sql
497497
SELECT * FROM (
498-
SELECT * FROM items ORDER BY quantize_binary(embedding)::bit(3) <~> quantize_binary('[1,-2,3]') LIMIT 20
498+
SELECT * FROM items ORDER BY binary_quantize(embedding)::bit(3) <~> binary_quantize('[1,-2,3]') LIMIT 20
499499
) ORDER BY embedding <=> '[1,-2,3]' LIMIT 5;
500500
```
501501

@@ -858,11 +858,11 @@ Operator | Description | Added
858858

859859
Function | Description | Added
860860
--- | --- | ---
861+
binary_quantize(vector) → bit | binary quantize | unreleased
861862
cosine_distance(vector, vector) → double precision | cosine distance |
862863
inner_product(vector, vector) → double precision | inner product |
863864
l1_distance(vector, vector) → double precision | taxicab distance | 0.5.0
864865
l2_distance(vector, vector) → double precision | Euclidean distance |
865-
quantize_binary(vector) → bit | quantize | unreleased
866866
subvector(vector, integer, integer) → vector | subvector | unreleased
867867
vector_dims(vector) → integer | number of dimensions |
868868
vector_norm(vector) → double precision | Euclidean norm |
@@ -893,12 +893,12 @@ Operator | Description | Added
893893

894894
Function | Description | Added
895895
--- | --- | ---
896+
binary_quantize(halfvec) → bit | binary quantize | unreleased
896897
cosine_distance(halfvec, halfvec) → double precision | cosine distance | unreleased
897898
inner_product(halfvec, halfvec) → double precision | inner product | unreleased
898899
l1_distance(halfvec, halfvec) → double precision | taxicab distance | unreleased
899900
l2_distance(halfvec, halfvec) → double precision | Euclidean distance | unreleased
900901
l2_norm(halfvec) → double precision | Euclidean norm | unreleased
901-
quantize_binary(halfvec) → bit | quantize | unreleased
902902
subvector(halfvec, integer, integer) → halfvec | subvector | unreleased
903903
vector_dims(halfvec) → integer | number of dimensions | unreleased
904904

sql/vector--0.6.2--0.7.0.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
22
\echo Use "ALTER EXTENSION vector UPDATE TO '0.7.0'" to load this file. \quit
33

4-
CREATE FUNCTION quantize_binary(vector) RETURNS bit
4+
CREATE FUNCTION binary_quantize(vector) RETURNS bit
55
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
66

77
CREATE FUNCTION subvector(vector, int, int) RETURNS vector
@@ -77,8 +77,8 @@ CREATE FUNCTION vector_dims(halfvec) RETURNS integer
7777
CREATE FUNCTION l2_norm(halfvec) RETURNS float8
7878
AS 'MODULE_PATHNAME', 'halfvec_l2_norm' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
7979

80-
CREATE FUNCTION quantize_binary(halfvec) RETURNS bit
81-
AS 'MODULE_PATHNAME', 'halfvec_quantize_binary' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
80+
CREATE FUNCTION binary_quantize(halfvec) RETURNS bit
81+
AS 'MODULE_PATHNAME', 'halfvec_binary_quantize' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
8282

8383
CREATE FUNCTION subvector(halfvec, int, int) RETURNS halfvec
8484
AS 'MODULE_PATHNAME', 'halfvec_subvector' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;

sql/vector.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ CREATE FUNCTION vector_dims(vector) RETURNS integer
4949
CREATE FUNCTION vector_norm(vector) RETURNS float8
5050
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
5151

52-
CREATE FUNCTION quantize_binary(vector) RETURNS bit
52+
CREATE FUNCTION binary_quantize(vector) RETURNS bit
5353
AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
5454

5555
CREATE FUNCTION subvector(vector, int, int) RETURNS vector
@@ -370,8 +370,8 @@ CREATE FUNCTION vector_dims(halfvec) RETURNS integer
370370
CREATE FUNCTION l2_norm(halfvec) RETURNS float8
371371
AS 'MODULE_PATHNAME', 'halfvec_l2_norm' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
372372

373-
CREATE FUNCTION quantize_binary(halfvec) RETURNS bit
374-
AS 'MODULE_PATHNAME', 'halfvec_quantize_binary' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
373+
CREATE FUNCTION binary_quantize(halfvec) RETURNS bit
374+
AS 'MODULE_PATHNAME', 'halfvec_binary_quantize' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
375375

376376
CREATE FUNCTION subvector(halfvec, int, int) RETURNS halfvec
377377
AS 'MODULE_PATHNAME', 'halfvec_subvector' LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;

src/halfvec.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -869,9 +869,9 @@ halfvec_mul(PG_FUNCTION_ARGS)
869869
/*
870870
* Quantize a half vector
871871
*/
872-
PGDLLEXPORT PG_FUNCTION_INFO_V1(halfvec_quantize_binary);
872+
PGDLLEXPORT PG_FUNCTION_INFO_V1(halfvec_binary_quantize);
873873
Datum
874-
halfvec_quantize_binary(PG_FUNCTION_ARGS)
874+
halfvec_binary_quantize(PG_FUNCTION_ARGS)
875875
{
876876
HalfVector *a = PG_GETARG_HALFVEC_P(0);
877877
half *ax = a->x;

src/vector.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -873,9 +873,9 @@ vector_mul(PG_FUNCTION_ARGS)
873873
/*
874874
* Quantize a vector
875875
*/
876-
PGDLLEXPORT PG_FUNCTION_INFO_V1(quantize_binary);
876+
PGDLLEXPORT PG_FUNCTION_INFO_V1(binary_quantize);
877877
Datum
878-
quantize_binary(PG_FUNCTION_ARGS)
878+
binary_quantize(PG_FUNCTION_ARGS)
879879
{
880880
Vector *a = PG_GETARG_VECTOR_P(0);
881881
float *ax = a->x;

test/expected/halfvec_functions.out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -278,14 +278,14 @@ SELECT l1_distance('[0,0]'::halfvec, '[0,1]');
278278

279279
SELECT l1_distance('[1,2]'::halfvec, '[3]');
280280
ERROR: different halfvec dimensions 2 and 1
281-
SELECT quantize_binary('[1,0,-1]'::halfvec);
282-
quantize_binary
281+
SELECT binary_quantize('[1,0,-1]'::halfvec);
282+
binary_quantize
283283
-----------------
284284
100
285285
(1 row)
286286

287-
SELECT quantize_binary('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::halfvec);
288-
quantize_binary
287+
SELECT binary_quantize('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::halfvec);
288+
binary_quantize
289289
-----------------
290290
01001110101
291291
(1 row)

test/expected/vector_functions.out

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,14 +272,14 @@ SELECT l1_distance('[3e38]'::vector, '[-3e38]');
272272
Infinity
273273
(1 row)
274274

275-
SELECT quantize_binary('[1,0,-1]'::vector);
276-
quantize_binary
275+
SELECT binary_quantize('[1,0,-1]'::vector);
276+
binary_quantize
277277
-----------------
278278
100
279279
(1 row)
280280

281-
SELECT quantize_binary('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::vector);
282-
quantize_binary
281+
SELECT binary_quantize('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::vector);
282+
binary_quantize
283283
-----------------
284284
01001110101
285285
(1 row)

test/sql/halfvec_functions.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ SELECT l1_distance('[0,0]'::halfvec, '[3,4]');
5959
SELECT l1_distance('[0,0]'::halfvec, '[0,1]');
6060
SELECT l1_distance('[1,2]'::halfvec, '[3]');
6161

62-
SELECT quantize_binary('[1,0,-1]'::halfvec);
63-
SELECT quantize_binary('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::halfvec);
62+
SELECT binary_quantize('[1,0,-1]'::halfvec);
63+
SELECT binary_quantize('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::halfvec);
6464

6565
SELECT subvector('[1,2,3,4,5]'::halfvec, 1, 3);
6666
SELECT subvector('[1,2,3,4,5]'::halfvec, 3, 2);

test/sql/vector_functions.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ SELECT l1_distance('[0,0]'::vector, '[0,1]');
5858
SELECT l1_distance('[1,2]'::vector, '[3]');
5959
SELECT l1_distance('[3e38]'::vector, '[-3e38]');
6060

61-
SELECT quantize_binary('[1,0,-1]'::vector);
62-
SELECT quantize_binary('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::vector);
61+
SELECT binary_quantize('[1,0,-1]'::vector);
62+
SELECT binary_quantize('[0,0.1,-0.2,-0.3,0.4,0.5,0.6,-0.7,0.8,-0.9,1]'::vector);
6363

6464
SELECT subvector('[1,2,3,4,5]'::vector, 1, 3);
6565
SELECT subvector('[1,2,3,4,5]'::vector, 3, 2);

0 commit comments

Comments
 (0)