Andrew Kane
540bdf784e
Added more tests for subvector function [skip ci]
2024-04-24 01:31:50 -07:00
Andrew Kane
745b5f0264
Added more tests for subvector function [skip ci]
2024-04-24 01:28:25 -07:00
Heikki Linnakangas and GitHub
e452e0afc7
Fix integer overflow in subvector() function ( #530 )
...
`end = start + count` can overflow if `start` is very large. That
leads to a segfault later in the function. Add test case for it.
2024-04-24 01:20:16 -07:00
Andrew Kane
d382db7ab0
Use VARSIZE_ANY instead of itemsize to avoid uninitialized bytes
2024-04-23 23:52:02 -07:00
Andrew Kane
2b4fcb1df0
Improved consistency of sparsevec_l1_distance with vector [skip ci]
2024-04-23 21:24:02 -07:00
Andrew Kane
b0323ae778
Improved consistency with vector [skip ci]
2024-04-23 21:13:00 -07:00
Andrew Kane
0906a9dd69
Improved consistency with vector [skip ci]
2024-04-23 21:11:27 -07:00
Andrew Kane
2ea421470e
Improved test [skip ci]
2024-04-23 20:42:30 -07:00
Andrew Kane
9474a82f9b
Improved test [skip ci]
2024-04-23 20:41:11 -07:00
Andrew Kane
61e7566ec7
Improved tests for l2_norm [skip ci]
2024-04-23 20:38:22 -07:00
Andrew Kane
bf87c5607c
Improved tests for sparsevec distance functions [skip ci]
2024-04-23 20:29:04 -07:00
Andrew Kane and Heikki Linnakangas
ef49591e75
Removed padding for sparsevec - #529
...
Co-authored-by: Heikki Linnakangas <[email protected] >
2024-04-23 20:07:24 -07:00
Andrew Kane
939bcbe0ca
Increased max sparsevec dimensions to 1M [skip ci]
2024-04-23 17:47:11 -07:00
Andrew Kane
1174298890
Moved type-specific code to separate functions
2024-04-23 16:32:10 -07:00
Andrew Kane
c0451618bd
DRY code for sorting vector arrays [skip ci]
2024-04-23 15:59:42 -07:00
Andrew Kane
70f768b611
Improved code [skip ci]
2024-04-23 15:53:12 -07:00
Andrew Kane
a816f615b1
Set length for newCenters and aggCenters [skip ci]
2024-04-23 15:47:04 -07:00
Andrew Kane
09036ccf63
Added safety check to NormCenters [skip ci]
2024-04-23 15:43:04 -07:00
Andrew Kane
30ee9fa123
Switched to support function for normalizing centers for k-means
2024-04-23 15:39:58 -07:00
Andrew Kane
8e5c290640
Moved type lookup to support functions - #527
2024-04-23 13:02:47 -07:00
Heikki Linnakangas and GitHub
2db96535f6
Forbid zero values in sparsevec's binary input function ( #528 )
...
The text input function simply left out any zero values, but the
binary input function did not. That's problematic because you end up
with an "unnormalized" sparse vector, which behaves in weird ways. At
least sparsevec_cmp_internal() expects both inputs to not contain
zeros.
The binary send function never produces such zero values, but an
external tool could. Or to test, you can use COPY TO (FORMAT BINARY),
use a hex editor to edit one of the values to be zero, and copy it
back with COPY FROM (FORMAT BINARY).
2024-04-23 09:13:53 -07:00
Andrew Kane
db3870b30b
Updated readme [skip ci]
2024-04-22 21:56:05 -07:00
Andrew Kane
ccc6f48046
Updated readme [skip ci]
2024-04-22 21:32:59 -07:00
Andrew Kane
8ec5fa324b
Moved HnswGetType call [skip ci]
2024-04-22 19:22:09 -07:00
Andrew Kane
89e449def7
Removed unneeded headers [skip ci]
2024-04-22 19:10:50 -07:00
Andrew Kane
99d3f851c8
Added support function for l2_normalize to ivfflat
2024-04-22 19:06:06 -07:00
Andrew Kane
9577721f0f
Added support function for l2_normalize [skip ci]
2024-04-22 18:36:47 -07:00
Andrew Kane
ee4df240cd
Removed type-specific code from ivfscan
2024-04-22 18:12:18 -07:00
Andrew Kane
57daf88525
Added opclasses to readme [skip ci]
2024-04-22 16:29:34 -07:00
Andrew Kane
cde2f5181c
Added comments on dispatching [skip ci]
2024-04-22 16:18:57 -07:00
Andrew Kane
8d903b6858
Added more tests for vector distance functions [skip ci]
2024-04-22 15:53:13 -07:00
Andrew Kane
86eaebc33d
Added DISABLE_DISPATCH option [skip ci]
2024-04-22 15:43:07 -07:00
Andrew Kane
b31f4e7234
Added VECTOR_TARGET_CLONES to VectorL1Distance [skip ci]
2024-04-22 15:15:57 -07:00
Andrew Kane
cd240ea8a6
Added CPU dispatching for L1 distance for halfvec
2024-04-22 15:02:17 -07:00
Andrew Kane
dc47a83d80
Improved tests for halfvec l1_distance [skip ci]
2024-04-22 14:43:54 -07:00
Andrew Kane
d8fc05d709
Removed support for L1 distance and Jaccard distance from ivfflat due to non-optimal clustering
2024-04-22 14:11:29 -07:00
Andrew Kane
dc091a8524
Added L1 distance operator to docs [skip ci]
2024-04-22 13:22:28 -07:00
Andrew Kane
0cb91bfd69
Moved L1 distance to halfutils [skip ci]
2024-04-22 13:19:42 -07:00
Andrew Kane
b7b45c54ae
Improved tests for L1 distance with halfvec
2024-04-22 13:14:45 -07:00
Andrew Kane
2cbe3999c5
Added support for indexing sparsevec with L1 distance [skip ci]
2024-04-22 13:08:12 -07:00
Andrew Kane
d94609e606
Added support for indexing halfvec with L1 distance [skip ci]
2024-04-22 13:00:59 -07:00
Andrew Kane
ded794aaa7
Updated test name [skip ci]
2024-04-22 12:57:01 -07:00
Andrew Kane
33a73aa87b
Added bit examples for ivfflat [skip ci]
2024-04-22 12:51:38 -07:00
Andrew Kane
3f607ae1e3
Updated test name [skip ci]
2024-04-22 12:48:22 -07:00
Andrew Kane
e6ee034e7b
Added support for indexing L1 distance
2024-04-22 12:44:03 -07:00
Andrew Kane
e5f6c5a549
Updated readme [skip ci]
2024-04-22 10:45:41 -07:00
Andrew Kane
911918f6f6
Renamed bit files
2024-04-22 10:22:18 -07:00
Andrew Kane
78b5c5b75c
Removed unneeded headers [skip ci]
2024-04-19 18:09:38 -07:00
Andrew Kane
e37c97a7e8
Added more tests for sparsevec to halfvec cast [skip ci]
2024-04-19 18:05:03 -07:00
Andrew Kane
3d4543b696
Added casts between halfvec and sparsevec
2024-04-19 18:03:07 -07:00